天天看点

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文件的编写和场景搭建).