Rviz和Gazebo的联系和区别 现在这两个界面摆在一起,一些同学可能要懵逼了,这俩长这么像会不会容易搞混了。现实中确实不少同学刚接触ROS的时候,经常分不清Rviz和Gazebo这两个工具。我们只需要记住,Gazebo是模拟真实机器人发出传感器数据的工具,咱们在Gazebo里看到的是虚拟机器人所处的环境状况。而Rviz则刚好反过来,它是接收传感器数据并进行显示的工具,也就是它显示的是机器人实际能探测到的环境状况。一个负责发,一个负责收,他们的作用刚好相反,也不存在谁替代谁的问题。而在现实世界的机器人系统中,Gazebo就不存在了,Gazebo仿真的角色会被真实的实体机器人和真实的环境所替代。而这时候Rviz可能还会存在,但它不知道Gazebo还在不在,也不知道接收的数据到底是来自Gazebo仿真还是实体机器人,它只是默默的继续做着接收数据并显示的工作。这就是Rviz和Gazebo的联系和区别。另外一点就是Rviz并不参与机器人算法的运行,它只是一个为了方便人类进行观测的工具而已。即使没有Rviz,也不影响机器人的ROS系统运行。所以无论在仿真还是实体机器人上,Rviz都不是必须的。后面的部分实验,我们就不需要Rviz,只有需要观察某些数据实时变化的时候才会打开Rviz。#rviz #gazebo #ROS #机器人编程 #机器人工匠阿杰
00:00 / 00:59
连播
清屏
智能
倍速
点赞73
00:00 / 04:19
连播
清屏
智能
倍速
点赞23
SLAM的Hector Mapping算法是什么? Gmapping 的核心算法对比之前介绍的 Hector Mapping 建图方法,可以看出它俩的区别。在 Hector Mapping 中,直接将雷达点云贴合障碍物轮廓,所得出的机器人位移,作为最终的定位结果。这个结果在 TF 树中,是从 map 到 scanmatcher_frame 的这一段。如果想在 RViz 中显示地图和机器人模型,则必须要实现 map 到 base_footprint 的 TF 。这样才能将机器人本身的 TF 和 map 接上,形成完整的 TF 树。所以 Hector Mapping 还会另外输出一段从 map 到 odom 的 TF 。这样就能跟里程计输出的 TF 。组合成完整的 map 到 base_footprint 的 TF。只不过这里跟 Gmapping 不一样。 Hector Mapping 输出的这段 map 到 odom 的 TF。目的不是为了修正里程计误差。而是为了让 base_footprint 的位置始终和 scanmatcher_frame 保持一致。也就是说,在 Gmapping 中,机器人的位移主要由里程计推算。激光雷达点云配准算法,只是为了修正里程计出现的误差。而 Hector Mapping 在定位过程中,丝毫不考虑里程计的数据。只使用雷达点云和障碍物配准的方法来进行定位。只不过为了 RViz 里能显示地图和机器人模型。勉为其难的输出一段 map 到 odom 的 TF 。去抵消里程计不断增长的里程计 TF ,好让机器人的 base_footprint 和 scanmatcher_frame 的位置始终保持一致。这就是两种 SLAM 算法的最大区别。咱们再回到之前大直走廊的例子。看看两种算法的实际差别在哪。#ROS #机器人 #SLAM #机器人工匠阿杰 #机器人编程
00:00 / 01:16
连播
清屏
智能
倍速
点赞31
00:00 / 00:51
连播
清屏
智能
倍速
点赞555
00:00 / 06:57
连播
清屏
智能
倍速
点赞12
00:00 / 18:42
连播
清屏
智能
倍速
点赞14
00:00 / 05:38
连播
清屏
智能
倍速
点赞5
00:00 / 02:20
连播
清屏
智能
倍速
点赞2
00:00 / 00:45
连播
清屏
智能
倍速
点赞2