Package Summary

The nj_oa_costmap package is a navigating jockey for the Large Maps framework. Its role is to drive the robot forward while avoiding obstacles. It uses a local map which position is relative to the robot but which orientation is constant.

The nj_oa_costmap package implements a navigating jockey for the Large Maps Framework (LaMa) that drives the robot while avoiding obstacles. It is based on a local map (nav_msgs/OccupancyGrid). The local map has a fixed position relative to the robot but its orientation is constant in the world reference frame. It is a reactive, memory-less jockey.

Implemented action:

  • TRAVERSE: go more or less forward depending on obstacle position. The action never stops by itself.
  • STOP: stop the robot, sending this action is the only way to stop a TRAVERSE action.
  • INTERRUPT: same as STOP
  • CONTINUE: same as TRAVERSE

Moreover, the package provides the class TwistHandler that computes an appropriate geometry_msgs/Twist from a nav_msgs/OccupancyGrid in order to go as forward as possible while avoiding obstacles.

Usage

ROS API

Subscribed Topics

~<name>/local_map (nav_msgs/OccupancyGrid)
  • local map with fixed position relative to the robot and fixed orientation relative to the world reference frame

Published Topics

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

Parameters

~<name>/robot_radius (Float)
  • robot radius (m)
~<name>/min_distance (Float, default: 2 * robot_radius)
  • if an obstacle is closer than this, turn and don't go forward (m)
~<name>/long_distance (Float, default: 5 * robot_radius)
  • if no obstacle within this distance, go straight (m)
~<name>/turnrate_collide (Float, default: 0.4)
  • turn rate when obstacle closer than ~min_distance_ (rad/s)
~<name>/max_vel (Float, default: 1.0)
  • linear velocity without obstacle (m/s)
~<name>/vel_close_obstacle (Float, default: 0.5)
  • linear velocity if obstacle between min_distance and long_distance (m/s)
~<name>/turnrate_factor (Float, default: 0.9)
  • if obstacle closer than ~long_distance, turnrate = -turnrate_factor_ * mean(lateral_position_of_obstacle) (rad.m-1.s-1).
~<name>/laser_frame (String, default: "base_laser_link")
  • frame_id of the laser scan messages that are used to build the local map.
~<name>/navigating_jockey_server_name (String, default: node_name + "_server")
  • Jockey name

Wiki: nj_oa_costmap (last edited 2015-01-15 13:08:27 by GaelEcorchard)