当前位置:   article > 正文

Unbuntu22.4虚拟机-ROS2(ROS-humble) ur机器人仿真----讲述所有踩过的坑,一步到位_ros-humble-desktop

ros-humble-desktop

大家好,这篇文章的目的是安装ur机器人的ros2驱动并进行初步的仿真演示。

首先需要安装好Unbuntu22.4和ros-humble-desktop

该教程针对看过古月居ROS2入门21讲课程的读者,已经掌握如何建立工作空间,如何安装系统依赖,编译工作空间。

下面开始介绍如何安装ur的ros-humble驱动,并且基于URSim使用vnc界面控制ur机器人,在rviz2中实现可视化。

1. 创建ur机器人工作空间:


export COLCON_WS=~/ur5_ws
  • 1

这一行命令设置了一个名为 COLCON_WS 的环境变量,它的值是 ~/ur5_wsexport 命令用于在当前 shell 环境中设置环境变量,COLCON_WS 是环境变量的名称,~/ur5_ws 是它的值。这个路径指向了一个名为 ur5_ws 的工作空间目录,位于当前用户的根目录下。

mkdir -p $COLCON_WS/src 
  • 1

$COLCON_WS 是由环境变量替换的路径,因此实际上会在 ~/ur5_ws 目录下创建一个名为 src 的子目录

cd $COLCON_WS/src
  • 1
git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git -b humble
  • 1

下载humble版本驱动

git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Description.git -b humble
  • 1

下载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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

最后一行命令在工作空间根目录ur5_ws中的终端运行,使用 rosdepc 工具安装所有在工作空间中发现的软件包的系统依赖项。–ignore-src 选项表示不检查源代码中的依赖项,–from-paths src 选项表示从指定的路径中查找软件包,-y 选项表示自动回答 yes 以安装所有依赖项,-r 选项表示递归地安装所有依赖项。

3. 编译工作空间:

在工作空间根目录ur5_ws中的终端中运行以下命令:

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
  • 1
echo "source ~/ur5_ws/install/local_setup.sh">>~/.bashrc 
  • 1

这段代码的意思是每次开终端脚本自动运行,便于系统寻找工作空间位置。也可以在home文件夹,按ctrl+h显示隐藏文件,打开**.bashrc**文件,在最后一行加入:

source ~/dev_ws/install/local_setup.sh
  • 1

rviz2仿真界面加载moveitur配置文件(鼠标可以拖动黄色的末端执行器运动):

ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur5e launch_rviz:=true
  • 1

rviz仿真图

4. 基于URSim使用vnc界面进行仿真控制

将当前用户添加到 Docker 用户组:

sudo usermod -aG docker $USER
  • 1

安装模拟器:

docker pull universalrobots/ursim_e-series
  • 1

启动URSim:

ros2 run ur_client_library start_ursim.sh -m ur5
  • 1

这部分命令告诉 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>
  • 1

然后再次运行:

ros2 run ur_client_library start_ursim.sh -m ur5
  • 1

下面是运行后的结果:

在这里插入图片描述

得到了VNC的入口,在浏览器中输入以下网址进入VNC端口:

http://192.168.56.101:6080/vnc.html
  • 1

等待加载完毕,进入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 
  • 1

这时候大概率会出现终端kill进程,进程die的提示,加载后的rivz界面中机器人是白色的一坨,这是由于虚拟机运行内存不够用导致的模型加载不全,关闭虚拟机在管理中把运行内存设置为10GB,再执行该命令,就可以实现vnc控制rviz中机器人运动。

在这里插入图片描述

以上就是初步模拟仿真过程,该踩的坑都踩过了,创作不易,点赞支持!
以后还会分享更多学习ros2的心得,希望和大家多多交流,谢谢!

参考博客:这篇讲的比较完整,我在此基础上补充了一些细节

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/816850?site
推荐阅读
相关标签
  

闽ICP备14008679号