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

devtools/2025/1/11 17:36:40/

本文展示了Mycobot 280 M5 上的 Mycobot 280 M5 moveit2 模拟环境,以及详细介绍了使用 Docker 在 macOS(arm64)上构建 moveit2 环境的步骤。

 一、引言

这篇文章主要内容是关于如何在 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。

python">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 终端中操作

python">source /opt/ros/humble/setup.bash

 安装rosdep(可能已安装)

python">sudo apt install python3-rosdep
sudo rosdep init
rosdep update
sudo apt update
sudo apt dist-upgrade

 安装colcon mixin扩展

python">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

python">sudo apt install python3-vcstool

创建colcon工作空间

python">mkdir -p ~/ws_moveit/src

获取MoveIt源代码

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

构建colcon工作空间

python">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共享内存来加快构建时间。  

python">cd ~/ws_moveit
colcon build --mixin release

源代码

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

3、关于构建中的错误

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

pick_ik错误

python">sudo apt-get remove ros-humble-pick-ik

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

python">su

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

参考以下链接来创作
https://www.youtube.com/watch?v=ZOIKEV_BCBE&t=566s
获取ROS2的mycobot源
在ws_moveit/src下克隆

python">git clone https://github.com/elephantrobotics/mycobot_ros2.git

 5、启动设置助手

选择创建新MoviIt
选择mycobot的URDF并点击loadFile 

python">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目录下 

构建和安装

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

启动

python">ros2 launch mycobot_move_it demo.launch.py

四、总结

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

* 本文是以下文章的英文翻译版本:DockerでnoVNC環境を構築し、MyCobotをROS2とMoveIt2を使用して動かす #mycobot - Qiita


http://www.ppmy.cn/devtools/149668.html

相关文章

有机物谱图信息的速查技巧有哪些?

谱图信息是化学家解读分子世界的“语言”&#xff0c;它们在化学研究的各个领域都发挥着不可或缺的作用。它们是理解和确定分子结构的关键&#xff0c;对化学家来说极为重要&#xff0c;每一种谱学技术都提供了不同的视角来观察分子&#xff0c;从而揭示其独特的化学和物理特性…

人机交互复习笔记

好像后天上午就要考试了。白天要做智能小车的实验&#xff0c;还有今天&#xff0c;明天晚上两晚上的时间复习这个考试。和很多朋友聊了一下这个考试&#xff0c;大家都感觉比较随缘。因为好像没有什么计算题&#xff0c;也没有什么题库。简单的很日常&#xff0c;复杂的太学术…

OpenCV的对比度受限的自适应直方图均衡化算法

OpenCV的对比度受限的自适应直方图均衡化&#xff08;CLAHE&#xff09;算法是一种图像增强技术&#xff0c;旨在改善图像的局部对比度&#xff0c;同时避免噪声的过度放大。以下是CLAHE算法的原理、步骤以及示例代码。 1 原理 CLAHE是自适应直方图均衡化&#xff08;AHE&…

SpringBoot项目分离与分层方式之容器化部署

SpringBoot项目分离与分层方式之容器化部署 文章目录 1.前言2.deom项目工程结构3.分离容器部署3.1父工程pom3.2子模块3的Dockerfile3.3子模块3的target3.4构建启动docker命令 4.分层容器部署4.1父工程pom4.2子模块3的Dockerfile4.3子模块3的target4.4构建启动docker命令 5.jeki…

在Windows环境下搭建无人机模拟器

最近要开发无人机地面站&#xff0c;但是没有无人机&#xff0c;开发无人机对我来说也是大姑娘坐花轿——头一回。我们要用 MAVLink 和无人机之间通信&#xff0c;看了几天 MAVLink&#xff0c;还是不得劲儿&#xff0c;没有实物实在是不好弄&#xff0c;所以想先装一个无人机模…

2025域名出售交易平台PHP源码

源码介绍 2025域名出售交易平台PHP源码,搭建即可正常使用&#xff0c;后台功能测试正常&#xff0c;前台测试正常,无需到处找教程或修复&#xff0c;教程一次性到位 搭建教程 PHP必须是5.6的 导入数据库 数据库配置文件 config/config.php 后台 http://域名/ymadmin 用户&am…

eslint.config.js和.eslintrc.js有什么区别

eslint.config.js 和 .eslintrc.js 的主要区别在于它们所对应的 ESLint 版本和配置方法&#xff1a; 1. .eslintrc.js&#xff1a; 这是 ESLint v8 及更早版本使用的配置文件格式。 它使用层级式的配置系统。 现在被称为"旧版"配置格式 。 2. eslint.config.js&am…

【Spring】注入方式

介绍 在Spring框架中&#xff0c;依赖注入&#xff08;Dependency Injection, DI&#xff09;是实现控制反转&#xff08;Inversion of Control, IoC&#xff09;的核心机制。 除了通过XML配置的注入方式&#xff08;已逐渐被淘汰&#xff09;&#xff0c;Spring还支持多种基…