Openarm机器人双臂模型仿真从零部署

前言:2026年4月25日,目前在思林杰旗下子公司进行实习,接触到机器人的项目,分享一下最近的一个学习情况,主要是使用openarm官方的源码进行仿真学习操作。在这里也要感谢龚师弟的帮助。

一、Openarm官方源码下载

enactic/openarm: A fully open-source humanoid arm for physical AI research and deployment in contact-rich environments.https://github.com/enactic/OpenArm

OpenArm 是一个开源的机器人双臂仿真平台,专注于机械臂控制、运动规划及协同操作的模拟与开发。其核心内容包括动力学建模、运动学算法、传感器仿真及多臂协同控制,适用于学术研究、工业自动化测试等场景。

本次使用的是如下图的三个包的代码,点击对应的包即可下载。

二、配置仿真环境

我们仿真的环境要在ubuntu22.04下仿真,因为要使用ros humble,我之前是安装过24.04做其他的开发,目前我要先卸载掉ubuntu24.04,然后再重装ubuntu22.04,建议在WSL装,当然也可以装双系统。我这里使用的是在WSL上进行操作。

1.通过该指令查看目前wsl中ubuntu系统的版本

bash 复制代码
wsl --list --verbose

2.卸载目前版本的ubuntu

bash 复制代码
wsl --unregister Ubuntu-24.04

3.部署镜像服务管理工具

bash 复制代码
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

5.设置为wsl2

bash 复制代码
wsl --set-default-version 2

6.下载所需的ubuntu版本

bash 复制代码
wsl --install -d Ubuntu-22.04

后面需要填写用户名和密码,要记住,因为后续连接要用的

三、安装ros humble

这里推荐使用鱼香ROS的一键安装,省时又省事,推荐!!!

bash 复制代码
wget http://fishros.com/install -O fishros && . fishros

开头的选择就选那个ROS/ROS humble的选项,后面就选他推荐的选项就行了,然后一直安装

四、在软件平台中通过wsl连接

可以通过vscode连接,我这里用的是trae连接,平时有编程需求的也可以用cursor等。我这里展示我自己用trae连接的情况。

首先将文件夹在trae中打开

然后按如下图,先点击左侧的远程资源管理器,然后再点击上面选择WSL连接目标,然后选择你自己的ubuntu,进行链接即可。

五、配置相应环境启动openarm仿真

1. 解决 rosdep 网络问题(使用鱼香ROS的 rosdepc)

由于国内网络环境访问 GitHub Raw 容易失败,官方的 `rosdep init` 经常报错。推荐使用国内镜像版工具 `rosdepc` 来替代。

打开终端,依次执行以下命令安装并初始化:

bash 复制代码
sudo apt update
sudo apt install -y python3-pip
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update

2. 安装工作区依赖

进入你的 ROS 2 工作区,利用刚刚安装好的 `rosdepc` 一键安装所有缺失的 ROS 依赖包:

bash 复制代码
cd ~/openarm_ws
rosdepc install --from-paths src --ignore-src -r -y

*(注:如果提示 `All required rosdeps installed successfully`,则说明依赖安装完成。)*

3. 编译工作区

在确保系统拥有 `colcon` 构建工具的前提下,开始编译仿真所需的包:

bash 复制代码
cd ~/openarm_ws
source /opt/ros/humble/setup.bash

为了节省时间,这里仅编译仿真相关的三个核心包,也可以直接 `colcon build` 编译全部

bash 复制代码
colcon build --symlink-install \
  --packages-select openarm_description openarm_bringup openarm_bimanual_moveit_config

4. 启动仿真

编译成功后,**每次新开终端**都需要执行环境变量加载:

bash 复制代码
cd ~/openarm_ws
source /opt/ros/humble/setup.bash
source install/setup.bash

参数说明:

官方说明及源码中,启用仿真的正确参数为 `use_fake_hardware:=true`,而非早期文档中提及的 `hardware_type`。

选项 A:启动基础单臂仿真

适合做最初的基础验证,带有完整的 ROS 2 Control:

bash 复制代码
ros2 launch openarm_bringup openarm.launch.py arm_type:=v10 use_fake_hardware:=true
选项 B:启动基础双臂仿真

同时加载左右手臂及各自的控制器,适合自行编写底层控制脚本:

bash 复制代码
ros2 launch openarm_bringup openarm.bimanual.launch.py arm_type:=v10 use_fake_hardware:=true
选项 C:启动带 MoveIt 规划的双臂仿真(推荐)

带有一套完整的运动规划框架。可以在 RViz 的 MotionPlanning 面板中直接拖拽双臂的末端进行运动规划与避障:

bash 复制代码
ros2 launch openarm_bimanual_moveit_config demo.launch.py use_fake_hardware:=true

5. 测试与验证 (可选)

在仿真运行期间,可以新开一个终端,发送一个动作指令让机械臂动起来(以单臂为例):

bash 复制代码
cd ~/openarm_ws
source /opt/ros/humble/setup.bash
source install/setup.bash

ros2 action send_goal /joint_trajectory_controller/follow_joint_trajectory \
  control_msgs/action/FollowJointTrajectory \
  '{trajectory: {joint_names: ["openarm_joint1", "openarm_joint2", "openarm_joint3", "openarm_joint4", "openarm_joint5", "openarm_joint6", "openarm_joint7"], points: [{positions: [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15], time_from_start: {sec: 3, nanosec: 0}}]}}'

六、效果展示

目前就是openarm机械臂的一个仿真部署和学习,后续有内容再更新,bye ~

相关推荐
吕源林1 小时前
如何用 cookie 的 HttpOnly 与 Secure 属性防范 XSS 攻击
jvm·数据库·python
故事还在继续吗1 小时前
C++11关键特性
开发语言·c++·算法
格林威1 小时前
面阵相机 vs 线阵相机:堡盟与Basler选型差异全解析 +C++ 实战演示
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
白夜11171 小时前
C++(不适合使用 CRTP情况)
开发语言·c++·笔记
PSLoverS1 小时前
Layui 2.8版本中table组件的简单模式(simple)怎么开启
jvm·数据库·python
eastyuxiao2 小时前
MMM 工具一键去水印+检测 批处理脚本(Windows/Mac 双版本)
人工智能·windows·macos·ai音乐去水印
2201_761040592 小时前
C++如何利用YAML存储复杂的数学矩阵_Eigen库结合yaml-cpp用法【实战】
jvm·数据库·python
2301_775148152 小时前
CSS如何实现固定头部布局_利用position-fixed实现顶部常驻
jvm·数据库·python
yejqvow122 小时前
Python测试中如何控制顺序_使用pytest-ordering自定义执行流
jvm·数据库·python