在Mac上使用Docker构建noVNC环境并运行MyCobot

描述

 

 一、引言

这篇文章主要内容是关于如何在 Ros2 环境中构建在 Mac 上模拟 Mycobot 280 M5 的环境。

我写这篇文章是因为相关可参考的文章不多,希望这篇文章可以给你一些帮助。

由于我是 ROS 新手,关于文章内容如果您有任何指教或补充,欢迎在下方留言和我们沟通。

二、准备工作与技术介绍

 1、硬件组件

Elephant Robotics myCobot-6 DOF collaborative robot

myCobot 280系列机械臂是专门为研究、教育、技术应用和商业展览而开发的6-DOF协作机器人。

2、环境配置

M3 MacBook Air

16GB RAM

三、项目运行

1、搭建ROS2环境

在Docker上搭建ROS2(Humble)环境

可以参考此链接搭建安装了ROS2的Ubuntu图形用户界面环境 https://memoteki.net/archives/2955#index_id3

然后创建一个Docker容器

*如果你的mac使用的是M系列芯片,或者arm64

在设置Dock容器的共享内存时最好进行一些修改——通常共享内存默认是64MB,容量不大,所以建议至少应设置为2GB。

 

docker run -p 6080:80 --security-opt seccomp=unconfined --shm-size=2G tiryoh/ros2-desktop-vnc:humble-amd64

 

成功启动后,访问http://127.0.0.1:6080/ 。此时 Ubuntu 应该已启动。

 

2、构建 MoveIt2 环境

这一步是通过官方教程来完成的。

教程链接为:https://moveit.picknik.ai/main/doc/tutorials/getting_started/getting_started.html

按顺序执行以下命令:

在 Ubuntu 终端中操作

 

source /opt/ros/humble/setup.bash

 

 安装rosdep(可能已安装)

 

sudo apt install python3-rosdep
sudo rosdep init
rosdep update
sudo apt update
sudo apt dist-upgrade

 

安装colcon mixin扩展

 

sudo apt install python3-colcon-common-extensions
sudo apt install python3-colcon-mixin
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default

 

安装 vsctool

 

sudo apt install python3-vcstool

 

创建colcon工作空间

 

mkdir -p ~/ws_moveit/src

 

获取MoveIt源代码

 

cd ~/ws_moveit/src
git clone -b humble https://github.com/moveit/moveit2_tutorials
vcs import --recursive < moveit2_tutorials/moveit2_tutorials.repos

 

构建colcon工作空间

 

sudo apt remove ros-humble-moveit*
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro humble -y

 

进行构建可能需要几十分钟到一个小时。

关于构建参数:

在Docker环境中,建议指定以下参数,以避免可能出现的内存不足问题。

--executor sequential:逐个进行构建

--parallel - workers 2:指定同时进行构建的数量

如果可以的话,也增加Docker共享内存来加快构建时间。  

 

cd ~/ws_moveit
colcon build --mixin release

 

源代码

 

source ~/ws_moveit/install/setup.bash
echo ‘source ~/ws_moveit/install/setup.bash’ >> ~/.bashrc

 

3、关于构建中的错误

在构建中可能遇到各种错误,这里写出部分注释以供参考。

pick_ik错误

 

sudo apt-get remove ros-humble-pick-ik

 

ament_cmake错误

以特权用户身份运行构建命令

 

su

 

4、让mycobot模拟器与moveit2一起工作

参考以下链接来创作

https://www.youtube.com/watch?v=ZOIKEV_BCBE&t=566s

获取ROS2的mycobot源

在ws_moveit/src下克隆

 

git clone https://github.com/elephantrobotics/mycobot_ros2.git

 

 5、启动设置助手

容器

选择创建新MoviIt

选择mycobot的URDF并点击loadFile 

 

mycobot_ros2/mycobot_description/urdf/mhcobot_280_m5/mycobot_280_m5.urdf

 

机器的型号以及泵头或摄像头是否可用可以根据情况而定。

自碰撞设置(Self collision)

默认生成冲突矩阵。

虚拟关节设置(Virtual joints)

添加虚拟接头,命名后保存它们。

容器

定义规划组(Planning Groups)

添加 Add Group

选择求解器的kdl_kinematics_plugin

Kin. parameters file设置为3 

容器

添加关节

除g_base以外,均可添加添加链接

同上,增加g_base

容器

添加姿态

使用滑块创建姿态。

也可以之后再添加。

容器

设置ROS2控制器

点击“自动添加”

容器

设置MoveIt控制器

点击“自动添加”

容器

添加作者和邮箱 

容器

生成并保存

保存在colcon工作空间的src目录下 

容器

构建和安装

 

cd ~/ws_moveit
colcon build --mixin release
. install/setup.bash

 

启动

 

ros2 launch mycobot_move_it demo.launch.py

 

容器

四、总结

通过以上步骤就可以使程序在模拟器中运行了。但是问题在于,在Mac系统上无法通过Docker使用USB,所以无法运行实际设备。如果你有关于本文的内容或者机械臂使用有任何观点和疑问,欢迎留言和我们交流沟通。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分