Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

目录

介绍

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安装

  1. 依赖
  • python 3.7或更高版本
  • pip 9.0.1或更高版本
  • 安装gprc:
    python -m pip install grpcio
    #或者在系统范围内安装
    sudo python -m pip install grpcio
    
  1. 安装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服务

  2. 可能踩坑

    在递归克隆gRPC仓库时容易在克隆子模块时失败, 导致模块缺失, 后续编译(C++版本)虽然可能顺利通过, 但会缺少部分功能无法运行gRPC框架;

openloong实例

dora-rs/ospp2025openloong仓库Openloong-proto文件夹提供了openloong的gRPC-proto控制接口


GPS导航

使用gRPC微服务获取机器人当前位置

dora-rs/ospp2025openloong仓库gps_navigaton_gprc文件夹提供了机器人GPS导航server和client的python实现

  1. 使用gRPC编译proto

    在安装有gRPC的python环境中执行:

    python -m grpc_tools.protoc -I./protoFiles --python_out=proto --pyi_out=proto --grpc_python_out=proto protoFiles/gps_navigation.proto
    

    gRPC会读取proto文件protoFiles/gps_navigation.proto并将生成的文件放在proto目录下

  2. 启动gRPC server服务

    在安装有gRPC的python环境下执行

    python gps_navigation_server.py
    
  3. 启动gRPC client服务 在安装有gRPC的python环境下执行

    python gps_navigation_client.py
    
  4. 执行预期效果


上肢控制

dora-rs/ospp2025openloong仓库upper_controller文件夹提供了机器人上肢控制器server和client的python实现

  1. 使用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会读取proto文件protoFiles/upper_controller.proto并将生成的文件放在proto目录下

  2. 启动gRPC server服务

    在安装有gRPC的python环境下执行

    python upper_controller_server.py
    
  3. 启动gRPC client服务

    在安装有gRPC的python环境下执行

    python upper_controller_client.py
    
  4. 执行预期效果


openloong-dora工作流

dora-rs/ospp2025openloong仓库openloong-dora-workflow文件夹提供了使用dora工作流控制机器人底盘定点移动和机械臂抓取的python实现

  1. 使用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.proto
    

    gRPC会读取proto文件protoFiles/upper_controller.protoprotoFiles/chassis_controller.proto并将生成的文件放在proto目录下

  2. 启动gRPC server服务

    在安装有gRPC的python环境下执行以下命令启动上肢控制器

    python upper_controller_server.py
    

    在安装有gRPC的python环境下执行以下命令启动底盘控制器

    python chassis_controller_server.py
    
  3. 启动dora工作流 在安装有dora和gRPC的python环境执行:

    dora run workflow/dataflow.yml --uv
    
  4. 预期执行效果

    dora数据流正常打印交互信息, 机器人工作状态正常, demo在B站演示视频查看