天天看點

5 ROS仿真模組化(3- rviz+gazebo+控制仿真機器人)5.5 賦予模型傳感器資訊控制仿真機器人5.6 參考内容和資源連接配接

5 ROS仿真模組化

  • 5.5 賦予模型傳感器資訊控制仿真機器人
    • 5.5.1 實作效果
    • 5.5.2 在urdf檔案添加gazebo傳感器資訊
    • 5.5.3 存在問題
  • 5.6 參考内容和資源連接配接
    • 5.6.1參考内容
    • 5.6.2 資源連接配接

5.5 賦予模型傳感器資訊控制仿真機器人

5.5.1 實作效果

在通過鍵盤控制機器人運動,同時可以訂閱雷達資訊。

5 ROS仿真模組化(3- rviz+gazebo+控制仿真機器人)5.5 賦予模型傳感器資訊控制仿真機器人5.6 參考内容和資源連接配接

5.5.2 在urdf檔案添加gazebo傳感器資訊

1、添加差速驅動輪的資訊

<gazebo>
        <plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so">
            <rosDebugLevel>Debug</rosDebugLevel>
            <publishWheelTF>true</publishWheelTF>
            <robotNamespace>/</robotNamespace>
            <publishTf>1</publishTf>
            <publishWheelJointState>true</publishWheelJointState>
            <alwaysOn>true</alwaysOn>
            <updateRate>100.0</updateRate>
            <legacyMode>true</legacyMode>
            <leftJoint>base_l_wheel_joint</leftJoint> 
            <rightJoint>base_r_wheel_joint</rightJoint>
            <wheelSeparation>0.315</wheelSeparation> 
            <wheelDiameter>0.18</wheelDiameter>
            <broadcastTF>1</broadcastTF>
            <wheelTorque>30</wheelTorque>
            <wheelAcceleration>1.8</wheelAcceleration>
            <commandTopic>cmd_vel</commandTopic>
            <odometryFrame>odom</odometryFrame> 
            <odometryTopic>odom</odometryTopic>
            <robotBaseFrame>base_coordinate</robotBaseFrame>
        </plugin>
    </gazebo>
           

2、添加雷射雷達的資訊

<gazebo reference="laser">
    <sensor type="ray" name="rplidar">
      <pose>0 0 0 0 0 0</pose>
      <visualize>true</visualize>
      <update_rate>5.5</update_rate>
      <ray>
        <scan>
          <horizontal>
            <samples>360</samples>
            <resolution>1</resolution>
            <min_angle>-3</min_angle>
            <max_angle>3</max_angle>
          </horizontal>
        </scan>
        <range>
          <min>0.10</min>
          <max>30.0</max>
          <resolution>0.01</resolution>
        </range>
        <noise>
          <type>gaussian</type>
          <mean>0.0</mean>
          <stddev>0.01</stddev>
        </noise>
      </ray>
      <plugin name="gazebo_rplidar" filename="libgazebo_ros_laser.so">
        <topicName>/scan</topicName>
        <frameName>laser</frameName>
      </plugin>
    </sensor>
  </gazebo>
           
更多傳感器資訊,參考官方:http://gazebosim.org/tutorials?tut=ros_gzplugins

3、launch檔案不需要做修改

4、啟動launch檔案在rviz訂閱雷達話題

在rviz中的add添加LaserScan,在其中的topic裡訂閱/scan話題,修改size大小是得雷射雷達掃描結果更為清晰。

5、控制機器人運動

建立終端輸入

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

通過鍵盤控制機器人運動。

5.5.3 存在問題

在進行鍵盤控制機器人運動,可能存在情況:模型沒有問題,但是機器人前進運動不自然。

此時訂閱機器人的TF坐标和裡程計資訊odometry發現,預設的odom方向以X軸正方向為前進方向,是以urdf模型的車輪前進後退需要考慮是需要繞着Y軸的。

5 ROS仿真模組化(3- rviz+gazebo+控制仿真機器人)5.5 賦予模型傳感器資訊控制仿真機器人5.6 參考内容和資源連接配接

5.6 參考内容和資源連接配接

5.6.1參考内容

1、B站ROS入門與實踐:【奧特學園】ROS機器人入門課程《ROS理論與實踐》零基礎教程

2、ROS-WIKI:https://wiki.ros.org/urdf/XML

3、gazebo官方:http://gazebosim.org/tutorials?tut=ros_gzplugins

5.6.2 資源連接配接

0積分資源

上一篇: 5 ROS仿真模組化(2- urdf檔案的編寫和場景搭建).