学习hector_slam随手记录(一)

来源:互联网 发布:淘宝店家查询 编辑:程序博客网 时间:2024/05/21 03:16

hector_compressed_map_transport

一、Overview(概述)

    这个包压缩地图数据用于图像传输。目前,只有从地图到图像的转化是可用的。这个包中的代码是一个概念证明(POC:概念证明是证实发布的漏洞真实性的测试代码),它是可以更改的。
二、ROS API
2.1 map_to_image_node
    把地图转换成图像数据并且用image_transport发布图像。只有当图像数据被请求时才会完成这一转换,所以这个节点运行的计算代价在没有图像昂被请求的时候是很低的。一个完整的地图图像或是基于区块的仅显示机器人周围局部区域的地图图像都可以使用。为了后面的工作,机器人的姿态在pose话题上必须是可用的,如下所述。
    
    2.1.1 订阅话题(Subscribed Topics)
 (1)map (nav_msgs/OccupancyGrid) 要发送的地图
    文件:nav_msgs/OccupancyGrid.msg
    原始消息定义:
    Header header  # 这代表了一个2D的栅格地图,其中每个单元都代表被占用的概率
    MapMetaData info      # 地图的原始数据
    int8[] data   # 地图数据,行优先顺序,从(0,0)开始;占用概率在[0,100]范围内
    紧凑的消息定义:
    std_msgs/Header header  #std_msgs/Header.msg通常用于传递时间标记数据在特定坐标系中。uint32 seq    time stamp     string frame_id
    nav_msgs/MapMetaData info  #nav_msgs/MapMetaData.msg保存OccupancyGrid的特性的基本信息 长×宽建立地图[m,m,rad]包含位置和方向信息
    int8[] data
    
 (2)pose (geometry_msgs/PoseStamped) 地图框架中给出的机器人姿态
    Header header
    Pose pose    #有参考坐标系和时间标记的姿态

紧凑的消息定义:std_msgs/Header header

 



hector_geotiff

摘要
    hector_geotiff提供了一个用来保存占用栅格地图的节点,救援比赛中机器人轨迹数据和感兴趣的对象的数据兼容GeoTiff图像。

文档
    这个包提供一个节点,允许存储地图和机器人轨迹数据,跟据地理参考信息兼容geotiff文件。内部的节点通过服务来检索需求的数据。


    1.地图使用“map”服务:nav_msgs/GetMap.srv
     nav_msgs/OccupancyGrid map    #Get the map as a nav_msgs/OccupancyGrid
    
注:文件:nav_msgs/OccupancyGrid.msg     nav大概是navigation
    原始消息定义:
    Header header  # 这代表了一个2D的栅格地图,其中每个单元都代表被占用的概率
    MapMetaData info      # 地图的原始数据
    int8[] data   # 地图数据,行优先顺序,从(0,0)开始;占用概率在[0,100]范围内
    紧凑的消息定义:
    std_msgs/Header header  #std_msgs/Header.msg通常用于传递时间标记数据在特定坐标系中。uint32 seq    time stamp     string frame_id
    nav_msgs/MapMetaData info  #nav_msgs/MapMetaData.msg保存OccupancyGrid的特性的基本信息 长×宽建立地图[m,m,rad]包含位置和方向信息
    int8[] data
    
    2.机器人轨迹用"trajectory"服务
    nav_msgs/Path trajectory  #返回到下一个障碍物的距离 从frame point.header.frame_id的原点在点的方向
    注:nav_msgs/Path.msg 是机器人姿态的一个数组,表示机器人的路径
       definition: std_msgs/Header header    geometry_msgs/PoseStamped[] pose
  
    通过hector_trajectory_server节点可以轻易使trajectory服务是可用的。'hector_geotiff/launch'目录中的启动文件有一个使用示例。
    其他信息可以通过使用插件写入地图。'worldmodel_geotiff_plugins'包中包含一个用两个插件的例子。要加载的插件必须通过“plugins”参数指定为插件名称的空格分隔列表。




ROS API(应用程序编程接口)
    1.geotiff_node:通过地理参考信息生成geotiff格式的遥感地图的节点
    (1)订阅话题:syscommand(std_msg/String:string data)
        system command.如果序列string等于'savegeotiff',则节点保存geotiff文件。
    (2)参数
    ~map_file_path (string, default: ".")   #保存生成地图的路径
    ~map_file_base_name (string, default: "GeoTiffMap")  #给生成的geotiff文件的基本名字。保存地图时,当前时间将追加到此基本名称。
    ~geotiff_save_period (double, default: 0.0)  #设定自动保存geotiff文件的时间(以秒为单位)。 如果设置为0.0,则禁用自动保存。
    ~plugins (string, default: "")   #为节点加载的插件名称的空格分隔列表。 默认情况下,不会加载任何内容。


2 0