Smooth Nearness Diagram Navigation. More...

Smooth Nearness Diagram Navigation.

This driver implements the Smooth Nearness Diagram Navigation algorithm, an improvement over the nd driver that removes oscillatory patterns and improves overall driver performance.

This algorithm handles local collision-avoidance and goal-seeking and is designed for non-holonomic, non-circular robots operating in tight spaces. The algorithm is in the following paper:

Durham, J. ; Bullo, F. "Smooth Nearness-Diagram Navigation" 2008, IEEE/RSJ International Conference on Intelligent Robots and Systems,

  1. IROS 2008, 690-695

This driver reads pose information from a position2d device, sensor data from a laser device and/or sonar device, and writes commands to a position2d device. The two position2d devices can be the same. At least one device of type laser must be provided.

The driver itself supports the position2d interface. Send PLAYER_POSITION2D_CMD_POS commands to set the goal pose. The driver also accepts PLAYER_POSITION2D_CMD_VEL commands, simply passing them through to the underlying output device.

This driver commands the underlying position2d simply in velocity, so it's suitable to be used on the robots for which the GoTo() function is not yet implemented (e.g.: the Erratic robot).

Compile-time dependencies
Provides
Requires
Configuration requests
Configuration file options
Example
driver
(
  name "snd"
  provides ["position2d:1"]
  requires ["input:::position2d:0" "output:::position2d:0" "laser:0"]
  robot_radius 0.24
)
Author
Joey Durham (underlying algorithm), Luca Invernizzi (driver integration and documentation)