Skip to content
Sebastian Kasperski edited this page Jan 24, 2014 · 4 revisions

Overview

The RobotOperator is a purely reactive local planner for mobile robots moving in a planar environment. It uses a set of predefined motion primitives that are evaluated in terms of conformance with a desired direction and safety criteria with respect to a local environment map. Currently available motion primitives are defined solely by a steering angle, but arbitrary primitives are principally possible. As a local map it uses the package costmap_2d from the ROS navigation-stack.

Parameters

Global parameters

These parameters are defined in the top level namespace of the current node, which is usually "/" or "/GroupName/" if the Operator node is defined within a group. These parameters are usually used by other nodes as well. Usually this is used to define common frame id's to publish transformations via the tf package.

robot_frame

The robot coordinate frame.

odometry_frame

The coordinate frame for the odometry. When the robot is started, is is usually located at (0,0,0) with regards to this frame. The transformation odometry->robot integrates the robot's wheel encoder measurements as it moves around.

Local Parameters

These parameters are defined locally for the RobotOperator, usually "/OperatorNodeName/".

max_velocity

The maximum velocity command to be send to the robot platform in range [0...1]. If set to 1, the Operator will use the platform's maximum velocity during operation.

max_free_space

The amount of space (in meter) that has to be free in front of the robot to drive at maximum velocity. Make this larger if your robot is fast! This also affects the action selection, as all actions with at least this much free space will be rated with an distance_value=1.

Set max_free_space smaller then the half of your local map's width, or your robot will stop driving straight and always going in circles!

safety_decay

The safety value of an action depends on the distance that the robot keeps to surrounding obstacles. To focus more on obstacles that are passed immediately, the "threat"-value of obstacles far away is decayed. The value has to be < 1. The smaller this value is, the less foresighted the robot will act.

distance_weight

An integer value to define the impact of the available free space when evaluating possible actions. The overall action value av is defined as:

av = (dw*d + sw*s + cw*c) / (dw+sw+cw)
d = distance value (available free space)
s = safety value
c = conformance value
dw = distance weight
sw = safety weight
cw = conformance weight

safety_weight

See above.

conformance_weight

See above.

continue_weight

Currently untested. Leave at 0.

Costmap2D parameters

See costmap_2d for detailed parameter descriptions. Make sure that the tf frame ids are set correctly and set static_map=false and rolling_window=true.