1.下载插件

sudo apt-get install ros-noetic-hector-gazebo*
  1. 在你的urdf模型文件中添加gps的描述
  <link name="gps_link">
    <inertial>
      <mass value="0.1"/>
      <origin xyz="0 0 0" />
      <inertia ixx="0.01" iyy="0.01" izz="0.01" ixy="0.01" ixz="0.01" iyz="0.01"/>
    </inertial>
    <visual>
      <geometry>
        <sphere radius="0.01"/>
      </geometry>
      <material name="blue"/>
    </visual>
    <collision>
      <geometry>
        <sphere radius="0.1"/>
      </geometry>
    </collision>
    <sensor name="gps_sensor" type="gps">
      <update_rate>1.0</update_rate>
      <vertical_fov>90.0</vertical_fov>
      <horizontal_fov>90.0</horizontal_fov>
      <visualize>true</visualize>
      <gps>
        <position>0 0 0</position>
      </gps>
    </sensor>
  </link>
  <joint name="base_to_gps" type="fixed">
  <parent link="base_footprint" />
  <child link="gps_link" />
  <origin xyz="0.0 0.0 0.1" rpy="0 0 0" />  <!-- 适当设置位置 -->
</joint>

3.添加gazebo插件

  <gazebo>
    <plugin name="gps_controller" filename="libhector_gazebo_ros_gps.so">
      <updateRate>40</updateRate>
      <bodyName>base_link</bodyName>
      <frameId>base_link</frameId>
      <topicName>navsat/fix</topicName>
      <velocityTopicName>navsat/vel</velocityTopicName>
      <referenceLatitude>$(optenv GAZEBO_WORLD_LAT 49.9)</referenceLatitude>
      <referenceLongitude>$(optenv GAZEBO_WORLD_LON 8.9)</referenceLongitude>
      <referenceHeading>90</referenceHeading>
      <referenceAltitude>0</referenceAltitude>
      <drift>0.0000001 0.000001 0.000001</drift>
    </plugin>
  </gazebo>
  

之后运行你的模型程序,通过 rostopic list 可以看到gps话题

在这里插入图片描述
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐