elevation_mapping, 基于机器人中心高程的粗糙地形导航

分享于 

10分钟阅读

GitHub

  繁體 雙語
Robot-centric elevation mapping for ROS
  • 源代码名称:elevation_mapping
  • 源代码网址:http://www.github.com/ethz-asl/elevation_mapping
  • elevation_mapping源代码文档
  • elevation_mapping源代码下载
  • Git URL:
    git://www.github.com/ethz-asl/elevation_mapping.git
    Git Clone代码到本地:
    git clone http://www.github.com/ethz-asl/elevation_mapping
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/ethz-asl/elevation_mapping
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    机器人中心高程图

    概述

    这是一个 ROS 包,用于与移动机器人进行高程映射。 软件为( 本地) 导航任务设计,机器人具有位姿估计( 比如 )。 IMU里程计和距离传感器(。 结构光( Kinect,RealSense ),激光范围传感器,立体相机。 提供的高程地图围绕着机器人,反映了通过机器人( 机器人中心映射) 运动聚合的姿势不确定度。 这种方法是为了显式处理机器人姿态估计的漂移。

    在ROS和 Ubuntu 14.04下,机器人中心高程映射软件包已经被测试过了。 这是研究代码,期望它经常改变,并且任何适合于某一特定用途的。

    作者:Péter Fankhauser,pfankhauser@ethz.ch
    隶属关系:苏黎世自治系统实验室

    Build Status

    引用

    本软件中使用的机器人中心高程映射方法在下面的( 可以利用的在这里) 中进行了描述:

    P。Fankhauser。M。Bloesch。 Gehring,M。Hutter和 R。 Climbing和步行机器人( CLAWAR ) 国际会议的Siegwart,,1.

    
    @inproceedings{Fankhauser2014RobotCentricElevationMapping,
    
    
     author = {Fankhauser, P'{e}ter and Bloesch, Michael and Gehring, Christian and Hutter, Marco and Siegwart, Roland},
    
    
     title = {Robot-Centric Elevation Mapping with Uncertainty Estimates},
    
    
     booktitle = {International Conference on Climbing and Walking Robots (CLAWAR)},
    
    
     year = {2014}
    
    
    }
    
    
    
    

    这里软件正在使用中的视频: StarlETH Kinect Elevation MappingOutdoor Terrain Mapping with ANYmal

    安装

    依赖项

    这个软件构建在机器人操作系统(。ROS ) 上,它需要安装在上。 此外,机器人中心高程映射依赖于以下软件:

    建筑

    为了安装机器人中心的高程映射,将最新版本从这个存储库中复制到你的ipqos工作区。

    
    cd catkin_workspace/src
    
    
    git clone https://github.com/ethz-asl/elevation_mapping.git
    
    
    cd.. /
    
    
    catkin_make
    
    
    
    

    数据驱动的单元测试

    运行单元测试

    
    catkin_make run_tests_elevation_map_msg run_tests_elevation_mapping
    
    
    
    

    基本用法

    为了让机器人的中心高程映射与你的机器人运行,你需要适应一些参数。 如果复制和修改你需要从 elevation_mapping_demos 包( 比如 ) 更改的所有参数文件,这是最容易的。 simple_demo 示例) 这些示例特别是 config 中的参数文件和 launch 文件夹中的启动文件。

    节点

    node: elevation_mapping

    这是主机器人中心高程映射 node。 它使用距离传感器测量和机器人的姿势和方差来生成方差估计的立面图。

    订阅主题发布的主题
    • elevation_map ( grid_map_msg/gridmap )

      整个( 融合) 立面图。 它定期发布( 请参见 fused_map_publishing_rate 参数) 或者在调用 trigger_fusion 服务之后。

    • elevation_map_raw ( grid_map_msg/gridmap )

      融合步骤之前的整个( 原始) 高程图。

    电子邮件服务
    • trigger_fusion ( std_srvs/空 )

      触发整个立面图的熔合过程并发布它。 例如你可以从控制台启动地图融合步骤,

      
       rosservice call/elevation_mapping/trigger_fusion
      
      
      
      
    • get_submap ( grid_map_msg/getgridmap )

      获取所请求位置和大小的融合的高程图。 例如,可以在位置( -0.5,0.0 ) 和大小(-0.5,1.2 ) 上获取融合的高程子图,并将它的安全地安装到控制台中。

      
       rosservice call --/elevation_mapping/get_submap -0.5 0.0 0.5 1.2 []
      
      
      
      
    • clear_map ( std_srvs/空 )

      开始清理整个地图以便进行重置。 触发地图清除

      
       rosservice call/elevation_mapping/clear_map
      
      
      
      
    参数
    • point_cloud_topic ( 字符串,默认值: "/点"

      距离测量主题的名称。

    • robot_pose_topic ( 字符串,默认值: "/robot_state/pose")

      机器人的名字和协方差主题的名称。

    • base_frame_id ( 字符串,默认值: "/机器人"

      机器人基框架的id。

    • map_frame_id ( 字符串,默认值: "/map"

      高程图的tf框架的id。

    • track_point_frame_id ( 字符串,默认值: "/机器人"

      海拔图随着机器人跟随一个轨迹点移动。 这是定义跟踪点的tf框架的id。

    • 英镑 track_point_xtrack_point_y,英镑 track_point_z ( 双倍,默认: 0.0,0.0,0.0 )

      海拔图随着机器人跟随一个轨迹点移动。 这是 track_point_frame_id 中跟踪点的位置。

    • robot_pose_cache_size ( int,默认值: 200,min: 0 )

      机器人姿势缓存的大小。

    • min_update_rate ( double,默认值: 2.0 )

      从新测量或者机器人姿态估算中更新高程图的最小最小更新速率( 以赫兹)。

    • fused_map_publishing_rate ( double,默认值: 1.0 )

      发布整个( 融合) 立面图的速率。

    • relocate_rate ( double,默认值: 3.0 )

      在跟踪点之后检查进行重定位的高程贴图的速率( 以赫兹)。

    • 英镑 length_in_x,英镑 length_in_y ( 双倍,默认: 1.5,min: 0.0 )

      高程图的大小( 在m )。

    • 英镑 position_x,英镑 position_y ( 双倍,默认: 0.0 )

      高程图( 中心) 在立面地图框架中的位置。

    • resolution ( double,默认值: 0.01,min: 0.0 )

      高程图的分辨率( m/单元格中的单元格大小)。

    • 英镑 min_variance,英镑 max_variance ( 双倍,默认: 9.0 e-6,0.01 )

      高程图方差数据的最小值和最大值。

    • mahalanobis_distance_threshold ( double,默认值: 2.5 )

      马氏距离的阈值。 决定测量是否与现有数据融合,覆盖或者忽略。

    • multi_height_noise ( double,默认值: 9.0 e-7 )

      添加了多个高度测量单元的噪声( 比如。 墙)。

    • 英镑 min_horizontal_variance,英镑 max_horizontal_variance ( 双倍,默认: 功率( 分辨率/2.0,2 ),0.5 )

      高程图水平方差数据的最小值和最大值。

    • enable_visibility_cleanup ( bool,默认值: true )

      启用可以见性清理。这运行一个单独的线程,以基于可以见性约束移除地图中的元素。

    • visibility_cleanup_rate ( double,默认值: 1.0 )

      执行可见性约束的速率( 以赫兹)。

    • scanning_duration ( double,默认值: 1.0 )

      用于可以见性清理的传感器持续时间( s ) 扫描。 将这里设置大致设置为两次连续扫描( 比如 ) 之间的持续时间。 为旋转激光扫描仪,为 0.033个赫尔,或者 3为 30的通道摄像机。 根据扫描的密集程度或者稀疏程度,增加或者减少扫描时间。 较小的值会导致动态对象的删除,更大的值有助于减少错误的地图清理。

    • 英镑 sensor_cutoff_min_depth,英镑 sensor_cutoff_max_depth ( 双倍,默认: 0.2,2.0 )

      距离传感器测量长度的最小值和最大值。 忽略这里间隔之外的度量值。

    • 英镑,英镑,英镑,英镑,英镑( 双倍)

      传感器噪声模型的数据。

    Bug &功能请求

    请使用问题追踪器报告 Bug 和请求特性。


    相关文章