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
- 这一层的目的是让机器人从行人的一侧通过,因此只在行人一侧增加代价。
参考链接
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号