FishBot二驱机器人,运行 9.0.6. 雷达驱动及建图测试。机器人的TF总是飞出去。
-
FishBot二驱机器人,运行 9.0.6. 雷达驱动及建图测试教程。机器人的TF总是飞出去。
严格按照教程的步骤进行,每一步都正常。但用键盘控制机器人行进建图,过一会,RVIZ2中小车的TF,就飞出去了。正在建的图,就花了。不能完成建图。后来,不让机器人行进,就放到那里不动,RVIZ2中小车的TF,还会飞出去。
上位机硬件:笔记本
上位机系统:Ubuntu22.04
上位机ROS:humble
机器人雷达板的固件:v1.3.0.alpha
机器人运控板的固件:v1.7.0.beta
飞出去的情况,如下图:
这是RVIZ2的状态图
这是什么原因? -
在FishBot二驱机器人进行雷达驱动及建图测试时,遇到TF(坐标变换)飞出去的问题,这通常指的是在RVIZ2中观察到的机器人坐标或地图坐标突然变得不准确或不一致。以下是对可能原因的分析及建议的解决步骤:
原因分析
-
雷达数据问题:
- 雷达数据不稳定或存在误差,可能导致建图过程中的坐标变换出现问题。
- 雷达固件版本与ROS系统或建图算法的兼容性可能存在问题。
-
里程计数据问题:
- 里程计数据(odom)的准确性和稳定性对建图至关重要。如果里程计数据存在问题,如漂移或噪声过大,将直接影响TF的准确性。
- 机器人运控板固件与ROS系统的兼容性或配置问题也可能导致里程计数据不准确。
-
TF树配置问题:
- TF树的配置错误或不一致可能导致坐标变换出现问题。
- 在RVIZ2中未正确设置或添加TF相关的插件或组件。
-
建图算法问题:
- 使用的建图算法(如Cartographer)的配置参数可能不适合当前的环境或机器人配置。
- 建图算法的实现或版本可能存在问题。
-
硬件或软件故障:
- 机器人硬件(如雷达、运控板等)可能存在故障。
- ROS系统或相关软件的安装、配置或版本问题。
解决步骤
-
检查雷达数据:
- 确认雷达固件版本与ROS系统或建图算法的兼容性。
- 检查雷达数据的稳定性和准确性,可以尝试使用其他雷达或固件版本进行对比测试。
-
检查里程计数据:
- 确认机器人运控板固件版本与ROS系统的兼容性。
- 检查里程计数据的准确性和稳定性,可以尝试调整里程计的配置参数或进行校准。
-
检查TF树配置:
- 在RVIZ2中正确设置和添加TF相关的插件或组件。
- 检查TF树的配置,确保所有必要的坐标变换都已正确设置。
-
调整建图算法参数:
- 根据当前环境和机器人配置,调整Cartographer等建图算法的配置参数。
- 尝试使用不同的建图算法或版本进行对比测试。
-
排查硬件或软件故障:
- 检查机器人硬件是否存在故障,如雷达、运控板等。
- 确认ROS系统或相关软件的安装、配置和版本是否正确。
-
查看日志和错误信息:
- 查看ROS系统的日志文件,寻找与TF或建图相关的错误信息。
- 根据错误信息进行针对性的排查和解决。
-
社区支持:
- 访问相关的机器人技术问答社区(如fishros.org.cn),寻求其他开发者的帮助和建议。
- 分享自己的问题和解决过程,以便其他开发者参考和学习。
综上所述,TF飞出去的问题可能涉及多个方面,需要逐一排查和解决。希望以上建议能对您有所帮助!
以上为生成回答,仅供参考~
-
-
@chuanshihou
这是报错内容。 -
@chuanshihou
[ydlidar_node-6] [2025-01-04 13:18:10][error] Check Sum 0x2112 != 0x223A
[rviz2-5] [ERROR] [1735996690.583085593] [rviz2]: Lookup would require extrapolation into the future. Requested time 1735996690.731354 but the latest data is at time 1735996690.730589, when looking up transform from frame [laser_frame] to frame [map]
[cartographer_node-3] [WARN] [1735996690.666079554] [cartographer logger]: W0104 13:18:10.000000 63 sensor_bridge.cpp:211] Ignored subdivision of a LaserScan message from sensor scan because previous subdivision time 638715934907305889 is not before current subdivision time 638715934906259878
[cartographer_node-3] [WARN] [1735996690.782001255] [cartographer logger]: W0104 13:18:10.000000 63 range_data_collator.cc:82] Dropped 127 earlier points.
[rviz2-5] [ERROR] [1735996690.900171752] [rviz2]: Lookup would require extrapolation into the future. Requested time 1735996690.897452 but the latest data is at time 1735996690.894814, when looking up transform from frame [laser_frame] to frame [map]
[cartographer_node-3] [WARN] [1735996691.013922016] [cartographer logger]: W0104 13:18:11.000000 63 range_data_collator.cc:82] Dropped 1 earlier points. -
@chuanshihou 网络结构是什么样子的,ping延迟多高
-
@小鱼 64 bytes from 192.168.9.59: icmp_seq=1 ttl=64 time=3.98 ms
64 bytes from 192.168.9.59: icmp_seq=2 ttl=64 time=53.0 ms
64 bytes from 192.168.9.59: icmp_seq=3 ttl=64 time=91.7 ms
64 bytes from 192.168.9.59: icmp_seq=4 ttl=64 time=129 ms
64 bytes from 192.168.9.59: icmp_seq=5 ttl=64 time=161 ms
64 bytes from 192.168.9.59: icmp_seq=6 ttl=64 time=16.4 ms
64 bytes from 192.168.9.59: icmp_seq=7 ttl=64 time=4.26 ms
64 bytes from 192.168.9.59: icmp_seq=8 ttl=64 time=4.12 ms
64 bytes from 192.168.9.59: icmp_seq=9 ttl=64 time=5.90 ms
64 bytes from 192.168.9.59: icmp_seq=10 ttl=64 time=3.87 ms
64 bytes from 192.168.9.59: icmp_seq=11 ttl=64 time=4.11 ms
64 bytes from 192.168.9.59: icmp_seq=12 ttl=64 time=5.61 ms
64 bytes from 192.168.9.59: icmp_seq=13 ttl=64 time=11.2 ms
64 bytes from 192.168.9.59: icmp_seq=14 ttl=64 time=12.1 ms
64 bytes from 192.168.9.59: icmp_seq=15 ttl=64 time=47.7 ms
64 bytes from 192.168.9.59: icmp_seq=16 ttl=64 time=8.26 ms
64 bytes from 192.168.9.59: icmp_seq=17 ttl=64 time=66.5 ms
64 bytes from 192.168.9.59: icmp_seq=18 ttl=64 time=93.8 ms
64 bytes from 192.168.9.59: icmp_seq=19 ttl=64 time=122 ms
64 bytes from 192.168.9.59: icmp_seq=20 ttl=64 time=150 ms
64 bytes from 192.168.9.59: icmp_seq=21 ttl=64 time=4.27 ms
64 bytes from 192.168.9.59: icmp_seq=22 ttl=64 time=4.15 ms
64 bytes from 192.168.9.59: icmp_seq=23 ttl=64 time=3.85 ms
64 bytes from 192.168.9.59: icmp_seq=24 ttl=64 time=7.69 ms
64 bytes from 192.168.9.59: icmp_seq=25 ttl=64 time=4.32 ms
64 bytes from 192.168.9.59: icmp_seq=26 ttl=64 time=4.20 ms
上面是ping的结果
在同一个路由器下。这个路由器,只连接了上位机和FishBot。 -
@chuanshihou 在 FishBot二驱机器人,运行 9.0.6. 雷达驱动及建图测试。机器人的TF总是飞出去。 中说:
64 bytes from 192.168.9.59: icmp_seq=15 ttl=64 time=47.7 ms
64 bytes from 192.168.9.59: icmp_seq=16 ttl=64 time=8.26 ms
64 bytes from 192.168.9.59: icmp_seq=17 ttl=64 time=66.5 ms
64 bytes from 192.168.9.59: icmp_seq=18 ttl=64 time=93.8 ms
64 bytes from 192.168.9.59: icmp_seq=19 ttl=64 time=122 ms
64 bytes from 192.168.9.59: icmp_seq=20 ttl=64 time=150 ms
64 bytes from 192.168.9.59: icmp_seq=21 ttl=64 time=4.27 ms看这里,跑到了150ms,太过分了,导致断连了,你电脑这边走有线再试一试