ROS Software Maintainer: Clobot

Clober Navigation Package

Clober Robot

Clober Navigation package consists of a launch file with specific parameters for the Clober research platform mobile base navigation.

Clober e-Manual

ROS API

map_server

This package is used map_server

Published Topics

map_metadata (nav_msgs/MapMetaData)
  • Receive the map metadata via this latched topic.
map (nav_msgs/OccupancyGrid)
  • Receive the map via this latched topic.

Services

static_map (nav_msgs/GetMap)
  • Retrieve the map via this service.

Parameters

~frame_id (string, default: "map")
  • The frame to set in the header of the published map.

amcl

This package is used amcl

Subscribed Topics

scan (sensor_msgs/LaserScan)
  • Laser scans.
tf (tf/tfMessage)
  • Transforms.
initialpose (geometry_msgs/PoseWithCovarianceStamped)
  • Mean and covariance with which to (re-)initialize the particle filter.
map (nav_msgs/OccupancyGrid)
  • When the use_map_topic parameter is set, AMCL subscribes to this topic to retrieve the map used for laser-based localization. New in navigation 1.4.2.

Published Topics

amcl_pose (geometry_msgs/PoseWithCovarianceStamped)
  • Robot's estimated pose in the map, with covariance.
particlecloud (geometry_msgs/PoseArray)
  • The set of pose estimates being maintained by the filter.
tf (tf/tfMessage)
  • Publishes the transform from odom (which can be remapped via the ~odom_frame_id parameter) to map.

Services

global_localization (std_srvs/Empty)
  • Initiate global localization, wherein all particles are dispersed randomly through the free space in the map.
request_nomotion_update (std_srvs/Empty)
  • Service to manually perform update and publish updated particles.
set_map (nav_msgs/SetMap)
  • Service to manually set a new map and pose.

Services Called

static_map (nav_msgs/GetMap)
  • amcl calls this service to retrieve the map that is used for laser-based localization; startup blocks on getting the map from this service.

Parameters

This package provides parameters from amcl.launch.xml in clober_navigation directory.

<arg name="scan_topic"     default="scan"/>      # topic name for the sensor values from 
                                                  the distance sensor
<arg name="map_topic"      default="map"/>       # topic name to read the map values
<arg name="global_frame"   default="map"/>       # map as a global frame 
<arg name="odom_frame"     default="odom"/>      # odom_frame name for robot odometry
<arg name="base_frame"     default="base_link"/> # base_frame for robot base_link

#---- execute the amcl node by referring to the parameter settings below. ----#

<node pkg="amcl" type="amcl" name="amcl">
<remap from="scan" to="$(arg scan_topic)"/>       # change the sensor topic name 
<remap from="map" to="$(arg map_topic)"/>         # change the map topic name 
<param name="odom_frame_id" value="$(arg odom_frame)"/>         # read arguement from above
<param name="base_frame_id" value="$(arg base_frame)"/>         # read arguement from above
<param name="global_frame_id" value="$(arg global_frame)"/>     # read arguement from above
<param name="min_particles" value="500"/>         # min number of particles allowed
<param name="max_particles" value="5000"/>        # max number of particles allowed
<param name="kld_err"       value="0.01"/>        # max error between the actual distribution 
                                                    and the estimated distribution
<param name="kld_z"         value="0.99"/>        # max error between the actual distribution 
                                                    and the estimated distribution
<param name="update_min_d" value="0.1"/>          # translational motion required for filter 
                                                    update (meter)
<param name="update_min_a" value="0.25"/>         # rotational motion required for filter 
                                                    update (radian) 
<param name="resample_interval" value="2"/>       # resampling interval 
<param name="transform_tolerance" value="0.5"/>   # conversion allowed time (by sec) 
<param name="recovery_alpha_slow" value="0.0"/>   # index drop rate(slow average weight 
                                                    filter), deactivated if 0.0 
<param name="recovery_alpha_fast" value="0.0"/>   # index drop rate(fast average weight 
                                                    filter), deactivated if 0.0 
<param name="gui_publish_rate" value="10.0"/>     # max period to visually displaying
                                                    scan and path info 
<param name="use_map_topic" value="false"/>       # read from initial map topic  
<param name="first_map_only" value="true"/>       # read from initial map topic

#---------------------- distance sensor parameter --------------------------#

<param name="laser_max_beams" value="30"/>        # max number of laser beams used during 
                                                    filter update 
<param name="laser_z_hit" value="0.95"/>          # z_hit mixed weight of sensor model   
<param name="laser_z_short" value="0.1"/>         # z_short mixed weight of sensor model   
<param name="laser_z_max" value="0.05"/>          # z_max mixed weight of sensor model  
<param name="laser_z_rand" value="0.05"/>         # x_rand mixed weight of sensor model   
<param name="laser_sigma_hit" value="0.2"/>       # standard deviation of Gaussian model 
                                                    using z_hit of sensor
<param name="laser_lambda_short" value="0.1"/>    # index drop rate parameter for z_short 
                                                    of sensor 
<param name="laser_likelihood_max_dist" value="2.0"/>     # max distance and obstacle for 
                                                            likelihood_field method sensor 
<param name="laser_model_type" value="likelihood_field"/> # select likelihood_field or beam 

#---------------------- parameter related to odometry --------------------------#

<param name="odom_model_type"value="diff"/>       # robot driving methods. "diff" or 
                                                    "omni" can be selected
<param name="odom_alpha1" value="0.1"/>           # estimated rotational motion noise of 
                                                    the odometry during rotational motion
<param name="odom_alpha2" value="0.1"/>           # estimated rotational motion noise of 
                                                    the odometry during translation motion
<param name="odom_alpha3" value="0.1"/>           # estimated translation motion noise of 
                                                    the odometry during translation motion 
<param name="odom_alpha4" value="0.1"/>           # estimated translation motion noise of 
                                                    the odometry during rotational motion  

#---------------------- parameter related to initial pose --------------------------#

<param name="initial_pose_x" default="0.0"/>      # initial x-coordinate value
<param name="initial_pose_y" default="0.0"/>      # initial y-coordinate value
<param name="initial_pose_z" default="0.0"/>      # initial z-coordinate value
<param name="initial_pose_a" default="0.0"/>      # initial yaw coordinate value

move_base

This package is used move_base

Action Subscribed Topics

move_base/goal (move_base_msgs/MoveBaseActionGoal)

  • A goal for move_base to pursue in the world.
move_base/cancel (actionlib_msgs/GoalID)
  • A request to cancel a specific goal.

Action Published Topics

move_base/feedback (move_base_msgs/MoveBaseActionFeedback)

  • Feedback contains the current position of the base in the world.
move_base/status (actionlib_msgs/GoalStatusArray)
  • Provides status information on the goals that are sent to the move_base action.
move_base/result (move_base_msgs/MoveBaseActionResult)
  • Result is empty for the move_base action.

Subscribed Topics

move_base_simple/goal (geometry_msgs/PoseStamped)
  • Provides a non-action interface to move_base for users that don't care about tracking the execution status of their goals.

Published Topics

cmd_vel (geometry_msgs/Twist)
  • A stream of velocity commands meant for execution by a mobile base.

Services

~make_plan (nav_msgs/GetPlan)
  • Allows an external user to ask for a plan to a given pose from move_base without causing move_base to execute that plan.
~clear_unknown_space (std_srvs/Empty)
  • Allows an external user to tell move_base to clear unknown space in the area directly around the robot. This is useful when move_base has its costmaps stopped for a long period of time and then started again in a new location in the environment. - Available in versions from 1.1.0-groovy
~clear_costmaps (std_srvs/Empty)
  • Allows an external user to tell move_base to clear obstacles in the costmaps used by move_base. This could cause a robot to hit things and should be used with caution. - New in 1.3.1

Parameters

This package provides parameters from .yaml files in clober_navigation directory.

costmap_common.yaml                  # The parameter of costmap configuration consists
global_costmap.yaml                  # The parameter of the global area motion planning
local_costmap.yaml                   # The parameter of the local area motion planning
dwa_local_planner.yaml               # The parameter of the speed command to the robot
move_base.yaml                       # The parameter setting file of move_base that 
                                       supervises the motion planning.

Wiki: clober_navigation (last edited 2021-07-08 06:23:22 by clobot)