ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真–单纯夹爪按上并不能动

注释:在过程中会遇到遇到,后边附带解决办法,有问题不可怕,一个个解决就好了。
学会善用谷歌。

注释:此方式只能让rg2添加到模型中并显示出来,并不能控制rg2,请参考
https://github.com/sharathrjtr/ur10_rg2_ros
不久后会有另外博客更新。

仿真环境

Ubuntu18.04
ros-melodic
ur3
robotiq ft300
onrobot rg2

安装ur功能包

第一次需要安装功能包,安装完成后下一次运行可以省略此步
ur有工能包,直接从github上下载即可。

cd catkin_ws/src
git clone -b melodic-devel https://github.com/ros-industrial/universal_robot.git

//若版本为kinetic,应将上面命令中的melodic改为kinetic

cd ..
rosdep update
rosdep install --from-paths src --melodic-src --rosdistro melodic
catkin_make
source ~/catkin_ws/devel/setup.bash

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第1张图片

启动仿真

第一个终端:打开gazebo

roslaunch ur_gazebo ur3.launch

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第2张图片
第二个终端:

roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch sim:=true

第三个终端:

roslaunch ur3_moveit_config moveit_rviz.launch config:=true

运动规划

在rviz中拖动机械臂改变机械臂的位置,然后点击plan就可以轨迹规划,再点击execute,机械臂就可以运动到目标位置,并且噶泽波中可以观察到仿真结果。
ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第3张图片
ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第4张图片

安装robotiq功能包

cd ~/catkin_ws/src
git clone https://github.com/ros-industrial/robotiq.git
rosdep install robotiq_modbus_tcp
sudo apt-get install ros-melodic-soem
sudo usermod -a -G dialout $USER

参考wiki:http://wiki.ros.org/robotiq

修改xacro文件,将robotiq ft300添加到ur3的末端

cd  ~/catkin_ws/src/robotiq/robotiq_ft_sensor/urdf
gedit robotiq_ft300.urdf.xacro

在文件中,能看到下面的信息,此信息描述怎么将传感器添加到机器人末端:
ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第5张图片
打开ur3的描述文件ur3.urdf.xacro
在此文件夹路径下打开终端:

gedit  ur3.urdf.xacro

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第6张图片
在文件的开始位置处,我们添加:

<xacro:include filename="$(find robotiq_ft_sensor)/urdf/robotiq_ft300.urdf.xacro" />

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第7张图片
在文件的末尾处,我们添加:

<xacro:robotiq_ft300 parent="${prefix}tool0" prefix="">
  <origin xyz="0 0 0 " rpy="0 0 0"/>
</xacro:robotiq_ft300>

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第8张图片
添加完成后保存退出,打开gazebo查看效果:

roslaunch ur_gazebo ur3.launch

传感器已经被添加到机器人末端了。
ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第9张图片

安装onrobot功能包

  1. 下载并安装功能包
cd ~/catkin_ws/src
git clone https://github.com/sharathrjtr/ur10_rg2_ros.git
cd ur10_rg2_ros
rm -rf ur_modern_driver  # 笔者的UR为CM3,新版的驱动,在仿真阶段暂时不需要实体机器的驱动
cd ~/catkin_ws
catkin_make

修改ur3.urdf.xacro描述性文件

  1. 将rg2夹爪的urdf.xacrl描述性文件复制粘贴到ur3.urdf.xacro描述性文件中去

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第10张图片
将以上描述性文件复制到ur3.urdf.xacro文件下方区域
ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第11张图片

  1. 对ur3.urdf.xacro描述性文件进行修改
    代码中用到M_PI,所以将其插入到ur3描述性文件前端。

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第12张图片

  1. 修改插入ur3.urdf.xacro文件中rg2的描述性文件
    parent link决定了rg2与哪个link进行安装,rg2安装到robotiq后边,所以rg2的parent link为robotiq的末端link,robotiq的末端link可以从robotiq的urdf.xacro描述性文件中查看。
    我的robotiq的末端link为:${prefix}robotiq_ft_frame_id,所以将rg2的parent link修改为他,将origin中的py和xyz修改为一下图
    ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第13张图片
    最后,夹爪安装到了robotiq的传感器上去了
    ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第14张图片

问题总结

问题1:第一步打开gazebo时提示:

[ERROR] [1590498356.252940749, 0.104000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/shoulder_pan_joint
[ERROR] [1590498356.254045416, 0.104000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/shoulder_lift_joint
[ERROR] [1590498356.255157347, 0.104000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/elbow_joint
[ERROR] [1590498356.256883076, 0.104000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/wrist_1_joint
[ERROR] [1590498356.258201036, 0.104000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/wrist_2_joint
[ERROR] [1590498356.260040928, 0.104000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/wrist_3_joint

ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真---单纯夹爪按上并不能动_第15张图片
解决办法:可以忽略,此为ros升级过程导致,不会造成影响,可以查看wiki。
https://answers.ros.org/question/293830/what-is-the-fix-for-no-p-gain-specified-for-pid-namespace-gazebo_ros_controlpid_gainsback_right_wheel_joint-ros-melodic/
问题2:添加夹爪之后编译时候不能编译成功
在这里插入图片描述
提示缺少socketcan-interface安装包
解决办法:安装socketcan-interface安装包

sudo apt-get install ros-melodic-socketcan-interface 

问题3:终端会提示没有控制器:在rviz中机器人可以动,在gazebo中机器人不能动。

ERROR] [1571208919.660838700, 0.574000000]: Could not load controller 'joint_state_controller' because controller type 'joint_state_controller/JointStateController' does not exist.
[ERROR] [1571208919.660891569, 0.574000000]: Use 'rosservice call controller_manager/list_controller_types' to get the available types

解决办法:安装控制器功能包

sudo apt-get install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-ros-control ros-melodic-ros-controllers
sudo apt-get install ros-kinetic-joint-trajectory-controller

问题4:将传感器和夹爪安装之后不能进行运动规划,
问题还没有解决,解决后上传。

你可能感兴趣的:(ur机器人,#,ros-ur3仿真与实时控制)