-
Notifications
You must be signed in to change notification settings - Fork 127
path control
This is the controller of the whole process. The high level controller (= any program that wants to move the robot) should communicate only with this node. High Level sends a goal point using an action to path_control, which handles path planning and execution. It is possible to set goals without using the actionlib (see section Unexpected Paths). This is, however, not recommended, as some functionality can only be used via actionlib (e.g. setting different velocities for the goals or getting feedback during path execution).
The regular way to use the navigation packages is to send a goal via action to path_control. However, if this is for some reason not feasible, it is also possible to use it without actions.
Regularly the controller is sending goals to the path planner via topics and is then waiting for the response (which is then an expected path). If the planner or any other node sends a path on this topic, while the controller is not waiting for a response, this unexpected path is executed anyhow. This gives a simple way to use the navigation package even if actions are not feasible. Instead of sending an action to the controller, one can send the goal via topic directly to the planner, which will send the resulting path to the controller. But be aware that not the full functionality can be used this way. It is, for example, not possible to set different velocities for each goal and the controller can not send any feedback during path execution. Another disadvantage is, that this way, the path execution is not automatically stopped, when a new goal is send. This means, that the robot will continue to follow the old path, while the new path is computed (which can take a few seconds)!
Note, that goals send via action have always priority to such unexpected paths. This means that unexpected paths are ignored, while an action-goal is in execution.
Name | Type | Default | Description |
---|---|---|---|
~nonaction_velocity | float | 0.5 | Velocity which is used, if the controller receives an unexpected path (see section Unexpected Paths). This parameter has no meaning, when using actions. |
~num_replan_attempts | int | 5 | Max. number of replaning attempts, when FAILURE_MODE_REPLAN is used (otherwise this parameter is meaningless). |
Sets up action server "navigate_to_goal" to receive goals from high level nodes and sends actions to server "follow_path" of path follower
Name | Type | Description |
---|---|---|
/path | nav_msgs::Path | The path to drive on. Send by planner. |
Name | Type | Description |
---|---|---|
/move_base_simple/goal | geometry_msgs::PoseStamped | The goal point which was received via action (publish on this topic for planner and for rviz). |