Wiki

Only released in EOL distros:  

humanoid_navigation: footstep_planner | gridmap_2d | hrl_kinematics | humanoid_localization

Package Summary

6D localization for humanoid robots based on depth data (laser, point clouds). Two observation models are currently available based on OctoMap as 3D map: Ray casting and an end point model (lookup in the distance map).

Details can be found in the publication
"Humanoid Navigation with Dynamic Footstep Plans" by A. Hornung, K.M. Wurm, and M. Bennewitz; published in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2010

humanoid_navigation: footstep_planner | gridmap_2d | hrl_kinematics | humanoid_localization

Package Summary

6D localization for humanoid robots based on depth data (laser, point clouds). Two observation models are currently available based on OctoMap as 3D map: Ray casting and an end point model (lookup in the distance map).

Details can be found in the publication
"Humanoid Navigation with Dynamic Footstep Plans" by A. Hornung, K.M. Wurm, and M. Bennewitz; published in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2010

humanoid_navigation: footstep_planner | gridmap_2d | humanoid_localization | humanoid_planner_2d

Package Summary

6D localization for humanoid robots based on depth data (laser, point clouds). Two observation models are currently available based on OctoMap as 3D map: Ray casting and an end point model (lookup in the distance map).

Details can be found in the publication
"Humanoid Navigation with Dynamic Footstep Plans" by A. Hornung, K.M. Wurm, and M. Bennewitz; published in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2010

humanoid_navigation: footstep_planner | gridmap_2d | humanoid_localization | humanoid_planner_2d

Package Summary

6D localization for humanoid robots based on depth data (laser, point clouds). Two observation models are currently available based on OctoMap as 3D map: Ray casting and an end point model (lookup in the distance map).

Details can be found in the publication
"Humanoid Navigation with Dynamic Footstep Plans" by A. Hornung, K.M. Wurm, and M. Bennewitz; published in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2010

humanoid_navigation: footstep_planner | gridmap_2d | humanoid_localization

Package Summary

6D localization for humanoid robots based on depth data (laser, point clouds). Two observation models are currently available based on OctoMap as 3D map: Ray casting and an end point model (lookup in the distance map).

Details can be found in the publication
"Humanoid Navigation with Dynamic Footstep Plans" by A. Hornung, K.M. Wurm, and M. Bennewitz; published in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2010

  • Maintainer status: developed
  • Maintainer: Armin Hornung <HornungA AT informatik.uni-freiburg DOT de>, Pramuditha Aravinda <aravindadp AT gmail DOT com>
  • Author: Armin Hornung, Stefan Osswald, Daniel Maier
  • License: GPL
  • Source: git https://github.com/AravindaDP/humanoid_navigation.git (branch: indigo-devel)
humanoid_navigation: footstep_planner | gridmap_2d | humanoid_localization | humanoid_planner_2d

Package Summary

6D localization for humanoid robots based on depth data (laser, point clouds). Two observation models are currently available based on OctoMap as 3D map: Ray casting and an end point model (lookup in the distance map).

Details can be found in the publication
"Humanoid Navigation with Dynamic Footstep Plans" by A. Hornung, K.M. Wurm, and M. Bennewitz; published in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2010

Overview

humanoid_localization provides 6D Monte Carlo localization (x,y,z, roll, pitch, yaw) specifically for humanoid robots. A distance sensor (e.g. 2D laser or depth camera) is used for either endpoint- or raycasting-based integration in an existing 3D OctoMap world model from octomap_server. Additionally, IMU and odometry data is fused in the particle filter. While designated for humanoid robots (tested with on a Nao with Hokuyo URG-04LX laser), the code may also be useful e.g. for UAVs.

Details are available in the corresponding publication Humanoid Robot Localization in Complex Indoor Environments by A. Hornung, K. M. Wurm, and M. Bennewitz (IROS 2010).

@INPROCEEDINGS{hornung10iros,
  author = {Armin Hornung and Kai M. Wurm and Maren Bennewitz},
  title = {Humanoid Robot Localization in Complex Indoor Environments},
  booktitle =  {Proc.~of the IEEE/RSJ International Conference on Intelligent 
  Robots and Systems (IROS)},
  year = 2010,
  address = {Taipei, Taiwan},
  month= {October}
}

humanoid_localization will request a 3D occupancy map from octomap_server, so it needs to be running with the map loaded that you want to localize in. For the sensor model, octomap is used for either raycasting or endpoint distance lookup (the latter currently requires libdynamicEDT3D from OctoMap 1.5 or later). Details about the required sensor data and tf transforms can be found below. Once the localization is running, it can initialize the particles from a given pose by the intial_pose parameter, or by using the "2D Pose Estimate" tool in RViz (z, roll, and pitch will be determined automatically). For visualization, set the fixed frame to "/map" in RViz.

ROS Node API

localization_node

The main 6D Monte Carlo localization node. Only the most important topics and parameters are documented, check out the source code / yaml files for more details. The code is partly parallelized with OpenMP and will use as many threads as you have processor cores available. You can explicitly set the number of threads with the environment variable OMP_NUM_THREADS.

Subscribed Topics

scan (sensor_msgs/LaserScan) point_cloud (sensor_msgs/PointCloud2) imu (sensor_msgs/Imu)

Published Topics

pose (geometry_msgs/PoseWithCovarianceStamped) pose_eval (geometry_msgs/PoseWithCovarianceStamped) ~particlecloud (geometry_msgs/PoseArray) ~best_particle (geometry_msgs/PoseArray)

Parameters

~odom_frame_id (string, default: odom) ~base_frame_id (string, default: torso) ~global_frame_id (string, default: /map) ~init_global (bool, default: false) ~num_particles (int, default: 500) ~neff_factor (double, default: 1.0) ~num_sensor_beams (int, default: 48) ~use_raycasting (bool, default: true) ~use_imu (bool, default: false) ~update_min_trans (double, default: 0.2) ~update_min_rot (double, default: π/6.0) ~transform_tolerance (double, default: 0.1) ~initial_pose/{x/y/z/roll/pitch/yaw} (double) ~initial_std/{x/y/z/roll/pitch/yaw} (double)

Required tf Transforms

odomtorso torsosensor data frame

Provided tf Transforms

/mapodom

Wiki: humanoid_localization (last edited 2013-01-23 10:34:57 by ArminHornung)