The nj_escape_crossing package implements a navigating jockey for the Large Maps Framework (LaMa) which role is to drive the robot away from the crossing center, where the robot is awaited to be when the jockey is started.

This jockey takes an edge descriptor (with associated exit angle descriptor) to know in which direction to go. The exit angle descriptor associated with edge n1-n2, from vertex n1 to vertex n2, indicates which at which angle the robot should orient itself to go to vertex n2 when starting at vertex n1. This jockey takes a crossing descriptor to know how far it should travel. But this distance can also be given as parameter. If the parameter is non-existent or its value is 0, the robot will travel a distance equal to the crossing radius. It supports the TRAVERSE action and is DONE when the distance is traveled. As for now, the jockey is pretty stupid and does not stop before the distance is traveled (it does not FAIL).

Implemented actions:

  • TRAVERSE: will start driving the robot: first turning into the given direction then going forward. The action does not fail. The action is done when a certain distance is travelled.
  • STOP: will stop
  • INTERRUPT: the robot stops
  • CONTINUE: nothing will happen (default implementation)


Interaction with the map (created by other jockeys)


message type

interface default name








Subscribed Topics

~<name>/odometry (nav_msgs/Odometry)
  • robot position
~<name>/direction (std_msgs/Float32)
  • The direction must be in the same reference frame as ~odometry. This topic is used only if the requested edge does not exist or if it has no exit angle descriptor.

Published Topics

~<name>/cmd_vel (geometry_msgs/Twist)
  • robot set velocity


~<name>/kp_v (Float, default: 0.05)
  • proportional gain for the linear velocity (s^-1)
~<name>/kp_w (Float, default: 0.2)
  • proportional gain for the angular velocity (s^-1)
~<name>/min_linear_velocity (Float, default: 0.020)
  • minimum set linear velocity (m.s^-1)
~<name>/min_angular_velocity (Float, default: 0.1)
  • minimum set angular velocity (rad.s^-1).
~<name>/escape_distance (Float, default: 0.0)
  • distance to travel from crossing center (m). If set to 0, the radius value in the crossing descriptor will be used.
~<name>/crossing_interface_name (String, default: "crossing")
  • name of the map interface for Crossing
~<name>/exit_angle_interface_name (String, default: "exit_angle")
  • name of the map interface for exit angle
~<name>/exit_angle_topic_name (String, default: "exit_angle")
  • name of the optional topic for exit angle (or direction), will only be used if this information is not associated with the edge to traverse

Wiki: nj_escape_crossing (last edited 2015-01-15 12:10:32 by GaelEcorchard)