目录
前言
仿真使用的系统版本:ubuntu22.04.1 LTS
本来是打算使用18来做仿真,但是由于新买的电脑硬件太新了,出现了特别多奇怪的bug(比如无法识别AX211这个型号的网卡,手动打驱动都不行,看了下还只有22版本才支持这个网卡),以及之前在安装ur_driver和ur_robot这两个包时会有冲突,于是决定使用最新的ros2和driver2来尝试仿真,以下是具体步骤.
注:以下安装步骤如果有问题建议直接点进原网页进一步查看
注:有权限问题记得加上sudo或者su root开管理模式试一试
1、安装
1.1 ros2-humble
设置local
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale
这是我的输出结果
确保你的安装来源打开
配置安装源
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
安装ros2
安装之前一定要先确认已经更新各个包了,使用以下命令
sudo apt update
sudo apt upgrade
更新之后安装ros2
sudo apt install ros-humble-desktop
source(每次运行各个软件前最好都source一遍)
# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/humble/setup.bash
测试一下安装是否完成
输入
ros2 run demo_nodes_cpp talker
输出这个表明已经安装好了
1.2 UR_ROS2_Driver
注意,这里使用的是的最新ur-ros2-driver,不是ur-driver或者ur-modern-driver
安装依赖
sudo apt install python3-colcon-common-extensions python3-vcstool
创建工作环境
export COLCON_WS=~/workspace/ros_ur_driver
mkdir -p $COLCON_WS/src
安装urdriver以及build工作空间(会很慢)
cd $COLCON_WS
git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git src/Universal_Robots_ROS2_Driver
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.humble.repos
rosdep update
rosdep install --ignore-src --from-paths src -y -r
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash
注:如果在build过程中命令窗口闪退了,应该是电脑配置不够,在colcon build那行代码后添加一句
--parallel-workers 1
安装完后每次运行前记得source一下
source ~/workspace/ros_ur_driver/install/setup.bash
到这里urdriver也安装成功了,输入命令测试一下
ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur5e launch_rviz:=true
应该能够打开rviz2的仿真界面
不过我当初并不能打开仿真,并且所有的driver仿真命令都打不开,会有以下报错
[ERROR] [launch]: Caught exception in launch (see debug for traceback): executed command showed stderr output. Command: /opt/ros/humble/bin/xacro /opt/ros/humble/share/ur_description/urdf/ur.urdf.xacro robot_ip:=xxx.yyy.zzz.www joint_limit_params:=/opt/ros/humble/share/ur_description/config/ur5e/joint_limits.yaml kinematics_params:=/opt/ros/humble/share/ur_description/config/ur5e/default_kinematics.yaml physical_params:=/opt/ros/humble/share/ur_description/config/ur5e/physical_parameters.yaml visual_params:=/opt/ros/humble/share/ur_description/config/ur5e/visual_parameters.yaml safety_limits:=true safety_pos_margin:=0.15 safety_k_position:=20 name:=ur ur_type:=ur5e script_filename:=ros_control.urscript input_recipe_filename:=rtde_input_recipe.txt output_recipe_filename:=rtde_output_recipe.txt prefix:=""
Captured stderr output:
warning: Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead.
warning: Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead.
warning: Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead.
warning: Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead.
warning: Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead.
非常弱智,花了我好几天才解决,具体办法在这个提问下面: issues
简单来说这个bug这不是driver的问题而是description这个包的问题,有人说下个版本应该会修复这个bug,目前的解决办法是引入description包到driver的src里面然后重新build工作空间
以下是解决办法,首先打开driver的src文件夹
cd ~/workspace/ros_ur_driver/src/
克隆description包
git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Description.git
回到workspace重新build一下
colcon build
然后重新测试一下,现在应该没问题了.
1.3 UR simulator
由于直接安装官方的软件太老了,所以在driver的tutorial里找到了方法,建议直接点标题在原网页进行学习
安装CB3系列的simulator (e系列在这里安装e-系列)
docker pull universalrobots/ursim_cb3
注:没有docker应该会提示安装,复制一下提示的代码安装就行
到这里安装部分就结束了,接下来是仿真测试
2、仿真
建议开新窗口
首先source一下要运行的ros2和driver
source /opt/ros/humble/setup.bash #ros
source ~/workspace/ros_ur_driver/install/setup.bash #driver
然后启动sim
ros2 run ur_robot_driver start_ursim.sh -m <ur_type> #<ur_type>替换为要用ur的型号
会有如下结果
在网页打开 http://192.168.56.101:6080/vnc.html, 随便输入密码,我们就能进入控制器页面了
接下来运行rviz2
ros2 launch ur_robot_driver ur_control.launch.py ur_type:=<ur_type> robot_ip:=192.168.56.101 launch_rviz:=true #<ur_type>记得替换
然后在控制器里操作一下机械臂,仿真也应该会跟着一起动,到这里基本就结束了.
注:如果出现Got permission denied这种报错无法启动仿真的话,使用su root取得管理权限,然后重新source一下ros和driver,再运行应该就没问题了
总结
刚开始使用ubuntu,真是问题多多,只能一直google,希望越来越熟练吧,这个主要还是一个记录我遇到的问题及解决办法