Skip to content

path control

Felix Widmaier edited this page Mar 27, 2015 · 7 revisions

Description

This is the controller of the whole process and the interface to the user. The user should communicate only with path_control and not send any messages directly to path_planner or path_follower.

Usage

To make the robot drive to some goal point, you have to send this goal via the ROS action interface to the path_follower_node.

  1. Make sure, all necessary nodes are running (see Quick Start Guide).
  2. Connect to the "navigate_to_goal" action server (see ROS wiki for more information on the actionlib)
  3. Send the goal pose to the action server.

Everything else is handled automatically by the path_control_node, that is the goal is forwarded to the path planner and the resulting plan is send to the follower. During the whole process, feedback messages are sent back via the action interface, informing about the current status and things like observed obstacles.

Parameters

Name Type Default Description
~num_replan_attempts int 5 Max. number of replaning attempts, when FAILURE_MODE_REPLAN is used (otherwise this parameter is meaningless).

Actions

Sets up action server "navigate_to_goal" to receive goals from high level nodes and sends actions to the servers "plan_path" (path planner) and "follow_path" (path follower).

The navigate_to_goal action server

Send a action to this server to make the robot drive to the desired pose.

Goal Message

  • goal_pose: The desired goal pose.
  • velocity: The desired velocity. The actual velocity may be different, depending on settings of the path follower, e.g. min/max velocity.
  • failure_mode: Defines the behaviour of the controller, if some thing fails during path following (e.g. due to obstacle on path). One of FAILURE_MODE_ABORT or FAILURE_MODE_REPLAN
    • FAILURE_MODE_ABORT: Abort if path execution fails
    • FAILURE_MODE_REPLAN: Plan a new path and try again. Maximum number of replan attempts is defned by the parameter ~num_replan_attempts.

Feedback Message

  • status: One of the following:
    • STATUS_MOVING: Everything is ok, the robot is moving.
    • STATUS_OBSTACLE: There is an obstacle in front of the robot.
    • STATUS_PATH_READY: This is sent once, when the path planning has finished successfully.
    • STATUS_REPLAN: Sent, if a replan attempt is started.
    • STATUS_REPLAN_FAILED: Sent, if the maximum number of replan attempts is reached, without success.
  • obstacles_on_path: List of all obstacles, that are currently observed on the path by the path lookout supervisor.

Result Message

  • reached_goal: true if the goal was reached, false if not.
  • status: One of the following:
    • STATUS_SUCCESS: Everything is ok, the goal was reached successfully.
    • STATUS_ABORTED: Path execution was aborted by the user.
    • STATUS_OBSTACLE: Path execution was aborted due to an obstacle on the path.
    • STATUS_TIMEOUT: Path execution was aborted because some time out expired.
    • STATUS_LOST_PATH: Path execution was aborted because the robot lost the path.
    • STATUS_NO_PATH_FOUND: The planner was not able to find a valid path from the robot to the desired goal pose.
    • STATUS_OTHER_ERROR: Some other error.

Topics

publishes

Name Type Description
/speech std_msgs::String Status messages for speech synthesiser.
Clone this wiki locally