大家好,这篇文章的目的是安装ur机器人的ros2驱动并进行初步的仿真演示。
首先需要安装好Unbuntu22.4和ros-humble-desktop
该教程针对看过古月居ROS2入门21讲课程的读者,已经掌握如何建立工作空间,如何安装系统依赖,编译工作空间。
下面开始介绍如何安装ur的ros-humble驱动,并且基于URSim使用vnc界面控制ur机器人,在rviz2中实现可视化。
ros-humble ur仿真流程目录
1. 创建ur机器人工作空间:
export COLCON_WS=~/ur5_ws
这一行命令设置了一个名为 COLCON_WS 的环境变量,它的值是 ~/ur5_ws。export 命令用于在当前 shell 环境中设置环境变量,COLCON_WS 是环境变量的名称,~/ur5_ws 是它的值。这个路径指向了一个名为 ur5_ws 的工作空间目录,位于当前用户的根目录下。
mkdir -p $COLCON_WS/src
$COLCON_WS 是由环境变量替换的路径,因此实际上会在 ~/ur5_ws 目录下创建一个名为 src 的子目录
cd $COLCON_WS/src
git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git -b humble
下载humble版本驱动
git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Description.git -b humble
下载ur模型描述文件
2. 自动安装依赖:
sudo apt install python3-pip
sudo pip3 install rosdepc
sudo rosdepc init
sudo rosdepc update
cd ..
rosdepc install --ignore-src --from-paths src -y -r
最后一行命令在工作空间根目录ur5_ws中的终端运行,使用 rosdepc 工具安装所有在工作空间中发现的软件包的系统依赖项。–ignore-src 选项表示不检查源代码中的依赖项,–from-paths src 选项表示从指定的路径中查找软件包,-y 选项表示自动回答 yes 以安装所有依赖项,-r 选项表示递归地安装所有依赖项。
3. 编译工作空间:
在工作空间根目录ur5_ws中的终端中运行以下命令:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
echo "source ~/ur5_ws/install/local_setup.sh">>~/.bashrc
这段代码的意思是每次开终端脚本自动运行,便于系统寻找工作空间位置。也可以在home文件夹,按ctrl+h显示隐藏文件,打开**.bashrc**文件,在最后一行加入:
source ~/dev_ws/install/local_setup.sh
在rviz2仿真界面加载moveit的ur配置文件(鼠标可以拖动黄色的末端执行器运动):
ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur5e launch_rviz:=true
4. 基于URSim使用vnc界面进行仿真控制
将当前用户添加到 Docker 用户组:
sudo usermod -aG docker $USER
安装模拟器:
docker pull universalrobots/ursim_e-series
启动URSim:
ros2 run ur_client_library start_ursim.sh -m ur5
这部分命令告诉 ROS 2 在 ur_client_library 包中运行 start_ursim.sh 脚本。这个脚本负责启动 URSim。-m <ur_type>:这个参数用于指定要启动的 UR 机器人的类型。你需要将 <ur_type> 替换为你想要启动的 UR 机器人的型号,比如 ur5、ur10 等。指定不同的机器人型号会启动相应的 UR 机器人仿真。
如果报错说container已经存在,但是看不到输出ip,那么使用以下命令来stop container:
docker stop <你的container id>
然后再次运行:
ros2 run ur_client_library start_ursim.sh -m ur5
下面是运行后的结果:
得到了VNC的入口,在浏览器中输入以下网址进入VNC端口:
http://192.168.56.101:6080/vnc.html
等待加载完毕,进入ur控制面板,选择run program,点击move,可以在vnc端发布控制指令(点击箭头)。
最后在Rviz2里面进行仿真:
打开一个新的终端执行:
ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur5 robot_ip:=192.168.56.101 launch_rviz:=true
这时候大概率会出现终端kill进程,进程die的提示,加载后的rivz界面中机器人是白色的一坨,这是由于虚拟机运行内存不够用导致的模型加载不全,关闭虚拟机在管理中把运行内存设置为10GB,再执行该命令,就可以实现vnc控制rviz中机器人运动。
以上就是初步模拟仿真过程,该踩的坑都踩过了,创作不易,点赞支持!
以后还会分享更多学习ros2的心得,希望和大家多多交流,谢谢!