ROS学习系列:第五讲 — SDF模型文件常用传感器模型

IMU、GPS、磁罗盘

IMU、GPS、磁罗盘的观测模型都可用下式描述:
在这里插入图片描述
x m x_m xm为测量值, x x x为真值
b b b为漂移误差
n n n n b n_b nb都是高斯噪声,其中 n n n为定常误差, n b n_b nb b b b对时间的梯度。

<plugin name='rotors_gazebo_imu_plugin' filename='libgazebo_imu_plugin.so'>
	<robotNamespace/>
	<linkName>/imu_link</linkName>
	<imuTopic>/imu</imuTopic>
	<gyroscopeNoiseDensity>0.0003394</gyroscopeNoiseDensity>
	<gyroscopeRandomWalk>3.8785e-05</gyroscopeRandomWalk>
	<gyroscopeBiasCorrelationTime>1000.0</gyroscopeBiasCorrelationTime>
	<gyroscopeTurnOnBiasSigma>0.0087</gyroscopeTurnOnBiasSigma>
	<accelerometerNoiseDensity>0.004</accelerometerNoiseDensity>
	<accelerometerRandomWalk>0.006</accelerometerRandomWalk>
	<accelerometerBiasCorrelationTime>300.0</accelerometerBiasCorrelationTime>
	<accelerometerTurnOnBiasSigma>0.196</accelerometerTurnOnBiasSigma>
</plugin>

<plugin name='gps_plugin' filename='libgazebo_gps_plugin.so'>
	<robotNamespace/>
	<gpsNoise>true</gpsNoise>
	<!--the paremeters of GPS noise is defined on gazebo_gps_plugin.h-->
</plugin>

<plugin name='magnetometer_plugin' filename='libgazebo_magnetometer_plugin.so'>
	<robotNamespace/>
	<pubRate>20</pubRate>
	<noiseDensity>0.0004</noiseDensity>
	<randomWalk>6.4e-06</randomWalk>
	<biasCorrelationTime>600</biasCorrelationTime>
	<magTopic>/mag</magTopic>
</plugin>

主要参数含义:

参数描述
NoiseDensity n n n的标准差
RandomWalk n b n_b nb的标准差
BiasCorrelationTime b b b的相关时间
TurnOnBiasSigma b b b的初始标准差

立体相机

立体相机是SDF1.5中multicamera这个类型的sensor的实例化,配合libgazebo_ros_multicamera.so插件来实现将话题发布到ros中的功能,可配置参数结构如xml中所示:

 <sensor name="camera" type="multicamera">
        <always_on>1</always_on>
        <update_rate>30</update_rate>
        <visualize>false</visualize>
        <camera name="left">
          <pose>0 0.06 0 0 0 0</pose>
          <horizontal_fov>1.5708</horizontal_fov>
          <image>
            <width>752</width>
            <height>480</height>
            <format>R8G8B8</format>
          </image>
          <clip>
            <near>0.1</near>
            <far>300</far>
          </clip>
        </camera>
        <camera name="right">
          <pose>0 -0.06 0 0 0 0</pose>
          <horizontal_fov>1.5708</horizontal_fov>
          <image>
            <width>752</width>
            <height>480</height>
            <format>R8G8B8</format>
          </image>
          <clip>
            <near>0.1</near>
            <far>300</far>
          </clip>
        </camera>
        <plugin name="stereo_camera_controller" filename="libgazebo_ros_multicamera.so">
          <robotNamespace></robotNamespace>
          <alwaysOn>true</alwaysOn>
          <updateRate>30</updateRate>
          <cameraName>/stereo_camera</cameraName>
          <imageTopicName>image_raw</imageTopicName>
          <cameraInfoTopicName>camera_info</cameraInfoTopicName>
          <frameName>stereo_camera_frame</frameName>
          <hackBaseline>0.12</hackBaseline>
          <Fx>376.0</Fx>
          <Fy>376.0</Fy>
          <Cx>376.0</Cx>
          <Cy>240.0</Cy>
          <distortionK1>-0.1</distortionK1>
          <distortionK2>0.01</distortionK2>
          <distortionK3>0.0</distortionK3>
          <distortionT1>5e-5</distortionT1>
          <distortionT2>-1e-4</distortionT2>
        </plugin>
</sensor>

主要参数含义:
在这里插入图片描述
注意,上面的参数有些是相互影响的,比如图像宽高、内参与视场角,因此调节的时候需要保证一致性。

雷达

雷达是SDF1.5格式中的ray类型sensor的实例化,配合libgazebo_ros_laser.so插件来实现将话题发布到ros中的功能,所有可配置参数如xml中所示:

<sensor name="lidar" type="ray">
    <pose></pose>
    <ray>
        <scan>
            <horizontal>
                <samples></samples>
                <resolution></resolution>
                <min_angle></min_angle>
                <max_angle></max_angle>
            </horizontal>
            <vertical></vertical>
            
        </scan>
      <range>
            <min></min>
            <max></max>
            <resolution></resolution>
        </range>
        <noise>
            <type></type>
          <mean></mean>
            <stddev></stddev>
        </noise>
    </ray>
  <plugin name="lidar_ros_plugin" filename = "libgazebo_ros_laser.so">
    <topicName></topicName>
        <frameName></frameName> 
    </plugin>
    <always_on></always_on>
    <update_rate></update_rate>
    <visualize></visualize>
</sensor>

主要参数含义:
在这里插入图片描述

3D激光雷达

<sensor name='3d_lidar' type='ray'>
      <ray>
        <scan>
          <horizontal>
            <samples>512</samples>
            <resolution>1</resolution>
            <min_angle>-3.1415926535897931</min_angle>
            <max_angle>3.1415926535897931</max_angle>
          </horizontal>
          <vertical>
            <samples>32</samples>
            <min_angle>-0.2617993877991494365</min_angle>
            <max_angle>0.2617993877991494365</max_angle>
          </vertical>
        </scan>
        <range>
          <min>0.2</min>
          <max>30</max>
          <resolution>0.01</resolution>
        </range>
      </ray>
      <plugin name='3d_laser' filename='libgazebo_ros_velodyne_laser.so'>
        <topicName>/3dscan</topicName>
        <frameName>3d_laser</frameName>
        <gaussianNoise>0.008</gaussianNoise>
      </plugin>
      <always_on>1</always_on>
      <update_rate>7</update_rate>
      <visualize>0</visualize>
    </sensor>

libgazebo_ros_velodyne_laser.so需要引用velodyne_simulator功能包。可通过源码编译安装;

参考链接:https://www.yuque.com/xtdrone/manual_cn/sensor_model

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值