-
Notifications
You must be signed in to change notification settings - Fork 65
RobotOperator
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.
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.
The robot coordinate 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.
These parameters are defined locally for the RobotOperator, usually "/OperatorNodeName/".
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.
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!
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.
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
See above.
See above.
Currently untested. Leave at 0.
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.