[px4仿真]取消Gazebo仿真中的传感器噪声

来源:互联网 发布:lua mysql 编辑:程序博客网 时间:2024/05/18 02:48

为了更好地对px4进行仿真,开发团队在虚拟的传感器和Mavlink等地方都加入了一定得噪声,所以我们看到的定点控制实际效果如下图所示:
这里写图片描述

但是当我们进行一些基础的算法测试时,一开始可能需要去除这部分噪声的干扰,最好是在理想环境下进行,经过摸索,以下方法可以有一定效果,但是还不完善:

定位到固件中的以下文件:
gazebo_imu_plugin.cpp
注释以下这一行:

addNoise(&linear_acceleration_I, &angular_velocity_I, dt);

重新编译:

make posix_sitl_default gazebo

效果如下:
这里写图片描述

可以看到水平方向的噪声已经很小了,垂直方向还有一定波动,目前还没太好的办法。

https://github.com/PX4/Firmware/issues/8329中有人提出将https://github.com/PX4/sitl_gazebo/blob/master/include/gazebo_mavlink_interface.h#L173文件中的gps_random_walkgps_noise_density设为0. 但问题是我下载的最新的固件里没有这两行,相似的地方是:

  // vision position estimate noise parameters  static constexpr double ev_corellation_time = 600.0; // s  static constexpr double ev_random_walk = 0.0; // (m/s) / sqrt(hz)  static constexpr double ev_noise_density = 0; // (m) / sqrt(hz)

将这个设为0后仿真结果没有任何改善,理论上这两个参数设为0可以去除仿真环境的噪声,但是不知道为什么没用
同样,将gazebo_mavlink_interface.cpp中的磁力计和气压高度噪声设为0也没有用。。。继续纠结中。

另外,如果想自定义传感器噪声大小,可以在~/src/Firmware/Tools/sitl_gazebo/models/iris/iris.sdf文件中的最后部分修改:

<plugin name='rotors_gazebo_imu_plugin' filename='librotors_gazebo_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></plugin>

IMU噪声定义参见:
https://github.com/ethz-asl/kalibr/wiki/IMU-Noise-Model

原创粉丝点击