Social Navigation Layers
There are currently two social navigation layers. However, they both share functionality in that they both subscribe to where people are and alter the costmaps with a Gaussian distribution around those people. Both classes derive from the general SocialLayer class.
They can be used in costmap configurations with the following types:
ProxemicLayer/PassingLayerThe interface for both layers is the same.
Subscribed Topics/people (people_msgs/People)
- People to navigate around
Parametersenabled (bool, default: True)
- Whether to apply this plugin or not
- Smallest value to publish on costmap adjustments
- Amplitude of adjustments at peak
- Covariance of adjustments
- Factor with which to scale the velocity
- Pause before clearing leg list
How the Costmap Changes
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.
This layer is intended to cause the robot to always pass on the left side of a person and will hence only increase the cost on one side of the person.