日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gazebo+rviz中配置UR+robotiq_gripper夹爪,最详细操作过程

發(fā)布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gazebo+rviz中配置UR+robotiq_gripper夹爪,最详细操作过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

gazebo中配置robotiq

  • 1.下載功能包
    • 1.UR機器人功能包下載
    • 2.Robotiq功能包下載
      • 插件修改
  • 2.gazebo仿真所需代碼
    • 1.修改urdf文件
    • 2.創(chuàng)建yaml文件
    • 3.創(chuàng)建launch文件
  • 3.UR5和robotiq85結合
    • 1.修改ur5的urdf文件
    • 2.修改launch文件
    • 3.運行l(wèi)aunch文件查看效果

最原始的ros-industrial提供的robotiq夾爪的功能包,是不能用在gazebo中仿真的,只能在rviz中可視化,原因就是其urdf文件,或者說xacro文件中缺少在gazebo中需要的東西。下面就具體說一下應該修改哪些文件:

1.下載功能包

1.UR機器人功能包下載

github地址:https://github.com/ros-industrial/universal_robot/tree/melodic-devel
這個是Ubuntu18.04+ROS melodic版本的,如果需要其他版本請在分支中選擇。
下載完成后記得編譯工作空間。

2.Robotiq功能包下載

這里有兩種版本的功能包
建議使用下面經過修改后的功能包。
這個是經過修改的:https://github.com/MetaMemoryT/robotiq_85_gripper-1
這個是ros-industrial的:https://github.com/ros-industrial/robotiq
我用的是修改過的,也就是第一個倉庫中的,因為ros-industrial那個在使用robotiq_2f_85_gripper_visualization功能包時,其中的夾爪基座的dae文件是不正確的,在倉庫的issue中也有人修改過,但是我還是沒有修改成功,就用了另外一個倉庫的功能包。而且這個包的好處就是支持在gazebo中仿真,因為作者已經修改好了xacro文件,添加了gazebo仿真必需的部分。

插件修改

由于在robotiq夾爪中有幾個關節(jié)是被動關節(jié)(mimic joint),標準Gazebo不支持Mimic 關節(jié)仿真, 所以需要安裝一個插件。第一個功能包中用到了這個插件,如果出問題就用下面這個倉庫中的代碼代替:https://github.com/roboticsgroup/roboticsgroup_gazebo_plugins
這個倉庫含有的插件很全:https://github.com/JenniferBuehler/gazebo-pkgs
下載好之后記得編譯。

2.gazebo仿真所需代碼

下面來說一下如果下載的是最原始版本的代碼,如何修改。(如果使用的是第一個經過修改的代碼,這部分請略過)

1.修改urdf文件

找到robotiq_2f_140_gripper_visualization/urdf/robotiq_arg2f_transmission.xacro這個文件,修改為:

<?xml version="1.0"?> <robot xmlns:xacro="http://ros.org/wiki/xacro"><xacro:macro name="robotiq_arg2f_transmission" params="prefix"><transmission name="${prefix}finger_joint_trans"><type>transmission_interface/SimpleTransmission</type><joint name="${prefix}finger_joint"><hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface></joint><actuator name="${prefix}finger_joint_motor"><mechanicalReduction>1</mechanicalReduction></actuator></transmission><gazebo><!-- loading plugin: mimic joints works in gazebo now--><plugin filename="libroboticsgroup_gazebo_mimic_joint_plugin.so" name="${prefix}mimic_robotiq_85_4"><joint>${prefix}finger_joint</joint><mimicJoint>${prefix}right_outer_knuckle_joint</mimicJoint><multiplier>1.0</multiplier></plugin><plugin filename="libroboticsgroup_gazebo_mimic_joint_plugin.so" name="${prefix}mimic_robotiq_85_2"><joint>${prefix}finger_joint</joint><mimicJoint>${prefix}left_inner_finger_joint</mimicJoint><multiplier>-1.0</multiplier><!--<offset>0.0</offset>--></plugin><plugin filename="libroboticsgroup_gazebo_mimic_joint_plugin.so" name="${prefix}mimic_robotiq_85_1"><joint>${prefix}finger_joint</joint><mimicJoint>${prefix}right_inner_finger_joint</mimicJoint><multiplier>-1.0</multiplier></plugin><plugin filename="libroboticsgroup_gazebo_mimic_joint_plugin.so" name="${prefix}mimic_robotiq_85_3"><joint>${prefix}finger_joint</joint><mimicJoint>${prefix}left_inner_knuckle_joint</mimicJoint><multiplier>1.0</multiplier></plugin><plugin filename="libroboticsgroup_gazebo_mimic_joint_plugin.so" name="${prefix}mimic_robotiq_85_5"><joint>${prefix}finger_joint</joint><mimicJoint>${prefix}right_inner_knuckle_joint</mimicJoint><multiplier>1.0</multiplier></plugin></gazebo></xacro:macro></robot>

如果運行時有報錯Deprecated syntax, please prepend ‘hardware_interface/’ to ‘PositionJointInterface’ within the tag in joint ‘finger_joint’
就把上面文件中的

<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>

改成

<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>

單獨仿真夾爪時,需要用到ros-control,在此文件中添加:

<gazebo> <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so"> <robotNamespace>/</robotNamespace> <legacyModeNS>true</legacyModeNS> </plugin></gazebo>

和ur機器人連接到一塊時,一定要刪掉這段!

2.創(chuàng)建yaml文件

在gazebo中仿真夾爪,要給它控制參數,即PID參數,在robotiq_2f_85_gripper_visualization下創(chuàng)建config文件夾,在config下創(chuàng)建gazebo_controller.yaml文件,把下面代碼復制進去:

# Note: You MUST load these PID parameters for all joints that are using the # PositionJointInterface, otherwise the arm + gripper will act like a giant # parachute, counteracting gravity, and causing some of the wheels to lose # contact with the ground, so the robot won't be able to properly navigate. See # https://github.com/ros-simulation/gazebo_ros_pkgs/issues/612 gazebo_ros_control:pid_gains:# these gains are used by the gazebo_ros_control pluginfinger_joint:p: 20.0i: 0.1d: 0.0i_clamp: 0.2antiwindup: falsepublish_state: true# the following gains are used by the gazebo_mimic_joint pluginleft_inner_knuckle_joint:p: 20.0i: 0.1d: 0.0i_clamp: 0.2antiwindup: falsepublish_state: trueleft_inner_finger_joint:p: 20.0i: 0.1d: 0.0i_clamp: 0.2antiwindup: falsepublish_state: trueright_outer_knuckle_joint:p: 20.0i: 0.1d: 0.0i_clamp: 0.2antiwindup: falsepublish_state: trueright_inner_knuckle_joint:p: 20.0i: 0.1d: 0.0i_clamp: 0.2antiwindup: falsepublish_state: trueright_inner_finger_joint:p: 20.0i: 0.1d: 0.0i_clamp: 0.2antiwindup: falsepublish_state: true

繼續(xù)在config下創(chuàng)建gripper_controller_robotiq.yaml文件:

gripper_controller:type: position_controllers/JointTrajectoryControllerjoints:- finger_jointconstraints:goal_time: 0.6stopped_velocity_tolerance: 0.05finger_joint: {trajectory: 0.01, goal: 0.01}stop_trajectory_duration: 0.5state_publish_rate: 25action_monitor_rate: 10

繼續(xù)在config下創(chuàng)建joint_state_controller.yaml文件:

joint_state_controller:type: joint_state_controller/JointStateControllerpublish_rate: 50

3.創(chuàng)建launch文件

在robotiq_2f_85_gripper_visualization/launch文件夾下創(chuàng)建gripper_gazebo.launch文件:

<?xml version="1.0" ?><launch><param name="robot_description" command="$(find xacro)/xacro --inorder $(find robotiq_2f_85_gripper_visualization)/urdf/robotiq_arg2f_85_model.xacro" /><!-- Load gazebo controller configurations --><!-- Note: You MUST load these PID parameters for all joints that are usingthe PositionJointInterface, otherwise the arm + gripper will act like agiant parachute, counteracting gravity, and causing some of the wheelsto lose contact with the ground, so the robot won't be able to properlynavigate. Seehttps://github.com/ros-simulation/gazebo_ros_pkgs/issues/612 --><rosparam file="$(find robotiq_2f_85_gripper_visualization)/config/gazebo_controller.yaml" command="load" /><!-- Gazebo --><include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="paused" value="false" /></include><!-- Spawn the robot into Gazebo --><node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-urdf -param robot_description -model robot -x 0 -y 0 -z 0.1" /><!-- Load ros_control controller configurations --><rosparam file="$(find robotiq_2f_85_gripper_visualization)/config/joint_state_controller.yaml" command="load" /><rosparam file="$(find robotiq_2f_85_gripper_visualization)/config/gripper_controller_robotiq.yaml" command="load" /><!-- Start the controllers --><node name="controller_spawner" pkg="controller_manager" type="spawner" output="screen" ns="/" args="joint_state_controller gripper_controller"/><!-- Robot state publisher --><node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" output="screen" /> <node name="gui_controller" pkg="rqt_joint_trajectory_controller" type="rqt_joint_trajectory_controller" /> </launch>

?其中最后調用的rqt_joint_trajectory_controller是一個工具,可以實時發(fā)布并控制機器人各關節(jié)的角度,如果沒安裝可以使用sudo apt-get install ros-melodic-joint-trajectory-controller來安裝。
?編譯之后, 用roslaunch robotiq_2f_85_gripper_visualization gripper_gazebo.launch命令就可以在gazebo中看到夾爪了(后面再放截圖)。

3.UR5和robotiq85結合

這里需要修改ur5的描述文件

1.修改ur5的urdf文件

找到universial_robot/ur_description/urdf/文件夾,新建一個ur5_robot_robotiq85_gripper.urdf.xacro文件或直接復制ur5_robot.urdf.xacro,然后把名字改成這個也可以。這個文件中包含如下代碼:
可以對比下和原來的文件相比增加了哪些代碼。

<?xml version="1.0"?> <robot xmlns:xacro="http://wiki.ros.org/xacro" name="ur5" ><xacro:arg name="transmission_hw_interface" default="hardware_interface/PositionJointInterface"/><!-- common stuff --><xacro:include filename="$(find ur_description)/urdf/common.gazebo.xacro" /><!-- ur5_robotiq85_gripper --><xacro:include filename="$(find ur_description)/urdf/ur5.urdf.xacro" /><xacro:include filename="$(find robotiq_85_description)/urdf/robotiq_85_gripper.urdf.xacro" /><!-- arm --><xacro:ur5_robot prefix="" joint_limited="false"transmission_hw_interface="$(arg transmission_hw_interface)"/><!--robotiq_85_gripper--><xacro:robotiq_85_gripper prefix="" parent="ee_link"/><link name="world" /><joint name="world_joint" type="fixed"><parent link="world" /><child link = "base_link" /><origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" /></joint></robot>

2.修改launch文件

找到universial_robot/ur_description/launch/文件夾,下面有view_ur5.launch和ur5_upload.launch兩個文件,可以分別復制一份,然后進行修改。新復制的view_ur5.launch可以命名為view_ur5_gripper.launch,其中的

<include file="$(find ur_description)/launch/ur5_upload.launch"/>

修改為

<include file="$(find ur_description)/launch/ur5_upload_gripper.launch"/>

新復制的ur5_upload.launch可以命名為ur5_upload_gripper.launch,其中的

<param unless="$(arg limited)" name="robot_description" command="$(find xacro)/xacro --inorder $(find ur_description)/urdf/ur5_robot.urdf.xacro transmission_hw_interface:=$(arg transmission_hw_interface)" />

改為

<param unless="$(arg limited)" name="robot_description" command="$(find xacro)/xacro --inorder $(find ur_description)/urdf/ur5_robot_robotiq85_gripper.urdf.xacro transmission_hw_interface:=$(arg transmission_hw_interface)" />

上邊這些是在rviz中查看的launch文件,下面,說一下gazebo中如何修改:
找到universial_robot/ur_gazebo/launch/文件夾,下面的ur5.launch修改如下:
將其中的

<include file="$(find ur_description)/launch/ur5_upload.launch">

修改為

<include file="$(find ur_description)/launch/ur5_upload_robotiq85_gripper.launch">

添加下面這兩行代碼:

<rosparam file="$(find robotiq_85_gazebo)/controller/gripper_controller_robotiq.yaml" command="load"/> <node name="gui_controller" pkg="rqt_joint_trajectory_controller" type="rqt_joint_trajectory_controller" />

這一行:

<node name="arm_controller_spawner" pkg="controller_manager" type="controller_manager" args="spawn arm_controller" respawn="false" output="screen"/>

修改為

<node name="arm_controller_spawner" pkg="controller_manager" type="controller_manager" args="spawn arm_controller gripper" respawn="false" output="screen"/>

這樣做可以對夾爪進行控制。
至此,所有文件修改完畢。

3.運行l(wèi)aunch文件查看效果

首先測試rviz中,運行roslaunch ur5_description view_ur5_gripper.launch,不出意外應該可以看到以下效果,在joint_state_publisher_gui中調整可以控制機械臂和夾爪。

測試gazebo中效果:
運行roslaunch ur_gazebo ur5.launch,可以看到以下效果:
通過滑動右邊劃塊可以控制機械臂運動,controller選擇gripper可以控制夾爪。

到上面應該就UR+robotiq85的配置全部完成了,所有涉及的代碼我放到github上:UR5+robotiq85
我的仿真會出現(xiàn)夾爪一直在抖的問題,機械臂移動幾下或者過一段時間,夾爪就散架了,沒能找到解決方案,修改關節(jié)的effort也不行,希望有大佬如果可以解決這個問題,能夠不吝賜教!
由于這個夾爪我沒法使用,所以又換了dh_gripper,參考我的另一篇文章UR5+dh_ag95_gripper夾爪配置


現(xiàn)在問題解決啦,下一些插件就行了,參考另一篇博客:https://blog.csdn.net/qq_44642372/article/details/124462220
參考以下文章:
https://blog.csdn.net/Tepmoe/article/details/119455411
https://blog.csdn.net/weixin_42268975/article/details/106268506

總結

以上是生活随笔為你收集整理的gazebo+rviz中配置UR+robotiq_gripper夹爪,最详细操作过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣啪啪 | 国产精品三级在线观看无码 | 欧美自拍区 | 婷婷色中文字幕 | 91精品国产色综合久久不卡蜜臀 | 黑人玩弄人妻一区二区三区 | 羞视频在线观看 | 国产丝袜精品视频 | 日本在线国产 | 4438成人网| 男女调教视频 | 久久春色 | 欧美日韩精品一区二区三区 | 亚洲涩视频 | 国产精品视频久久久久 | 国产伦精品一区二区三区视频1 | 成人小视频在线看 | av在线影视| 亚洲精品久久一区二区三区777 | 黄色综合网 | 国产寡妇亲子伦一区二区三区四区 | 国产精品久久久久久久 | 日韩一级色片 | 亚洲色图17p | 日韩av不卡一区二区 | 97国产精品久久久 | 91国产一区 | aa在线视频| 猫咪av网| 日本污视频在线观看 | 成人在线高清视频 | 精品人妻一区二区三区视频 | 香蕉视频97| 亲嘴扒胸摸屁股免费视频日本网站 | 欧美91精品| 欧美性受xxx| 午夜影院一区二区三区 | 日韩性xx| 精品国产成人亚洲午夜福利 | 国产一级二级三级在线观看 | 欧美18一19性内谢 | 国产麻豆精品久久一二三 | 国产精品国产三级国产专播品爱网 | 欧洲精品视频在线 | 亚洲欧美第一 | 成人欧美一区二区三区在线观看 | 亚洲精品久久久中文字幕 | 欧美男女激情 | 久久婷色 | 韩国精品在线观看 | 久久无码精品丰满人妻 | sao虎视频在线精品永久 | 成人毛片软件 | 日韩欧美成人网 | 精品少妇久久久 | 久久精品人妻一区二区三区 | 88xx成人永久免费观看 | 美女十八毛片 | 四川丰满妇女毛片四川话 | 国产欧美日韩综合精品一区 | 男生草女生的视频 | 国产精品揄拍100视频 | 国产一区二区自拍 | 大牛影视剧免费播放在线 | 中文一区二区在线观看 | gv天堂gv无码男同在线观看 | 日韩欧美国产中文字幕 | 亚洲成人第一网站 | 国产精品98| 欧美日韩一区二区三区69堂 | 高潮一区二区三区乱码 | 欧美精品网址 | 亚洲激情免费视频 | 舒淇裸体午夜理伦 | 正在播放经典国语对白 | 男人综合网 | 国产精品一区二区三区在线免费观看 | 亚洲欧美日韩一区 | 欧美一级精品 | 韩国av免费在线 | 久久大伊人 | 国产黄色免费网站 | 日本中文视频 | 国产一区免费看 | 亚洲黄色大全 | 国产女人高潮时对白 | 可乐操亚洲 | 国产日韩精品在线 | 91黄色片| 午夜男人天堂 | 日韩免费视频观看 | 黄色三级网站 | 日日夜夜天天综合 | av在线手机观看 | 精品日韩久久 | 一级黄色片一级黄色片 | 久久人妻少妇嫩草av蜜桃 | 亚洲国产精品国自产拍久久 | 草免费视频|