Package rst.navigation

Contains data types related to navigation tasks in robotics

Messages

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.

Download this file

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 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.

Download this file

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.

Download this file

    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 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.

Download this file

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 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.

Download this file

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 Path

class rst.navigation.Path

A path that consists of tracked poses.

Code author: Phillip Luecking <plueckin@techfak.uni-bielefeld.de>

poses
Type :array of rst.geometry.Pose

The path represents a collection of poses.

Order of poses is significant.

Download this file

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.

Download this file

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 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.

Download this file

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;

}

Table Of Contents

Related Documentation

This Page