微前端架构如何改变企业的开发模式与效率提升
719
2022-09-27
十四课 slam&gmapping
gmapping
根据激光数据(或者深度数据模拟的激光数据)建立地图,在turtlebot里面应用的就是深度数据模拟的激光数据.如果没有激光雷达的话可以使用Kinect.
SLAM
机器人在未知环境中从一个未知位置开始移动,在移动的过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图.
这里面有两个主题和一个服务
主题1下的消息类型,有map_load_time:用来保存地图载入的时间;resolution:地图的分辨率,width:地图的宽,height:地图的高.origin:包含地图的原点位置信息
主题2是map主题,该消息类型下有一个header,一个info包含地图的相关信息,data,以及地图的数据.
服务dynamic_map 服务类型为nav_msgs/GetMap.srv其类型为nav_msgs/Occupancy/Grid用来获得占据网格地图.
slam_gmapping:它是在一个完整平台上使用的一个包,它通常需要里程计信息.而hector_mapping它不需要包含里程计信息,手拿着就可以实现gmapping的过程.这节课主要讲hector_mapping,在讲完导航之后讲slam_gmapping.二者是差不多的,熟悉了其一,对另外一个就也熟悉了.
slam_gmapping:需要订阅一个激光雷达的scan主题的数据,这是必须的,还包括一个tf主题,它要求监听来自odometry的tf变换;需要发布的主题有地图的相关信息map_metadata以及地图数据map主题;服务dynamic_map用来获得地图;要求的tf变换,一个是base_laser->base_link,它通常用的是transform static publisher,前面讲过如何使用它来广播两个固定坐标系之间的变换.以及base_link->odom;提供的tf变换是map->odom;其优点在于定位准确;缺点:需要完整硬件平台支持.
hector_mapping:需要订阅一个激光雷达的scan主题的数据,这是必须的,由于它不需要odometry的相关信息,故就不需要tf.需要发布的主题有地图的相关信息map_metadata以及地图数据map主题;除此之外还有两个要发布的主题slam_out_pose估计位置信息,但不包含协方差,以及poseupdate包含了正在分布估计,因为它没有里程计信息,故用上面上个主题来估计自己的位置. 服务dynamic_map用来获得地图;base_laser->到base_frame也是两个固定坐标系的变换;提供的tf变换是map->odom;定位不够准确;手持激光雷达即可实现.
实现gmapping
硬件要求
B配置实现gmapping
首先-hector_slam的包
包含roplidar的启动文件
第一个从static_transform_publisher到map_to_odom的变换可以不指定.
第二个从/base_link 到/laser的变换是必须指定的
下面包含一个gmapping 的默认文件
上面完整的形式
下面来看一下gmapping默认的launch文件
tf_map_scanmatch_transform_frame_name它的默认值是/scanmatcher_frame,tf_map_scanmatch_transform它的默认值为true,它要求提供从map到scanmatch的tf变换,如果没有它tf会出现问题.
base_frame默认的是base_link,以及odom_frame默认的也是base_link,因为它没有里程计信息,pub_map_odom_transform设置为true,就是发布map_odom_transform的变换,scan_subscriber_queue_size的默认值为5,即队列的长度为5,指定激光雷达发布的主题为scan_topic为scan.地图的大小map_size为2048,下面是相关的配置文件,启动的节点是hector_mapping,下面是坐标系的名字,再下面是tf的使用;下面是地图的大小,地图参数的更新,广播的配置.
修改rplidar驱动文件(没有该驱动文件!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
修改的原因在于这样我们才可以从scan的header中获得它的坐标系,
下面切换到真是的机器上来实现导航
sudo chmod 777 /dev/tty/USB0
roslaunch hector_slam_launch demo.launch
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~