目录
介绍
Openloong是由人形机器人(上海)有限公司运营的开源项目,目标是推动人形机器人全场景应用、助力具身智能时代的到来。
项目背景
在具身智能领域,开源人形机器人项目 Openloong 具有重要的研究与应用价值。当前该项目使用 ROS 作为中间件,但 ROS 存在诸多问题。其架构设计在大规模、复杂的具身智能系统中面临挑战,数据传输性能有局限,AI能力也存在困难。而 Dora-rs 机器人中间件在AI 框架支持,运行速度、软件质量以及安全可信等方面优势突出,能契合机器人对下一代软件平台的严苛要求。因此,有必要将 dora-rs 机器人框架移植到 Openloong 项目中,以解决现有问题。
Dora Openloong的目标是改进 Openloong 项目的架构设计,解决 ROS 架构在复杂具身智能系统中的通信拓扑复杂、AI 能力弱等问题,提高系统的可扩展性。提升数据传输性能,降低通信延迟,确保在处理大量实时数据时系统的实时性,满足机器人实时避障、快速响应交互指令等场景的需求。优化计算资源管理,在资源受限的嵌入式设备上充分利用硬件资源,提高系统性能,减少对机器人续航能力和运行效率的影响。提供便捷的AI预集成框架,增加对机器人AI能力的支持。
项目实现
本项目在ospp2025-openloong仓库提供了一系列开发示例并提供了相关文档, 旨在帮助用户快速上手Openloong-Dora框架, 这些示例包含: Openloong机器人导航、Openloong上肢控制、Openloong底盘控制、Openloong抓取示例等,示例使用Python语言实现;
开发环境准备
Dora环境
dora环境安装见dora官方文档
Openloong微服务框架gRPC安装
- 依赖
- python 3.7或更高版本
- pip 9.0.1或更高版本
- 安装gprc:
python -m pip install grpcio #或者在系统范围内安装 sudo python -m pip install grpcio
-
安装gprc工具
python -m pip install grpcio-tools从Github仓库下载官方最新版本代码以及相关示例
git clone -b v1.73.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc在
examples/python/helloworld目录下运行:python greeter_server.py在另一个终端中,
examples/python/helloworld目录下运行:python greeter_client.py以上顺利完成可启动gRPC服务
-
可能踩坑
在递归克隆gRPC仓库时容易在克隆子模块时失败, 导致模块缺失, 后续编译(C++版本)虽然可能顺利通过, 但会缺少部分功能无法运行gRPC框架;
openloong实例
在dora-rs/ospp2025openloong仓库
Openloong-proto文件夹提供了openloong的gRPC-proto控制接口
GPS导航
使用gRPC微服务获取机器人当前位置
在dora-rs/ospp2025openloong仓库gps_navigaton_gprc文件夹提供了机器人GPS导航server和client的python实现
-
使用gRPC编译proto
在安装有gRPC的python环境中执行:
python -m grpc_tools.protoc -I./protoFiles --python_out=proto --pyi_out=proto --grpc_python_out=proto protoFiles/gps_navigation.protogRPC会读取proto文件
protoFiles/gps_navigation.proto并将生成的文件放在proto目录下 -
启动gRPC server服务
在安装有gRPC的python环境下执行
python gps_navigation_server.py -
启动gRPC client服务 在安装有gRPC的python环境下执行
python gps_navigation_client.py -
执行预期效果
上肢控制
在dora-rs/ospp2025openloong仓库
upper_controller文件夹提供了机器人上肢控制器server和client的python实现
-
使用gRPC编译proto
在安装有gRPC的python环境中执行:
python -m grpc_tools.protoc -I./protoFiles --python_out=proto --pyi_out=proto --grpc_python_out=proto protoFiles/upper_controller.protogRPC会读取proto文件
protoFiles/upper_controller.proto并将生成的文件放在proto目录下 -
启动gRPC server服务
在安装有gRPC的python环境下执行
python upper_controller_server.py -
启动gRPC client服务
在安装有gRPC的python环境下执行
python upper_controller_client.py -
执行预期效果
openloong-dora工作流
在dora-rs/ospp2025openloong仓库openloong-dora-workflow文件夹提供了使用dora工作流控制机器人底盘定点移动和机械臂抓取的python实现
-
使用gRPC编译proto
在安装有gRPC的python环境中执行以下命令生成上肢控制的相关代码:
python -m grpc_tools.protoc -I./protoFiles --python_out=proto --pyi_out=proto --grpc_python_out=proto protoFiles/upper_controller.proto在安装有gRPC的python环境中执行以下命令生成底盘控制的相关代码:
python -m grpc_tools.protoc -I./protoFiles --python_out=proto --pyi_out=proto --grpc_python_out=proto protoFiles/chassis_controller.protogRPC会读取proto文件
protoFiles/upper_controller.proto和protoFiles/chassis_controller.proto并将生成的文件放在proto目录下 -
启动gRPC server服务
在安装有gRPC的python环境下执行以下命令启动上肢控制器
python upper_controller_server.py在安装有gRPC的python环境下执行以下命令启动底盘控制器
python chassis_controller_server.py -
启动dora工作流 在安装有dora和gRPC的python环境执行:
dora run workflow/dataflow.yml --uv -
预期执行效果
dora数据流正常打印交互信息, 机器人工作状态正常, demo在B站演示视频查看