在进行PX4和MAVROS使用Gazebo仿真时,遇到了一个启动报错的问题。经过一番尝试和研究,最终找到了解决方法。以下是问题描述和解决过程的整理:
问题现象
当尝试运行roslaunch px4 mavros_posix_sitl.launch时,遇到了一个报错。为了更好地排查问题,我尝试了分两步运行。首先启动了roslaunch px4 posix_sitl.launch,这个步骤能够正常启动无人机的Gazebo仿真。然后,当我尝试启动roslaunch mavros px4.launch时,终端报错如下:
...
[ INFO] [1704601726.781069918]: Plugin wind_estimation initialized
[ INFO] [1704601726.781279900]: Built-in SIMD instructions: SSE, SSE2
[ INFO] [1704601726.781308466]: Built-in MAVLink package version: 2022.12.30
[ INFO] [1704601726.781340201]: Known MAVLink dialects: common ardupilotmega ASLUAV AVSSUAS all cubepilot development icarous matrixpilot paparazzi standard storm32 uAvionix ualberta
[ INFO] [1704601726.781368980]: MAVROS started. MY ID 1.240, TARGET ID 1.1
[ INFO] [1704601753.940809703]: udp0: Remote address: 127.0.0.1:14580
[ INFO] [1704601753.941192321]: IMU: High resolution IMU detected!
*** stack smashing detected ***: <unknown> terminated
================================================================================REQUIRED process [mavros-2] has died!
process has died [pid 11805, exit code -6, cmd /home/user/uav_ws/devel/lib/mavros/mavros_node __name:=mavros __log:=/home/xuzhengzhe/.ros/log/3ecc73a6-ad15-11ee-a1c8-144f8a061085/mavros-2.log].
log file: /home/user/.ros/log/3ecc73a6-ad15-11ee-a1c8-144f8a061085/mavros-2*.log
Initiating shutdown!
================================================================================
[mavros-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done
解决方法
在经过多次尝试和网上搜索后,发现了可以通过降低PX4固件版本至v1.8.2来解决。重新安装后,问题得到了解决。