一、接上次给ur机械臂加上六维力传感器
上次我们按照孟德尔的猫博主为自己机械臂的末端加上六维度传感器,原文链接:
2 如何给Gazebo中的仿真机械臂添加一个力传感器?_ur5力传感器功能包-CSDN博客文章浏览阅读4k次,点赞11次,收藏64次。1. 你得有一个仿真机械臂简单地说你首先的拥有一个能够在Gazebo当中使用的机械臂的URDF文件,必须要包含visual、collision和inertial三大标签。出于个人习惯,这里直接使用UR官方提供的UR5的URDF文件,具体怎么下载,请自行百度这里建议新建一个功能包用于存放UR5的相关文件,因为官方功能包ur_description里面除了UR5的URDF文件之外,还有其它机械臂的文件,显得特别混乱。你的功能包应该包含以下文件:你..._ur5力传感器功能包https://blog.csdn.net/qq_42823342/article/details/123034744?spm=1001.2014.3001.5501 我们在末端加上六维力传感器之后加入我们的,robotiq_85_gripper的夹爪。
二、我们的xacro文件
我们使用官方提供的包,但是我们的使用的xacro文件是混乱的,采用了多个xarco文件集成到一起这样使用的化非常混乱。
ur机械臂的包的官方链接:GitHub - ros-industrial/universal_robot: ROS-Industrial Universal Robots support (https://wiki.ros.org/universal_robot)ROS-Industrial Universal Robots support (https://wiki.ros.org/universal_robot) - ros-industrial/universal_robothttps://github.com/ros-industrial/universal_robot 我们之前使用的是ur官方的noetic的版本,这样的其中xacro文件是非常的混乱,经过通过查阅,和多次打开,我们最终使用1.27版本,如下图所示。
我们加载的xacro文件为ur5_robot.urdf.xacro,这个文件依赖两个文件,common.gazebo.xacro,ur5.urdf.xacro,把这三个文件组合在一起就可以了。我们现在就是合成一个xacro文件。
我们在这个文件的下面加上六维力传感器,加上我们的夹爪。
三、如何设置控制器
gripper_controller:
type: effort_controllers/GripperActionController
gains:
gripper_finger1_joint: {p: 4, d: 0.1, i: 0, i_clamp: 0}
joint: gripper_finger1_joint
action_monitor_rate: 20
goal_tolerance: 0.002
max_effort: 100
stall_velocity_threshold: 0.001
stall_timeout: 1.0
以上为我们的夹爪的控制器。
但是我们加入控制器,但是我们使用launch文件调用的时候,我们使用rostopic list订阅这个文件,我们发现无法订阅到。
3.1如何修改xacro文件
修改xacro文件:我们修改机械臂夹爪的文件,因为我们的夹爪是PositionJointInterface,我们找到下面的文件。修改成如下所示:
<transmission name="gripper_finger1_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="gripper_finger1_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="gripper_finger1_motor">
<mechanicalReduction>1</mechanicalReduction>
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</actuator>
</transmission>
我们就可以使用机械臂的夹爪了,使用launch文件。
<node name="robot_controllers" pkg="controller_manager" type="controller_manager" respawn="false" output="screen" args="spawn gripper_controller" />
加载launch文件,我们的可以发现rostopic list里面存在夹爪控制器,如下所示。
3.2如何加载控制器,但是无法使用???
因为我们之前使用launch文件的时候我们的launch文件写错了,我们加载控制器使用的是load,而不是spawn。
四、控制器的spawn和load的区别
总的来说,spawn
方法提供了更大的灵活性,可以在运行时动态地管理和启动控制器,而load
方法则适合在系统初始化时就加载和配置好所有需要的控制器。
五、以上为我们的本章内容,加载的图片如下
其中主体为ur5机械臂,白色的部分为六维力传感器,黑色的为夹爪。