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_linklinkName><imuTopic>/imuimuTopic><gyroscopeNoiseDensity>0.0003394gyroscopeNoiseDensity><gyroscopeRandomWalk>3.8785e-05gyroscopeRandomWalk><gyroscopeBiasCorrelationTime>1000.0gyroscopeBiasCorrelationTime><gyroscopeTurnOnBiasSigma>0.0087gyroscopeTurnOnBiasSigma><accelerometerNoiseDensity>0.004accelerometerNoiseDensity><accelerometerRandomWalk>0.006accelerometerRandomWalk><accelerometerBiasCorrelationTime>300.0accelerometerBiasCorrelationTime><accelerometerTurnOnBiasSigma>0.196accelerometerTurnOnBiasSigma>
plugin><plugin name='gps_plugin' filename='libgazebo_gps_plugin.so'><robotNamespace/><gpsNoise>truegpsNoise>
plugin><plugin name='magnetometer_plugin' filename='libgazebo_magnetometer_plugin.so'><robotNamespace/><pubRate>20pubRate><noiseDensity>0.0004noiseDensity><randomWalk>6.4e-06randomWalk><biasCorrelationTime>600biasCorrelationTime><magTopic>/magmagTopic>
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>1always_on><update_rate>30update_rate><visualize>falsevisualize><camera name="left"><pose>0 0.06 0 0 0 0pose><horizontal_fov>1.5708horizontal_fov><image><width>752width><height>480height><format>R8G8B8format>image><clip><near>0.1near><far>300far>clip>camera><camera name="right"><pose>0 -0.06 0 0 0 0pose><horizontal_fov>1.5708horizontal_fov><image><width>752width><height>480height><format>R8G8B8format>image><clip><near>0.1near><far>300far>clip>camera><plugin name="stereo_camera_controller" filename="libgazebo_ros_multicamera.so"><robotNamespace>robotNamespace><alwaysOn>truealwaysOn><updateRate>30updateRate><cameraName>/stereo_cameracameraName><imageTopicName>image_rawimageTopicName><cameraInfoTopicName>camera_infocameraInfoTopicName><frameName>stereo_camera_frameframeName><hackBaseline>0.12hackBaseline><Fx>376.0Fx><Fy>376.0Fy><Cx>376.0Cx><Cy>240.0Cy><distortionK1>-0.1distortionK1><distortionK2>0.01distortionK2><distortionK3>0.0distortionK3><distortionT1>5e-5distortionT1><distortionT2>-1e-4distortionT2>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><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>512samples><resolution>1resolution><min_angle>-3.1415926535897931min_angle><max_angle>3.1415926535897931max_angle>horizontal><vertical><samples>32samples><min_angle>-0.2617993877991494365min_angle><max_angle>0.2617993877991494365max_angle>vertical>scan><range><min>0.2min><max>30max><resolution>0.01resolution>range>ray><plugin name='3d_laser' filename='libgazebo_ros_velodyne_laser.so'><topicName>/3dscantopicName><frameName>3d_laserframeName><gaussianNoise>0.008gaussianNoise>plugin><always_on>1always_on><update_rate>7update_rate><visualize>0visualize>sensor>
libgazebo_ros_velodyne_laser.so需要引用velodyne_simulator功能包。可通过源码编译安装;
参考链接:https://www.yuque.com/xtdrone/manual_cn/sensor_model
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
