make px4_sitl gazebo 和roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
的时候出现如下问题,求帮助
链接px4和mavros时出现ERROR [mavlink] [timesync] Time jump detected. Resetting time synchroniser.
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
看起来你在尝试通过
mavros
与px4_sitl
在Gazebo环境中进行连接,但遇到了时间同步的问题,错误提示为"Time jump detected. Resetting time synchroniser." 这通常是因为两个系统之间的时钟不同步导致的。要解决这个问题,可以尝试以下步骤:
-
确保你的主机时间和仿真器中的时间是一致的。你可以在终端运行
date
命令检查主机时间,并在Gazebo中通过gztime
命令检查仿真器的时间。如果不一致,可以通过以下方法调整:- 调整主机时间:
sudo date -s "YYYY-MM-DD HH:MM:SS"
- 调整Gazebo时间:
gztime <timestamp>
- 调整主机时间:
-
在启动Gazebo之前,确保已经正确设置了ROS时间同步节点。这通常会自动处理,但如果出现问题,你可以手动启动时间同步节点。首先,你需要安装
clock
包,然后启动时间同步节点:sudo apt-get install ros-<your_ros_distro>-clock rosrun clock clock
-
检查
px4_sitl
是否正确配置了时间同步。你应该在你的px4_sitl_gazebo.sdf
文件中找到类似这样的行:<plugin name="time_sync_plugin" filename="libgazebo_ros_time_sync.so"> <robotNamespace>/</robotNamespace> <freq>100.0</freq> <useRealTime>true</useRealTime> </plugin>
如果没有这个插件,请添加并保存文件,然后重新启动Gazebo。
-
启动
px4_sitl
和mavros
。按照你的命令行输入,执行以下命令:make px4_sitl gazebo roslaunch mavros px4.launch fcu_url:=udp://:14540@127.0.0.1:14557
-
如果上述步骤仍然无法解决问题,尝试增加
mavros
参数sync_period
来减小时间同步的压力。在你的~/.bashrc
文件中添加以下行(需要重启终端生效):export ROS_PARAM_PREFIX="mavros/time_sync/"
然后运行
source ~/.bashrc
来加载新设置。接着,在mavros
的启动命令中指定新的同步周期:roslaunch mavros px4.launch fcu_url:=udp://:14540@127.0.0.1:14557 sync_period:=500.0
以上步骤应该能帮你解决时间跳变的问题。如果还有问题,请检查网络连接和端口是否正确,以及是否存在其他可能干扰时间同步的因素。
解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线
- ¥20 无法创建新的堆栈防护界面
- ¥15 sessionStorage在vue中的用法
- ¥15 wordpress更换域名后用户图片头像不显示
- ¥15 如何在ubunto上安装CEF (Chromium Embedded Framework),并且基于qt实现打开一个web
- ¥30 AD9854 为什么输出波形幅度受限,AI机器人勿扰
- ¥15 如何在ubunto上安装CEF (Chromium Embedded Framework
- ¥15 如何联系真正的开发者而非公司
- ¥15 有偿求苍穹外卖环境配置
- ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,