< >
Home » ROS与navigation教程 » ROS与navigation教程-costmap_2d-social_navigation_layers

ROS与navigation教程-costmap_2d-social_navigation_layers

ROS与navigation教程-costmap_2d-social_navigation_layers

说明:

  • 介绍social_navigation_layers的概念和相关知识。

代码库

概要

  • Plugin-based layers for the navigation stack that implement various social navigation contraints, like proxemic distance.

  • 目前有2种social navigation层, 但是它们共享部分功能(如:都需要订阅人在哪里的消息,都是用高斯分布调节人周围的代价地图)。

  • 这种方法的类都继承了general SocialLayer class。

  • costmap configurations 中使用时类型如下:

    • social_navigation_layers::ProxemicLayer

    • social_navigation_layers::PassingLayer

( 1 ) ProxemicLayer/PassingLayer

  • 这两种层所用接口相同。

( 1.1 ) Subscribed Topics

/people ([people_msgs/People][3])
  • People to navigate around .

( 1.2 ) Parameters

enabled (bool, default: True) 
  • 是否使用该插件。
cutoff (double, default: 10.0) 
  • Smallest value to publish on costmap adjustments
amplitude (double, default: 77.0) 
  • Amplitude of adjustments at peak
covariance (double, default: 0.25) 
  • Covariance of adjustments
factor (double, default: 5.0) 
  • Factor with which to scale the velocity .
keep_time (double, default: 0.75) 
  • 在清除leg list之前暂停。

How the Costmap Changes

请输入图片描述

( 1 ) Proxemic Layer

  • proxemic层使用上述参数在检测到的人员周围增加高斯代价(gaussian costs)。

  • 如果人是静止的,高斯代价分布是圆形。

  • 如果认识运动的,代价会在人移动方向上增长,至于代价在人周围增长多远与比例参数factor有关。

  • The proxemic layer adds gaussian costs all around the detected person, with the parameters specified above. If the person is stationary, the gaussian is perfectly round. However, if the person is moving, then the costs will be increased in the direction of their motion. How far in front of the person the costs are increased is proportional to the factor parameter.

( 1.1 ) Stationary Person

请输入图片描述

( 1.2 ) Moving Person

请输入图片描述

( 2 ) Passing Layer

  • 这一层的目的是让机器人从行人的一侧通过,因此只在行人一侧增加代价。

请输入图片描述

参考链接

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与navigation教程