orca-robotics INTRODUCTION Overview Download and Install Quick Start Documentation Publications REPOSITORY Interfaces Components Libraries Utilities Software Map DEVELOPER Tutorials Examples Dev Guide Dashboard Wiki login/pass: orca/orca PEOPLE Contributors Users Project Download Mailing lists
|
LocalNavA Local Navigation component: follows a waypoint-defined path while avoiding obstacles.
More... |
LocalNav.Config.Driver
(string)The parameters used in following a path come from three places. In order of precedence, they are:
1. The parameters of the driver, read from the configuration file,
2. The maximum approach speed/turnrate for each waypoint, specified in the path, and
3. The schedule defined by the path.
The third item exists because the path defines the times at which the robot should arrive at each waypoint. To ignore this constraint, set all waypoint times to 'now' or 'yesterday', and the robot will move as fast as possible within the constraints set by items 1 and 2.
The second item is again defined by the path object. Regardless of the schedule, the robot won't exceed the max approach speed/turnrate defined for a waypoint. Set these to something massive to ignore this constraint.
The first item takes precedence over the other two. Regardless of the specifics of the path, the robot will obey the parameters set in the driver. These should be set to ensure that the robot's motion is within reasonable safe limits.
Some important configuration parameters:
LocalNav.Config.Vfh.SafetyDist0ms
(double) [m]
LocalNav.Config.Vfh.SafetyDist1ms
(double) [m]
LocalNav.Config.Vfh.FreeSpaceCutoff0ms
(double) [m]
LocalNav.Config.Vfh.FreeSpaceCutoff1ms
(double) [m]
LocalNav.Config.Vfh.ObsCutoff0ms
(double) [m]
LocalNav.Config.Vfh.ObsCutoff1ms
(double) [m]
LocalNav.Config.Vfh.WeightDesiredDir
(double)
LocalNav.Config.Vfh.WeightCurrentDir
(double)
LocalNav.Config.Vfh.CellSize
(double) [m]
LocalNav.Config.Vfh.GridWidthInCells
(int)
LocalNav.Config.Vfh.GridWidthInCells
(int)
LocalNav.Config.Vfh.MaxAcceleration
(double) [m/s2]
LocalNav.Config.Vfh.MaxTurnrate0ms
(double) [deg/s]
LocalNav.Config.Vfh.MaxTurnrate1ms
(double) [deg/s]
LocalNav.Config.Vfh.AbsoluteMaxTurnrate
(double) [deg/s]
LocalNav.Config.Vfh.MinTurnRadiusSafetyFactor
(double)For the next three speed arguments: These are the absolute max values that VFH will use. Setting a path with a long time between waypoints will cause VFH to go slower.
LocalNav.Config.Vfh.MaxSpeed
(double) [m/s]
LocalNav.Config.Vfh.MaxSpeedNarrowOpening
(double) [m/s]
LocalNav.Config.Vfh.MaxSpeedWideOpening
(double) [m/s]NOTE TO SELF: CHECK DEFAULTS IN CODE!
To get initiated with VFH, a good idea is to start with the default values, which are all pretty reasonable. Then start experimenting with safetyDist[0|1]ms and FreeSpaceCutoff[0|1]ms (and ObsCutoff[0|1]ms), to get a feeling for how they affect performance. Once comfortable, make the speed-controlling parameters more aggressive. In general, SafetySist determines how close the robot will come to an obstacle while turning (around a corner for instance). Setting this too low causes the robot to clip obstacles, while setting it too conservatively stops the robot getting through gaps like doorways. FreeSpaceCutoff determines how close a robot will get to an obstacle in the direction of motion before turning to avoid.
For 'slow' robots (like Pioneers), MaxSpeedNarrowOpening and MaxSpeedWideOpening can be set to MaxSpeed. The 0ms and 1ms variables can also be set to the same values as each other. From experience, it is recommeded that MaxTurnrate[0|1]ms should be at least 15% of MaxSpeed.
For 'fast' vehicles like Segways, firstly be aware that VFH control is potentially very dangerous: start conservatively and change things slowly. The speed-dependent parameters are much more important here: it helps to set the 0ms and 1ms variable differently. To control the dynamics, it's good to set MaxSpeedNarrowOpening very slow, and MaxSpeedWideOpening reasonably slow. This causes the robot to slow down generally near obstacles, so if it does collide it's less likely to be catastrophic. MaxTurnrate[0|1]ms is also important for controlling how aggressively the robot turns.
Unless you are familiar with the VFH algorithm, I don't recommend deviating from the default values for CellSize, WindowDiameter, or SectorAngle.
@inproceedings { Ulrich98Reliable, Author = {Ulrich, I. and Borenstein, J.}, Title = {VFH+: Reliable Obstacle Avoidance for Fast Mobile Robots}, BookTitle = {IEEE International Conference on Robotics and Automation(ICRA '98)}, Pages = {1572--1577}, Year = {1998} }
The following configuration parameters affect the behaviour of TestInSimulationMode:
LocalNav.Config.TestInSimulationMode
(bool)
LocalNav.Config.Test.BatchMode
(bool)
LocalNav.Config.Test.NumWaypoints
(int)
LocalNav.Config.Test.MaxLateralAcceleration
(double) [m/s/s]
LocalNav.Config.Test.CheckLateralAcceleration
(bool)
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)