仿真
使用ProSim版本匹配问题
使用ProSim时运行提示如下:
Waiting for connect PX4
检查当前PX4版本是否与ProSim版本匹配,可以通过QGS的MAVlink Shell输入如下命令查看
ver all
SITL
1. 仿真器时间戳对齐问题
问题描述
pxh> INFO [lockstep_scheduler] setting initial absolute time to 2900000 us
ERROR [vehicle_imu] 0 - gyro 1310988 timestamp error timestamp_sample: 0, previous timestamp_sample: 0
ERROR [vehicle_imu] 0 - accel 1310988 timestamp error timestamp_sample: 0, previous timestamp_sample: 0
解决方法1
参考链接: https://blog.csdn.net/2401_83038233/article/details/149101727
进入 PX4 -Autopilot目录(PX4源代码目录), 输入如下指令启动仿真 :
make px4_sitl gz_x500
PX4和gazebo启动,QGC正常连接PX4并可通过QGC的虚拟摇杆控制gazebo中的PX4:
仿真不久之后出现如下报错:
ERROR [vehicle_imu] 0 - gyro 1310988 timestamp error timestamp_sample: 1110864000, previous timestamp_samplERROR [vehicle_imu] 0 - accel 1310988 timestamp error timestamp_sample: 1110864000, previous timestamp_samp
NodeShared::Publish()
Error: Interrupted system call
实际上核心报错应该是:
ERROR [vehicle_imu] 0 - gyro 1310988 timestamp error timestamp_sample: 1110864000, previous timestamp_samplERROR [vehicle_imu] 0 - accel 1310988 timestamp error timestamp_sample: 1110864000, previous timestamp_samp
我们通过报错可以发现:这是一个与时间同步有关的报错,或者说与时间戳对齐有关系
在最新版本的PX4源代码中,构建文件CMakeLists中有这样一段值得注意:
if(${PX4_PLATFORM} STREQUAL "posix")
if(ENABLE_LOCKSTEP_SCHEDULER)
add_definitions(-DENABLE_LOCKSTEP_SCHEDULER)
message(STATUS "PX4 lockstep: enabled")
else()
message(STATUS "PX4 lockstep: disabled")
endif()
endif()
这段就是我们解决问题的根本思路 ,对于这段代码解释如下:
锁步调度器(Lockstep Scheduler)是 PX4 在仿真环境(如 SITL)下的一种特殊调度方式,可以让 PX4 的运行速度和仿真器(如 Gazebo)的仿真步进严格同步,保证仿真和飞控之间不会有时间漂移。这对于自动化测试和高精度仿真非常重要 。
可以通过 \`-DENABLE_LOCKSTEP_SCHEDULER=ON\` 控制启用锁步调度器。
所以实际上这是由于仿真的时间不严格同步导致的 ,启动指令变成下面:
make px4_sitl gz_x500 EXTRA_CMAKE_ARGS="-DENABLE_LOCKSTEP_SCHEDULER=ON"
也可以把变量写进去环境变量里面 ,如果寻求长久的话,这里不过多阐述
测试环境:Ubuntu22.04,WSL2,ROS2 Humble,PX4 V1.16.0
实际上我们也会发现,同时消除了报错:
Error: Interrupted system call
效果如下:
欢迎交流补充!PX4 从放弃到精通(二十五):EKF2
参考链接
https://github.com/PX4/PX4-Autopilot/issues/25106 https://discuss.px4.io/t/px4-sitl-multi-vehicle-gazebo-imu-timing-errors/33268/2 https://blog.csdn.net/2401_83038233/article/details/149101727