Package rst.navigation¶
A Navigation is a field of study that focuses on the process of monitoring and controlling the movement of a craft or vehicle from one place to another.
This package contains data type definitions related to (robot) navigation.
See also
- Wikipedia article containing the definition above
- http://en.wikipedia.org/wiki/navigation
Messages¶
Message PathCollection¶
-
class
rst.navigation.
PathCollection
¶ Collection of
Path
instances.Auto-generated.
-
element
¶ Type: array of rst.navigation.Path
The individual elements of the collection.
Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.
-
message PathCollection {
/**
* The individual elements of the collection.
*
* Constraints regarding the empty collection, sorting, duplicated
* entries etc. are use case specific.
*/
repeated Path element = 1;
}
Message OccupancyGrid2DIntCollection¶
-
class
rst.navigation.
OccupancyGrid2DIntCollection
¶ Collection of
OccupancyGrid2DInt
instances.Auto-generated.
-
element
¶ Type: array of rst.navigation.OccupancyGrid2DInt
The individual elements of the collection.
Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.
-
message OccupancyGrid2DIntCollection {
/**
* The individual elements of the collection.
*
* Constraints regarding the empty collection, sorting, duplicated
* entries etc. are use case specific.
*/
repeated OccupancyGrid2DInt element = 1;
}
Message CommandResult¶
-
class
rst.navigation.
CommandResult
¶ Describes the result of a navigation command including possible error conditions and reasons for these errors.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
-
type
¶ Type: rst.navigation.CommandResult.Result
Indicates the general result of the command.
-
code
¶ Type: UINT32
An optional code describing the command result for automatic processing. Mainly used to distinguish platform-specific errors that are not modelled otherwise.
-
description
¶ Type: ASCII-STRING
A human-readable description for the achieved result. Mainly used for unknown or custom error description messages.
-
message CommandResult {
enum Result {
/**
* The commanded target could be reached successfully.
*/
SUCCESS = 0;
/**
* Before reaching the commanded target, a new command was issued.
*/
SUPERSEDED = 1;
/**
* The target was not reached due to an explicit stop command.
*/
CANCELLED = 2;
/**
* The commanded target was not reached because an emergency stop
* occurred.
*/
EMERGENCY_STOPPED = 3;
/**
* At some point in time during the command execution the motion
* stopped because the path planning could not find a valid path to the
* commanded target.
*/
PATH_BLOCKED = 4;
/**
* The target could not be reached inside the specified time.
*/
TIMEOUT = 5;
/**
* Target could not be reached. An error that is specific to a certain
* robot platform. Further details can be found in the error code and
* the error message.
*/
CUSTOM_ERROR = 100;
/**
* Target could not be reached due to an unknown error. Further details
* can be found in the error code and the error message.
*/
UNKNOWN_ERROR = 101;
}
/**
* Indicates the general result of the command.
*/
required Result type = 1;
/**
* An optional code describing the command result for automatic processing.
* Mainly used to distinguish platform-specific errors that are not
* modelled otherwise.
*/
optional uint32 code = 2;
/**
* A human-readable description for the achieved result. Mainly used for
* unknown or custom error description messages.
*/
optional string description = 3;
}
Message Result¶
-
class
rst.navigation.CommandResult.
Result
¶ Not documented
-
SUCCESS
¶ -
= 0
The commanded target could be reached successfully.
-
SUPERSEDED
¶ -
= 1
Before reaching the commanded target, a new command was issued.
-
CANCELLED
¶ -
= 2
The target was not reached due to an explicit stop command.
-
EMERGENCY_STOPPED
¶ -
= 3
The commanded target was not reached because an emergency stop occurred.
-
PATH_BLOCKED
¶ -
= 4
At some point in time during the command execution the motion stopped because the path planning could not find a valid path to the commanded target.
-
TIMEOUT
¶ -
= 5
The target could not be reached inside the specified time.
-
CUSTOM_ERROR
¶ -
= 100
Target could not be reached. An error that is specific to a certain robot platform. Further details can be found in the error code and the error message.
-
UNKNOWN_ERROR
¶ -
= 101
Target could not be reached due to an unknown error. Further details can be found in the error code and the error message.
-
enum Result {
/**
* The commanded target could be reached successfully.
*/
SUCCESS = 0;
/**
* Before reaching the commanded target, a new command was issued.
*/
SUPERSEDED = 1;
/**
* The target was not reached due to an explicit stop command.
*/
CANCELLED = 2;
/**
* The commanded target was not reached because an emergency stop
* occurred.
*/
EMERGENCY_STOPPED = 3;
/**
* At some point in time during the command execution the motion
* stopped because the path planning could not find a valid path to the
* commanded target.
*/
PATH_BLOCKED = 4;
/**
* The target could not be reached inside the specified time.
*/
TIMEOUT = 5;
/**
* Target could not be reached. An error that is specific to a certain
* robot platform. Further details can be found in the error code and
* the error message.
*/
CUSTOM_ERROR = 100;
/**
* Target could not be reached due to an unknown error. Further details
* can be found in the error code and the error message.
*/
UNKNOWN_ERROR = 101;
}
Message Path¶
-
class
rst.navigation.
Path
¶ A path that consists of tracked poses.
Code author: Phillip Luecking <plueckin@techfak.uni-bielefeld.de>
@create_collection
-
poses
¶ Type: array of rst.geometry.Pose
The path represents a collection of poses.
Order of poses is significant.
-
message Path {
/**
* The path represents a collection of poses.
*
* Order of poses is significant.
*/
repeated geometry.Pose poses = 1;
}
Message PlatformCapabilities¶
-
class
rst.navigation.
PlatformCapabilities
¶ Describes the navigation capabilities of a mobile platform.
Boolean parameters that are not specified imply a false value. Numeric parameters are unspecified.
Code author: jwienke
-
max_velocity
¶ Type: FLOAT32
Constraint:
value >= 0
The maximum velocity of the platform. @unit(meter / second)
-
max_acceleration
¶ Type: FLOAT32
Constraint:
value >= 0
The maximum acceleration of the platform. @unit(meter / second^2)
-
has_fine_localization
¶ Type: BOOL
Indicates whether the platform has a fine localization skill that can be used when navigating towards goals.
-
message PlatformCapabilities {
/**
* The maximum velocity of the platform.
*/
// @unit(meter / second)
// @constraint(value >= 0)
optional float max_velocity = 1;
/**
* The maximum acceleration of the platform.
*/
// @unit(meter / second^2)
// @constraint(value >= 0)
optional float max_acceleration = 2;
/**
* Indicates whether the platform has a fine localization skill that can be
* used when navigating towards goals.
*/
optional bool has_fine_localization = 3;
}
Message CoordinateCommand¶
-
class
rst.navigation.
CoordinateCommand
¶ A navigation command for a robot with a goal that is specified as an arbitrary coordinate in the coordinate frame used for the navigation.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
-
goal
¶ Type: rst.geometry.Pose
The goal to reach by the navigation.
-
motion_parameters
¶ Type: rst.navigation.MotionParameters
Parameters for the motions used to reach the specified goal.
-
execution_parameters
¶ Type: rst.navigation.ExecutionParameters
Parameters used to specify the execution semantics while moving towards the goal.
-
message CoordinateCommand {
/**
* The goal to reach by the navigation.
*/
required geometry.Pose goal = 1;
/**
* Parameters for the motions used to reach the specified goal.
*/
optional MotionParameters motion_parameters = 2;
/**
* Parameters used to specify the execution semantics while
* moving towards the goal.
*/
optional ExecutionParameters execution_parameters = 3;
}
Message LabelCommand¶
-
class
rst.navigation.
LabelCommand
¶ A navigation command for a robot with a goal that is designated by pre-learned name.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
-
goal
¶ Type: ASCII-STRING
The name of the goal to reach by the navigation.
-
motion_parameters
¶ Type: rst.navigation.MotionParameters
Parameters for the motions used to reach the specified goal.
-
execution_parameters
¶ Type: rst.navigation.ExecutionParameters
Parameters used to specify the execution semantics while moving towards the goal.
-
message LabelCommand {
/**
* The name of the goal to reach by the navigation.
*/
required string goal = 1;
/**
* Parameters for the motions used to reach the specified goal.
*/
optional MotionParameters motion_parameters = 2;
/**
* Parameters used to specify the execution semantics while
* moving towards the goal.
*/
optional ExecutionParameters execution_parameters = 3;
}
Message MotionParameters¶
-
class
rst.navigation.
MotionParameters
¶ Defines parameters that specify the aspects of the motions used to reach a navigation goal. This means properties like the velocity or orientation of the robot but not execution properties like a timeout.
If one of the values is not specified, the robot driver may decide on this one arbitrarily. Velocity and acceleration restrict the magnitude in the direction of the movement and not per axis. Accuracies need to be reached for every axis individually.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
-
max_velocity
¶ Type: FLOAT32
Constraint:
value >= 0
The maximum velocity to be used when reaching the goal. @unit(meter / second)
-
max_acceleration
¶ Type: FLOAT32
Constraint:
value >= 0
The maximum acceleration to be used when reaching the goal. @unit(meter / second^2)
-
translation_accuracy
¶ Type: FLOAT32
Unit: meter
Constraint:
value >= 0
The desired translational accuracy to reach for a successful motion command.
-
orientation_accuracy
¶ Type: FLOAT32
Unit: rad
Constraint:
value >= 0
The desired orientation accuracy to reach for a successful motion command.
-
prefer_forward_orientation
¶ Type: BOOL
If true, try to prefer moving in the forward orientation of the platform.
-
message MotionParameters {
/**
* The maximum velocity to be used when reaching the goal.
*/
// @unit(meter / second)
// @constraint(value >= 0)
optional float max_velocity = 1;
/**
* The maximum acceleration to be used when reaching the goal.
*/
// @unit(meter / second^2)
// @constraint(value >= 0)
optional float max_acceleration = 2;
/**
* The desired translational accuracy to reach for a successful
* motion command.
*/
// @unit(meter)
// @constraint(value >= 0)
optional float translation_accuracy = 3;
/**
* The desired orientation accuracy to reach for a successful
* motion command.
*/
// @unit(rad)
// @constraint(value >= 0)
optional float orientation_accuracy = 4;
/**
* If true, try to prefer moving in the forward orientation of
* the platform.
*/
optional bool prefer_forward_orientation = 5;
}
Message ExecutionParameters¶
-
class
rst.navigation.
ExecutionParameters
¶ Defines parameters that specify the execution semantics of a navigation command. In case a parameter is not set, the robot driver may arbitrarily decide on an appropriate value.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
Code author: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
-
timeout
¶ Type: FLOAT32
Unit: second
Constraint:
value >= 0
If > 0, the movement till reaching the goal must not last longer than the specified timeout in seconds. The robot must stop if the timeout is reached.
-
max_replan_cycles
¶ Type: UINT32
— parameters specific to certain implementations — If > 0, the global path planner (if active) shall only try to compute a valid plan for the given number of times before giving up.
-
use_fine_localization
¶ Type: BOOL
If true, after reaching the goal with the usual parameters, try to perform a fine localization to improve the accuracy.
-
message ExecutionParameters {
/**
* If > 0, the movement till reaching the goal must not last
* longer than the specified timeout in seconds. The robot must
* stop if the timeout is reached.
*/
// @unit(second)
// @constraint(value >= 0)
optional float timeout = 1;
// --- parameters specific to certain implementations ---
/**
* If > 0, the global path planner (if active) shall only try to
* compute a valid plan for the given number of times before
* giving up.
*/
optional uint32 max_replan_cycles = 100;
/**
* If true, after reaching the goal with the usual parameters,
* try to perform a fine localization to improve the accuracy.
*/
optional bool use_fine_localization = 101;
}
Message OccupancyGrid2DInt¶
-
class
rst.navigation.
OccupancyGrid2DInt
¶ Constraint:
len(.map) = (.width * .height)
This represents a 2D grid map, in which each cell represents the probability of occupancy.
This kind of representation is often used in SLAM implementations.
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
@create_collection
-
resolution
¶ Type: FLOAT32
Unit: meter
The map resolution as edge length of a cell.
-
width
¶ Type: UINT32
Number of cells in x direction.
-
height
¶ Type: UINT32
Number of cells in y direction.
-
origin
¶ Type: rst.geometry.Pose
The origin of the map.
This is the real-world pose of the cell (0,0) in the map. The grid is defined in the x-y plane given by this pose, therefore the rotation defines the orientation of the 2D grid in the real three-dimensional world. If the floor is defined as the x-y plane in world coordinates, the pose should only contain a rotation around the z-axis.
-
map
¶ Type: OCTET-VECTOR
The map data, in row-major order.
Occupancy probabilities are signed 8-bit integer in the range [0,100]. Unknown is -1.
-
message OccupancyGrid2DInt {
/**
* The map resolution as edge length of a cell.
*/
// @unit(meter)
required float resolution = 1;
/**
* Number of cells in x direction.
*/
required uint32 width = 2;
/**
* Number of cells in y direction.
*/
required uint32 height = 3;
/**
* The origin of the map.
*
* This is the real-world pose of the cell (0,0) in the map. The
* grid is defined in the x-y plane given by this pose, therefore
* the rotation defines the orientation of the 2D grid in the real
* three-dimensional world. If the floor is defined as the x-y
* plane in world coordinates, the pose should only contain a
* rotation around the z-axis.
*/
required geometry.Pose origin = 4;
/**
* The map data, in row-major order.
*
* Occupancy probabilities are signed 8-bit integer in the range
* [0,100]. Unknown is -1.
*/
required bytes map = 5;
}