本仓库提供 OneroArm 机械臂在 ROS2 环境下的完整软件支持,覆盖真实硬件控制、MoveIt2 规划、Gazebo 仿真、消息接口定义、示例程序以及安装部署流程。
当前支持的机械臂型号包括:
- A1-L
- A1-R
- A1-Dual
推荐运行环境如下:
- Ubuntu 22.04
- ROS2 Humble
- MoveIt2
本文档从整体角度介绍工作空间中的各个功能包,帮助用户完成环境搭建、系统编译和示例功能启动。
在使用本工程前,建议按以下顺序完成环境准备。
工程提供了 ROS2 安装脚本 ros2_install.sh,脚本位于 src/onero_install/scripts/ 目录中。进入对应目录后执行:
sudo bash ros2_install.sh如果不使用脚本,也可以参考 ROS2 官方安装说明:
工程提供了 MoveIt2 安装脚本 moveit2_install.sh,脚本位于 src/onero_install/scripts/ 目录中。进入对应目录后执行:
sudo bash moveit2_install.sh如果不使用脚本,也可以参考 MoveIt2 官方安装说明:
运行库安装脚本 lib_install.sh 位于 src/onero_driver/lib/ 目录中。进入对应目录后执行:
sudo bash lib_install.sh真实机械臂控制依赖串口访问权限。建议执行以下命令之一:
# 将当前用户加入 dialout 组(重新登录后生效)
sudo usermod -aG dialout $USER
# 临时切换到 dialout 组(当前会话立即生效)
newgrp dialout环境准备完成后,可在新的工作空间中编译本工程。
mkdir -p ~/oneroarm_ws/src
cp -r OneroArm ~/oneroarm_ws/src
cd ~/oneroarm_ws
source /opt/ros/humble/setup.bash
colcon build
source ./install/setup.bash当编译完成且 install/setup.bash 加载成功后,即可使用各功能包提供的启动文件和示例程序。
本工程由以下九个功能包构成。
真实机械臂的 ROS2 驱动层。该功能包负责与硬件通信,并提供 MoveJ、MoveL、MoveP 等运动接口及状态反馈。
系统级启动管理包。该功能包将模型发布、驱动、MoveIt2 和仿真等多个子系统进行编排,提供一键式启动入口。
机械臂模型描述包。该功能包提供 URDF/Xacro、SRDF、Mesh 资源以及模型发布相关启动脚本。
ROS2 消息接口定义包。该功能包提供 MoveJ、MoveL、MoveP、ArmState 等消息类型。
MoveIt2 配置包集合。该目录下包含不同机械臂型号对应的规划、控制器、RViz 和语义模型配置。
MoveIt2 与真实驱动之间的桥接控制包。该功能包将 MoveIt2 轨迹离散化后发送给 onero_driver 执行。
Gazebo 仿真支持包。该功能包用于在仿真环境中加载机械臂模型,并配合 MoveIt2 完成虚拟机械臂规划验证。
示例程序集合。该功能包提供 MoveJ、MoveL、MoveP、轨迹连接、状态监控、拖动示教、力位控制等示例。
安装与部署辅助包。该功能包用于说明依赖安装、环境搭建和编译部署流程。
若需要启动 Gazebo 仿真和 MoveIt2 规划,可执行:
ros2 launch onero_bringup <arm_type>_gazebo_bringup.launch.py其中 <arm_type> 支持以下取值:
a1_la1_ra1_dual
以 A1-L 为例:
ros2 launch onero_bringup a1_l_gazebo_bringup.launch.py启动成功后,可在 Gazebo 与 RViz 中对虚拟机械臂进行规划和控制。
若需要启动真实机械臂驱动并接入 MoveIt2,可执行:
ros2 launch onero_bringup <arm_type>_moveit_bringup.launch.py其中 <arm_type> 支持以下取值:
a1_la1_ra1_dual
以 A1-L 为例:
ros2 launch onero_bringup a1_l_moveit_bringup.launch.py启动成功后,即可在 RViz 中完成轨迹规划,并驱动真实机械臂执行。
在真实机械臂运行前,请确认以下事项:
- 检查机械臂底座、安装螺丝和工作台是否牢固可靠。
- 确保机械臂运动范围内无人停留,也无其他障碍物。
- 首次运行建议使用较低速度并预留急停手段。
- 设备闲置时应将机械臂置于安全位,并及时断开电源。
Copyright (c) 2026 OneRobotics (Shenzhen) Co., Ltd.
本工程自有代码采用 MIT License(全部 12 个 ROS2 功能包统一)。
完整合规文件位于本目录下的 LICENSES/:
| 文件 | 内容 |
|---|---|
LICENSES/LICENSE |
MIT License 完整正文 |
LICENSES/NOTICE |
第三方组件汇总 + 重分发义务 |
LICENSES/third_party/ |
各第三方组件的完整许可证文本 |
工程随 onero_driver 分发 libonero_api.so 及其运行所需的第三方组件。第三方组件不属于本工程 MIT License 授权范围,应继续遵守其各自上游许可。
| 组件 | 上游许可 |
|---|---|
| RBDL | zlib License |
| Pinocchio | BSD 2-Clause(含 Boost 1.0 子组件) |
| hpp-fcl | BSD License |
⚠️ LGPL-3.0 提示:hpp-fcl 中的hpp/fcl/collision_utility.h头文件采用 GNU LGPL-3.0-or-later。重分发本产品时,必须随附LICENSES/third_party/hpp-fcl.LGPL-3.0.txt,并提供 hpp-fcl 上游源码获取方式(https://github.com/humanoid-path-planner/hpp-fcl )。libonero_api.so通过动态链接调用该组件,符合 LGPL 动态链接条件。
各功能包的随附第三方运行库文件清单见 onero_driver/lib/README.md。