Ubuntu22.04+ROS2中实现Moveit2控制gazebo中机械臂,rviz和gazebo联动
目录
1 准备工作
1.1 安装工具创建工作空间
1.2 有一份描述机械臂的urdf文件(xacro文件也可)
1.3 在Moveit中进行一系列配置
2 文件创建及修改
2.1 Moveit配置文件下的launch文件夹
2.1.1 gazebo.launch.py
2.1.2 my_moveit_rviz.launch.py
2.2 Moveit配置文件下的config文件夹
2.3 机器人描述文件中urdf文件夹
2.3.1 dummy-ros2.gazebo
2.3.2 dummy-ros2.trans
2.3.3 dummy-ros2.xacro
3 运行文件验证效果
本人零基础开始的ROS学习,写这篇日志主要防我这个脑子干完就忘下次再弄又是啥也不会,本人前期用过的环境有Ubuntu18.04+ROS1版本的虚拟机,现在使用的是ubuntu22.04+ROS2 humble版本,想研究和学习机械臂相关的内容,手头上购入了木子大佬复刻的稚晖君开源的dummy机械臂第一版(6轴机械臂),目前短期目标是想实现在仿真环境中在机械臂上搭载相机,通过目标检测算法(初步考虑YOLO系列)实现对目标的识别及规划机械臂运动实现抓取。
考虑到要使用显卡而虚拟机只能完成一些简单的机械臂配置工作(而且在虚拟机上进行联动仿真时不知道是什么原因导致rviz和Gazebo非常卡顿,网上有相应的一些解决办法,试过之后也一直没有解决),所以虚拟机只能是前期学习时用一用,对此纠结过两个方案:
1.之前考虑过装双系统,这样的好处就是东西都在电脑里不用外接啥东西,不用考虑数据传输的速度啥的(暂时只知道这些个好处吧,知道一点但不多),但电脑目前的内存仅允许分出不到300g内存用于Linux系统安装(当然给你的工具扩容也是个不戳的办法,但是电脑买来不久还在保修期自己加装要拆机搞坏了不保修我就要哭了,对电子设备一点不敏感的妹纸一个),加之自己对Linux接触过但不熟悉,是一个常常不考虑版本兼容问题安装各种包(linux版本兼容问题真的很逆天呜呜呜),并且乱用不熟悉的命令在在linux系统“搞破坏”的菜菜,所以拥有备份对我来说很重要,相当于打游戏时给自己设置一些节点存档,省的被玩坏从头开始进度清零(别问!问就是干过不少);
2.然后就是我现在采用的plan B,用移动固态硬盘装系统(用的是1T的,大点好谁知道后面要干什么占位置的活呢),网上也有相应的很多教程,本人用了鱼香ROS老师的一键安装ubuntu22.04(太友好了,fishstall一下还能装好些其他东西呢,里面的一键换源简直我心头爱),这种方法的好处就是一块移动固态硬盘可以实现随插随用,可以实现轻松备份,但是要给它一根好点的线喏,不然可能随机出现幸运用户在读取数据时可能因为数据线松动造成扇区损坏硬盘直接变成废品(我我我!就是那个幸运用户......)
1 准备工作
1.1 安装工具创建工作空间
前面碎碎念了很久,现在勉强进入学前班阶段,要实现Moveit控制gazebo中的机械臂,rviz和gazebo联动的第一步就是拥有这些工具,鱼香ros老师的一键安装ros好像就把这些东西全都安装上了,省时省力省脑子,安装好了之后创建自己的ROS工作空间。
1.2 有一份描述机械臂的urdf文件(xacro文件也可)
1.3 在Moveit中进行一系列配置
之前使用ubuntu18.04+ROS的时候,在solidworks中对机械臂进行装配后可以直接导出这个urdf文件,然后在moveit中进行一系列配置就能生成机器人描述文件和Moveit配置文件,但现在换到了ubuntu22.04+ROS2,听网友说solidwoks里导出来的文件仅适用于ROS1,如果要在ROS2中使用的话要进行一些修改(好像确实是用不起来,后来找到了木子大佬开源的新文件就没再去研究,),你说巧不巧就在一个多月以前木子大佬在他的仓库里开源了dummy-ros2_description(据了解这个机器人描述文件是Fusion 360导出来的)和dummy_moveit_config文件,这不仅不需要自己去装配机器人获取描述文件了,连Moveit配置文件也一并搞定了(简直等等党的春天,大佬多累一点我就能少干一点呜呜呜),然后把这两个文件放入1.1创建的工作空间中。
2 文件创建及修改
拿到机器人描述文件(用的木子写好的文件名为dummy-ros2_description)和Moveit配置文件(文件名为dummy_moveit_config)后进行一些文件的创建及修改,当然这个地方拿到自己对应的其他机器人描述文件,再进行Moveit配置生成文件之后进行创建修改也可以做为参考,注意一下每个文档里的文件名字和路径对应一致就好啦,要改的部分主要在三个文件夹里,我把经过创建和修改文件后我的这三个文件夹里的文件构成贴图在下面啦~