学习笔记39--仿真时,监听某个link的受力情况,urdf编写案例分享

环境:ubuntu16.04 ros-kinetic gazebo7.16

来源:
gazebo仿真时,机器人有些部分出现异常移动,需要获取某些link受力情况信息.

这里是基于以下链接博客的urdf来演示,怎么编写urdf达到监听一个link的受力目的.https://blog.csdn.net/qq_45701501/article/details/107521623

注意:urdf使用时候,一定要去除中文注释

想要复现这个例子,可以保证上面环境一致,然后把链接里面的urdf左轮link替换成如下:

<!--left_wheel-->
     <joint name="left_wheel_joint" type="continuous">
       <parent link="base_link"/>
       <child link="left_wheel"/>
       <origin xyz="0 0.2 0"/>
      <axis xyz="0 1 0" rpy="0 0 0" />
     </joint>
     <link name="left_wheel">
        <visual>
           <geometry>
            <cylinder length="0.05" radius="0.1"/>
           </geometry>
        <origin rpy="1.5707 0 0" xyz="0 0 0"/>
        </visual>
        <collision>
            <geometry>
               <cylinder length="0.05" radius="0.1"/>
            </geometry>
           <origin rpy="1.5707 0 0" xyz="0 0 0"/>
        </collision>
        <inertial>
           <mass value="3" />
           <origin xyz="0 0 0" rpy="0 0 0"/>
           <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1" />
         </inertial>
     </link>


    <gazebo reference="left_wheel_joint">//监听受力的轮子所链接的关节
        <provideFeedback>true</provideFeedback>//反馈设置为true
    </gazebo>
    <gazebo>
        <plugin name="ft_sensor" filename="libgazebo_ros_ft_sensor.so">//调用的gazebo插件
            <updateRate>100</updateRate>//发送的受力情况的频率
            <topicName>left_wheel_ft_sensor</topicName>//监听受力的topic
            <jointName>left_wheel_joint</jointName>//监听的轮子的关节名称
        </plugin>
    </gazebo>


      <gazebo reference="left_wheel">
        <mu1 value="200.0"/>
        <mu2 value="100.0"/>
        <kp value="10000000.0" />
        <kd value="1.0" />
        <material>Gazebo/Grey</material>
      </gazebo>

然后,在终端输入topic list,我们可以发现列表多了一个topic:/left_wheel_ft_sensor

没错,这个topic就是发布left_wheel的实时受力情况
在另外一个终端输入

rostopic echo /left_wheel_ft_sensor

不断输出以下信息:

---
header: 
  seq: 285
  stamp: 
    secs: 920
    nsecs: 703000000
  frame_id: "left_wheel"//表示下面显示的是left_wheel的受力(包括扭矩)情况
wrench: 
  force: 
    x: -0.853289591896
    y: -0.450872302912
    z: 29.5849143769
  torque: 
    x: 1.042562162
    y: -0.158177195047
    z: 0.019169853653
---

总结上面,找到监听的link的joint,然后调用插件,定义topic,基本上就ok了.

对于动态或静态的链接的车轮都测试过了,都有力输出,那么,可以推广到任意链接的link,都可以使用该方法来获取目标link实时受力情况.

只需要在urdf里面添加这一小结插件就ok了.

希望这个分享可以帮助有需要的同学.

##########################
好记性不如烂笔头
'–20200730

猜你喜欢

转载自blog.csdn.net/qq_45701501/article/details/107691233