mcl_3dl package from mcl_3dl repo

mcl_3dl

Package Summary

Tags No category tags.
Version 0.1.4
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2019-07-07
Dev Status DEVELOPED
Released RELEASED

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status codecov License

Package summary

mcl_3dl is a ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s). It implements pointcloud based Monte Carlo localization that uses a reference pointcloud as a map.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn't implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information. - Purple spheres: sampled points used in the likelihood-model calculation - Red lines: casted rays in the beam-model calculation - Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.1.4 (2018-12-20)

  • Fix IO figure (#212)
  • Fix tf timestamp (#214)
  • Add pf::ParticleFilter::appendParticle (#207)
  • Fix pointer alignment style (#210)
  • Migrate tf to tf2 (#208)
  • Fix class member naming style (#205)
  • Make lidar measurement model class (#195)
  • Add I/O diagram to the document (#199)
  • Update Algorithms.md (#198)
  • Add apt-get upgrade to test Dockerfiles (#197)
  • Add document for expansion resetting (#193)
  • Add test for expansion resetting (#192)
  • Add test for global localization (#188)
  • Refactor likelihood calculation (#189)
  • Add a comment to test_transform_failure (#184)
  • Build mcl_3dl_msgs from source on CI (#185)
  • Fix resampling (#183)
  • Fix test failure on ROS buildfarm (#181)
  • Fix catkin package definitions (#180)
  • Add tf exception handling and change message level (#177)
  • Relax codecov patch threshold (#179)
  • Allow small coverage drop (#178)
  • Fix test names (#176)
  • Add build id to CI bot comment (#174)
  • Fold CI bot comment (#173)
  • Decrease bag playback rate in integration test (#172)
  • Add test for NormalLikelihoodNd (#171)
  • Report coverage only after successful test (#170)
  • Add CI badges (#169)
  • Add codecov covarage test (#168)
  • Fix bot comment target slug (#167)
  • Contributors: Atsushi Watanabe, So Jomura

0.1.3 (2018-06-23)

  • Fix install of demo launch and config (#164)
  • Update CI and add test on ROS Melodic (#155)
  • Ignore gh-pr-comment failure (#162)
  • Compile with PCL_NO_PRECOMPILE (#161)
  • Fix rostest dependency (#160)
  • Fix roslint dependency (#159)
  • Update install instructions in README (#158)
  • Update manifest format and fix CMakeLists (#157)
  • Use mcl_3dl_msgs package (#152)
  • Test with shadow-fixed repository (#154)
  • Update CI bot environments (#150)
  • Add encrypted token for image caching (#149)
  • Fix migration instruction message (#147)
  • Fix match ratio min/max check (#146)
  • Add interfaces to ChunkedKdtree for external usages (#145)
  • Install headers (#143)
  • Contributors: Atsushi Watanabe

0.1.2 (2018-04-27)

  • Workaround for debian stretch build (#140)
  • Contributors: Atsushi Watanabe

0.1.1 (2018-04-25)

  • Update CI settings (#136)
  • Remove CMake warning message (#134)
  • Contributors: Atsushi Watanabe

0.1.0 (2018-04-23)

  • Migrate to ROS recommended namespace model (#130)
  • Minor CI setting updates (#129)
  • Fix package deps (#127)
  • Fix dockerfile style (#125)
  • Load CI cache from docker hub registry (#124)
    • also add build matrix
  • Add raycast performance benchmark (#123)
  • Fix GLOBAL_LOCALIZATION status (#122)
  • Add localization status output (#120)
  • Fix nodehandle usage (#121)
  • Update demo without odometry (#119)
    • Update demo without odometry
    • Update README
    • Add document of the demo without odometry
  • Move sample parameters in launch into yamls (#72)
  • Fix time jump back (#117)
    • Fix time jump back
    • Add warning of time jump
    • Fix tf error check
  • Add unit tests for Raycast (#116)
    • Add unit tests for Raycast
    • Fix raycast grid handling
  • Chunked kd-tree (#113)
    • Add chunked kd-tree to remove map truncation
    • Remove unused params
    • Remove unused debug output
    • Add unit test for ChunkedKdtree
  • Update test reference checksum (#114)
  • Fix raycast collision tolerance (#112)
    • Tolerance of the end of the raycast was too small in 1a758c0 because of the increase of the search range.
  • Add integral angular odometry error constraint (#111)
  • Fix raycast (#110)
    • Hit was checked by using range search with (grid/2.0) which make a lot of miss detection. (sqrt(2.0) * grid / 2.0) should be good approximation.
  • Add rule based expansion resetting (#109)
  • Fix integral odom error debug output (#108)
  • Add landmark measurement input (#107)
  • Fix map update timer (#105)
  • Fix CI bot (#104)
    • Fix repository url
    • Use pip version of the bot
  • Remove spinOnce polling and waitForTransform (#102)
    • Use ros::Timer instead of ros::spinOnce polling
    • Remove waitForTransform for static transforms
    • Remove waitForTransform for buffered (delayed) objects
  • Fix particle initialization (#101)
  • Reset integral odometry error if jumped (#100)
  • Add constraint on the integral of odometry error (#99)
    • odom_err_integ_tc: time constant to hold the integral of the odometry error
    • odom_err_integ_sigma: acceptable range of the integral of the odometry error
  • Visualize sampled points and raycasting result (#97)
    • Visualize sampled points and raycasting result
    • Remove duplicated code around raycasting
  • Fix raycasting accuracy (#96)
  • Fix odometry noise function in prediction (#95)
  • Add global localization (#91)
  • Fix particle resize (#92)
    • same fix as #90
  • Fix resampling for huge particle size (#90)
    • All-zero particles have appeared on resampling if the particle size is very large.
    • Also, add iterator.
  • Add test for pf::ParticleFilter. (#89)
  • Build test with -Wall -Werror. (#88)
    • Build test with -Wall -Werror.
    • Workaround for invalid macro name bug in PCL(<1.8.1).
  • Fix odometry noise function. (#87)
    • wrong: nd(mean = 1.0, sigma = sigma_trans_trans) * nd(mean = 1.0, sigma = sigma_rot_trans)
    • corrected: nd(mean = 0.0, sigma = sigma_trans_trans) + nd(mean = 0.0, sigma = sigma_rot_trans)
  • Skip random points sampling if all points are filtered out. (#86)
  • Fix build on indigo. (#84)
  • Add map_clip_far param. (#85)
  • Support variable particle size. (#78)
    • Support variable particle size.
    • Add service to change particle size.
    • Add test for resizeParticle.
  • Check input cloud size. (#82)
    • Check for empty cloud to avoid failure on kdtree build.
    • Fix usage of point size of pcl::PointCloud.
  • Remove debug outputs. (#81)
  • Use online version of test result comment bot. (#80)
  • Fix const function attributes. (#77)
  • Remove dummy dep to system_lib. (#76)
  • Add unit tests for mathematical classes. (#74)
    • Add unit tests for Vec3, Quat, NormalLikelihood, Filter classes.
    • Fix scaling of the NormalLikelihood distribution.
    • Fix Filter::set in angle mode.
  • Fix naming styles. (#73)
    • Names of the classes and their members now get compatible with ROS recommended coding styles.
    • Public member variables are kept without underscore postfix.
  • Fix package install. (#71)
  • Fix assert of sampled point amount check. (#70)
  • Fix quaternion average and use expectation as estimation result. (#67)
  • Fix bot\'s test result posting on fail. (#68)
  • Include test result on bot post. (#66)
  • Fix a bug where all particle probabilities get zero. (#65)
    • fix number of selected points for likelihood calculation
    • add error recovering / asserts
  • fixes coding styles (#64)
  • adds parameter to accumulate input clouds (#60)
  • syncs tf timestamp with last odometry (#61)
  • adds example without odometry (#57)
  • updates default params and demo (#55)
  • adds option to disable tf publish and test for tf output (#46)
  • adds test result notifier bot (#53)
  • fixes possibly invalid memory access (#52)
  • changes docker storage driver to overlay2 (#51)
  • adds pcd file output of all pointcloud (#50)
  • limits minimum beam_model likelihood (#49)
  • separates point ranges of beam model and fixes total ref reduction (#48)
  • makes acc measurement variance configurable (#47)
  • fixes published tf timestamps to have a future date (#45)
  • fixes docker caching on travis (#43)
  • updates default parameters (#42)
  • adds debug visualization output of casted ray (#41)
  • fixes total reflection reduction (#40)
  • rejects total reflection points in beam_model (#37)
  • fixes test result handling and playback rate (#38)
  • ignores travis run on non-master branch (#36)
  • caches test dataset outside of docker (#34)
    • caches test dataset outside docker
    • changes script path
  • adds travis settings for a test in docker container (#33)
  • adds localization accuracy test (#32)
  • makes beam_model likelihood configurable (#30)
  • removes ad-hoc map filter (#27)
  • updates sample launch file (#28)
    • The commit enables:
      • IMU measurement
      • loading map from pcd file
  • adds imu measurement (#26)
  • adds hysteresis on final estimation (#24)
  • updates parameters in sample launch file (#23)
    • removes map offset parameters
    • specifies jump detection distance
  • fixes axis-angle value range (#22)
  • updates parameters in sample launch file (#19)
  • fixes odometry error parameter handling (#18)
  • fixes beam_model raycast origin (#17)
  • adds parameter to specify odometry error
  • adds sample launch file (#14)
    • This fixes #3.
    • A dataset for testing will be supplied in future.
  • adds documentation (#10)
  • fixes init_yaw/pitch/roll setting (#12)
  • ad hoc fix to a bug on PCL-1.7 with C++11
    • fixes #9
  • adds matched/unmatched pointclouds output (#7)
  • fixes filter resetting in angular mode
    • This commit fixes #2.
  • makes map clipping parameters configurable
  • fixes roll and pitch motion in prediction phase
  • adds /amcl_pose output
    • This commit fixes #1.
  • applies LPF on debugging output pointcloud coordinate
  • changes default map frame to \'map\' instead of \'map_ground\'
  • outsources map update
  • adds beam model
  • makes z clipping parameters configurable
  • adds parameter to skip measurement
  • reduces almost invisible points in map
  • checks localization covariance on map update
  • detects pose jump and reset LPF
  • makes some parameters configurable
  • adds covariance calculation
  • uses rpy variance instead of quat
  • supports jump back
  • fixes PointRepresentation dimension
  • speed up by using radiusSearch instead of nearestKSearch
  • improves prediction phase
  • adds flexible particle operators
  • removes garbage semicolons
  • makes matching related parameters configurable
  • makes several parameters configurable
  • adds output filter
  • adds weight in matching
  • adds some parameters
  • reduces number of points of updated map cloud
  • adds particleBase::operator+
  • clips and updates maps
  • adds vec3::operator*
  • adds arg to specify sigma to resampling
  • avoids memory access error in max()
  • supports tf and initialpose
  • supports quat::inverse
  • supports vec3::operator-
  • updates test parameters
  • update map cloud
  • accumulates clouds
  • fixes resampling
  • first test version
  • Contributors: Atsushi Watanabe

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at answers.ros.org

mcl_3dl package from mcl_3dl repo

mcl_3dl

Package Summary

Tags No category tags.
Version 0.1.4
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2019-07-07
Dev Status DEVELOPED
Released RELEASED

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status codecov License

Package summary

mcl_3dl is a ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s). It implements pointcloud based Monte Carlo localization that uses a reference pointcloud as a map.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn't implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information. - Purple spheres: sampled points used in the likelihood-model calculation - Red lines: casted rays in the beam-model calculation - Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.1.4 (2018-12-20)

  • Fix IO figure (#212)
  • Fix tf timestamp (#214)
  • Add pf::ParticleFilter::appendParticle (#207)
  • Fix pointer alignment style (#210)
  • Migrate tf to tf2 (#208)
  • Fix class member naming style (#205)
  • Make lidar measurement model class (#195)
  • Add I/O diagram to the document (#199)
  • Update Algorithms.md (#198)
  • Add apt-get upgrade to test Dockerfiles (#197)
  • Add document for expansion resetting (#193)
  • Add test for expansion resetting (#192)
  • Add test for global localization (#188)
  • Refactor likelihood calculation (#189)
  • Add a comment to test_transform_failure (#184)
  • Build mcl_3dl_msgs from source on CI (#185)
  • Fix resampling (#183)
  • Fix test failure on ROS buildfarm (#181)
  • Fix catkin package definitions (#180)
  • Add tf exception handling and change message level (#177)
  • Relax codecov patch threshold (#179)
  • Allow small coverage drop (#178)
  • Fix test names (#176)
  • Add build id to CI bot comment (#174)
  • Fold CI bot comment (#173)
  • Decrease bag playback rate in integration test (#172)
  • Add test for NormalLikelihoodNd (#171)
  • Report coverage only after successful test (#170)
  • Add CI badges (#169)
  • Add codecov covarage test (#168)
  • Fix bot comment target slug (#167)
  • Contributors: Atsushi Watanabe, So Jomura

0.1.3 (2018-06-23)

  • Fix install of demo launch and config (#164)
  • Update CI and add test on ROS Melodic (#155)
  • Ignore gh-pr-comment failure (#162)
  • Compile with PCL_NO_PRECOMPILE (#161)
  • Fix rostest dependency (#160)
  • Fix roslint dependency (#159)
  • Update install instructions in README (#158)
  • Update manifest format and fix CMakeLists (#157)
  • Use mcl_3dl_msgs package (#152)
  • Test with shadow-fixed repository (#154)
  • Update CI bot environments (#150)
  • Add encrypted token for image caching (#149)
  • Fix migration instruction message (#147)
  • Fix match ratio min/max check (#146)
  • Add interfaces to ChunkedKdtree for external usages (#145)
  • Install headers (#143)
  • Contributors: Atsushi Watanabe

0.1.2 (2018-04-27)

  • Workaround for debian stretch build (#140)
  • Contributors: Atsushi Watanabe

0.1.1 (2018-04-25)

  • Update CI settings (#136)
  • Remove CMake warning message (#134)
  • Contributors: Atsushi Watanabe

0.1.0 (2018-04-23)

  • Migrate to ROS recommended namespace model (#130)
  • Minor CI setting updates (#129)
  • Fix package deps (#127)
  • Fix dockerfile style (#125)
  • Load CI cache from docker hub registry (#124)
    • also add build matrix
  • Add raycast performance benchmark (#123)
  • Fix GLOBAL_LOCALIZATION status (#122)
  • Add localization status output (#120)
  • Fix nodehandle usage (#121)
  • Update demo without odometry (#119)
    • Update demo without odometry
    • Update README
    • Add document of the demo without odometry
  • Move sample parameters in launch into yamls (#72)
  • Fix time jump back (#117)
    • Fix time jump back
    • Add warning of time jump
    • Fix tf error check
  • Add unit tests for Raycast (#116)
    • Add unit tests for Raycast
    • Fix raycast grid handling
  • Chunked kd-tree (#113)
    • Add chunked kd-tree to remove map truncation
    • Remove unused params
    • Remove unused debug output
    • Add unit test for ChunkedKdtree
  • Update test reference checksum (#114)
  • Fix raycast collision tolerance (#112)
    • Tolerance of the end of the raycast was too small in 1a758c0 because of the increase of the search range.
  • Add integral angular odometry error constraint (#111)
  • Fix raycast (#110)
    • Hit was checked by using range search with (grid/2.0) which make a lot of miss detection. (sqrt(2.0) * grid / 2.0) should be good approximation.
  • Add rule based expansion resetting (#109)
  • Fix integral odom error debug output (#108)
  • Add landmark measurement input (#107)
  • Fix map update timer (#105)
  • Fix CI bot (#104)
    • Fix repository url
    • Use pip version of the bot
  • Remove spinOnce polling and waitForTransform (#102)
    • Use ros::Timer instead of ros::spinOnce polling
    • Remove waitForTransform for static transforms
    • Remove waitForTransform for buffered (delayed) objects
  • Fix particle initialization (#101)
  • Reset integral odometry error if jumped (#100)
  • Add constraint on the integral of odometry error (#99)
    • odom_err_integ_tc: time constant to hold the integral of the odometry error
    • odom_err_integ_sigma: acceptable range of the integral of the odometry error
  • Visualize sampled points and raycasting result (#97)
    • Visualize sampled points and raycasting result
    • Remove duplicated code around raycasting
  • Fix raycasting accuracy (#96)
  • Fix odometry noise function in prediction (#95)
  • Add global localization (#91)
  • Fix particle resize (#92)
    • same fix as #90
  • Fix resampling for huge particle size (#90)
    • All-zero particles have appeared on resampling if the particle size is very large.
    • Also, add iterator.
  • Add test for pf::ParticleFilter. (#89)
  • Build test with -Wall -Werror. (#88)
    • Build test with -Wall -Werror.
    • Workaround for invalid macro name bug in PCL(<1.8.1).
  • Fix odometry noise function. (#87)
    • wrong: nd(mean = 1.0, sigma = sigma_trans_trans) * nd(mean = 1.0, sigma = sigma_rot_trans)
    • corrected: nd(mean = 0.0, sigma = sigma_trans_trans) + nd(mean = 0.0, sigma = sigma_rot_trans)
  • Skip random points sampling if all points are filtered out. (#86)
  • Fix build on indigo. (#84)
  • Add map_clip_far param. (#85)
  • Support variable particle size. (#78)
    • Support variable particle size.
    • Add service to change particle size.
    • Add test for resizeParticle.
  • Check input cloud size. (#82)
    • Check for empty cloud to avoid failure on kdtree build.
    • Fix usage of point size of pcl::PointCloud.
  • Remove debug outputs. (#81)
  • Use online version of test result comment bot. (#80)
  • Fix const function attributes. (#77)
  • Remove dummy dep to system_lib. (#76)
  • Add unit tests for mathematical classes. (#74)
    • Add unit tests for Vec3, Quat, NormalLikelihood, Filter classes.
    • Fix scaling of the NormalLikelihood distribution.
    • Fix Filter::set in angle mode.
  • Fix naming styles. (#73)
    • Names of the classes and their members now get compatible with ROS recommended coding styles.
    • Public member variables are kept without underscore postfix.
  • Fix package install. (#71)
  • Fix assert of sampled point amount check. (#70)
  • Fix quaternion average and use expectation as estimation result. (#67)
  • Fix bot\'s test result posting on fail. (#68)
  • Include test result on bot post. (#66)
  • Fix a bug where all particle probabilities get zero. (#65)
    • fix number of selected points for likelihood calculation
    • add error recovering / asserts
  • fixes coding styles (#64)
  • adds parameter to accumulate input clouds (#60)
  • syncs tf timestamp with last odometry (#61)
  • adds example without odometry (#57)
  • updates default params and demo (#55)
  • adds option to disable tf publish and test for tf output (#46)
  • adds test result notifier bot (#53)
  • fixes possibly invalid memory access (#52)
  • changes docker storage driver to overlay2 (#51)
  • adds pcd file output of all pointcloud (#50)
  • limits minimum beam_model likelihood (#49)
  • separates point ranges of beam model and fixes total ref reduction (#48)
  • makes acc measurement variance configurable (#47)
  • fixes published tf timestamps to have a future date (#45)
  • fixes docker caching on travis (#43)
  • updates default parameters (#42)
  • adds debug visualization output of casted ray (#41)
  • fixes total reflection reduction (#40)
  • rejects total reflection points in beam_model (#37)
  • fixes test result handling and playback rate (#38)
  • ignores travis run on non-master branch (#36)
  • caches test dataset outside of docker (#34)
    • caches test dataset outside docker
    • changes script path
  • adds travis settings for a test in docker container (#33)
  • adds localization accuracy test (#32)
  • makes beam_model likelihood configurable (#30)
  • removes ad-hoc map filter (#27)
  • updates sample launch file (#28)
    • The commit enables:
      • IMU measurement
      • loading map from pcd file
  • adds imu measurement (#26)
  • adds hysteresis on final estimation (#24)
  • updates parameters in sample launch file (#23)
    • removes map offset parameters
    • specifies jump detection distance
  • fixes axis-angle value range (#22)
  • updates parameters in sample launch file (#19)
  • fixes odometry error parameter handling (#18)
  • fixes beam_model raycast origin (#17)
  • adds parameter to specify odometry error
  • adds sample launch file (#14)
    • This fixes #3.
    • A dataset for testing will be supplied in future.
  • adds documentation (#10)
  • fixes init_yaw/pitch/roll setting (#12)
  • ad hoc fix to a bug on PCL-1.7 with C++11
    • fixes #9
  • adds matched/unmatched pointclouds output (#7)
  • fixes filter resetting in angular mode
    • This commit fixes #2.
  • makes map clipping parameters configurable
  • fixes roll and pitch motion in prediction phase
  • adds /amcl_pose output
    • This commit fixes #1.
  • applies LPF on debugging output pointcloud coordinate
  • changes default map frame to \'map\' instead of \'map_ground\'
  • outsources map update
  • adds beam model
  • makes z clipping parameters configurable
  • adds parameter to skip measurement
  • reduces almost invisible points in map
  • checks localization covariance on map update
  • detects pose jump and reset LPF
  • makes some parameters configurable
  • adds covariance calculation
  • uses rpy variance instead of quat
  • supports jump back
  • fixes PointRepresentation dimension
  • speed up by using radiusSearch instead of nearestKSearch
  • improves prediction phase
  • adds flexible particle operators
  • removes garbage semicolons
  • makes matching related parameters configurable
  • makes several parameters configurable
  • adds output filter
  • adds weight in matching
  • adds some parameters
  • reduces number of points of updated map cloud
  • adds particleBase::operator+
  • clips and updates maps
  • adds vec3::operator*
  • adds arg to specify sigma to resampling
  • avoids memory access error in max()
  • supports tf and initialpose
  • supports quat::inverse
  • supports vec3::operator-
  • updates test parameters
  • update map cloud
  • accumulates clouds
  • fixes resampling
  • first test version
  • Contributors: Atsushi Watanabe

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at answers.ros.org

mcl_3dl package from mcl_3dl repo

mcl_3dl

Package Summary

Tags No category tags.
Version 0.1.4
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2019-07-07
Dev Status DEVELOPED
Released RELEASED

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status codecov License

Package summary

mcl_3dl is a ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s). It implements pointcloud based Monte Carlo localization that uses a reference pointcloud as a map.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn't implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information. - Purple spheres: sampled points used in the likelihood-model calculation - Red lines: casted rays in the beam-model calculation - Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.1.4 (2018-12-20)

  • Fix IO figure (#212)
  • Fix tf timestamp (#214)
  • Add pf::ParticleFilter::appendParticle (#207)
  • Fix pointer alignment style (#210)
  • Migrate tf to tf2 (#208)
  • Fix class member naming style (#205)
  • Make lidar measurement model class (#195)
  • Add I/O diagram to the document (#199)
  • Update Algorithms.md (#198)
  • Add apt-get upgrade to test Dockerfiles (#197)
  • Add document for expansion resetting (#193)
  • Add test for expansion resetting (#192)
  • Add test for global localization (#188)
  • Refactor likelihood calculation (#189)
  • Add a comment to test_transform_failure (#184)
  • Build mcl_3dl_msgs from source on CI (#185)
  • Fix resampling (#183)
  • Fix test failure on ROS buildfarm (#181)
  • Fix catkin package definitions (#180)
  • Add tf exception handling and change message level (#177)
  • Relax codecov patch threshold (#179)
  • Allow small coverage drop (#178)
  • Fix test names (#176)
  • Add build id to CI bot comment (#174)
  • Fold CI bot comment (#173)
  • Decrease bag playback rate in integration test (#172)
  • Add test for NormalLikelihoodNd (#171)
  • Report coverage only after successful test (#170)
  • Add CI badges (#169)
  • Add codecov covarage test (#168)
  • Fix bot comment target slug (#167)
  • Contributors: Atsushi Watanabe, So Jomura

0.1.3 (2018-06-23)

  • Fix install of demo launch and config (#164)
  • Update CI and add test on ROS Melodic (#155)
  • Ignore gh-pr-comment failure (#162)
  • Compile with PCL_NO_PRECOMPILE (#161)
  • Fix rostest dependency (#160)
  • Fix roslint dependency (#159)
  • Update install instructions in README (#158)
  • Update manifest format and fix CMakeLists (#157)
  • Use mcl_3dl_msgs package (#152)
  • Test with shadow-fixed repository (#154)
  • Update CI bot environments (#150)
  • Add encrypted token for image caching (#149)
  • Fix migration instruction message (#147)
  • Fix match ratio min/max check (#146)
  • Add interfaces to ChunkedKdtree for external usages (#145)
  • Install headers (#143)
  • Contributors: Atsushi Watanabe

0.1.2 (2018-04-27)

  • Workaround for debian stretch build (#140)
  • Contributors: Atsushi Watanabe

0.1.1 (2018-04-25)

  • Update CI settings (#136)
  • Remove CMake warning message (#134)
  • Contributors: Atsushi Watanabe

0.1.0 (2018-04-23)

  • Migrate to ROS recommended namespace model (#130)
  • Minor CI setting updates (#129)
  • Fix package deps (#127)
  • Fix dockerfile style (#125)
  • Load CI cache from docker hub registry (#124)
    • also add build matrix
  • Add raycast performance benchmark (#123)
  • Fix GLOBAL_LOCALIZATION status (#122)
  • Add localization status output (#120)
  • Fix nodehandle usage (#121)
  • Update demo without odometry (#119)
    • Update demo without odometry
    • Update README
    • Add document of the demo without odometry
  • Move sample parameters in launch into yamls (#72)
  • Fix time jump back (#117)
    • Fix time jump back
    • Add warning of time jump
    • Fix tf error check
  • Add unit tests for Raycast (#116)
    • Add unit tests for Raycast
    • Fix raycast grid handling
  • Chunked kd-tree (#113)
    • Add chunked kd-tree to remove map truncation
    • Remove unused params
    • Remove unused debug output
    • Add unit test for ChunkedKdtree
  • Update test reference checksum (#114)
  • Fix raycast collision tolerance (#112)
    • Tolerance of the end of the raycast was too small in 1a758c0 because of the increase of the search range.
  • Add integral angular odometry error constraint (#111)
  • Fix raycast (#110)
    • Hit was checked by using range search with (grid/2.0) which make a lot of miss detection. (sqrt(2.0) * grid / 2.0) should be good approximation.
  • Add rule based expansion resetting (#109)
  • Fix integral odom error debug output (#108)
  • Add landmark measurement input (#107)
  • Fix map update timer (#105)
  • Fix CI bot (#104)
    • Fix repository url
    • Use pip version of the bot
  • Remove spinOnce polling and waitForTransform (#102)
    • Use ros::Timer instead of ros::spinOnce polling
    • Remove waitForTransform for static transforms
    • Remove waitForTransform for buffered (delayed) objects
  • Fix particle initialization (#101)
  • Reset integral odometry error if jumped (#100)
  • Add constraint on the integral of odometry error (#99)
    • odom_err_integ_tc: time constant to hold the integral of the odometry error
    • odom_err_integ_sigma: acceptable range of the integral of the odometry error
  • Visualize sampled points and raycasting result (#97)
    • Visualize sampled points and raycasting result
    • Remove duplicated code around raycasting
  • Fix raycasting accuracy (#96)
  • Fix odometry noise function in prediction (#95)
  • Add global localization (#91)
  • Fix particle resize (#92)
    • same fix as #90
  • Fix resampling for huge particle size (#90)
    • All-zero particles have appeared on resampling if the particle size is very large.
    • Also, add iterator.
  • Add test for pf::ParticleFilter. (#89)
  • Build test with -Wall -Werror. (#88)
    • Build test with -Wall -Werror.
    • Workaround for invalid macro name bug in PCL(<1.8.1).
  • Fix odometry noise function. (#87)
    • wrong: nd(mean = 1.0, sigma = sigma_trans_trans) * nd(mean = 1.0, sigma = sigma_rot_trans)
    • corrected: nd(mean = 0.0, sigma = sigma_trans_trans) + nd(mean = 0.0, sigma = sigma_rot_trans)
  • Skip random points sampling if all points are filtered out. (#86)
  • Fix build on indigo. (#84)
  • Add map_clip_far param. (#85)
  • Support variable particle size. (#78)
    • Support variable particle size.
    • Add service to change particle size.
    • Add test for resizeParticle.
  • Check input cloud size. (#82)
    • Check for empty cloud to avoid failure on kdtree build.
    • Fix usage of point size of pcl::PointCloud.
  • Remove debug outputs. (#81)
  • Use online version of test result comment bot. (#80)
  • Fix const function attributes. (#77)
  • Remove dummy dep to system_lib. (#76)
  • Add unit tests for mathematical classes. (#74)
    • Add unit tests for Vec3, Quat, NormalLikelihood, Filter classes.
    • Fix scaling of the NormalLikelihood distribution.
    • Fix Filter::set in angle mode.
  • Fix naming styles. (#73)
    • Names of the classes and their members now get compatible with ROS recommended coding styles.
    • Public member variables are kept without underscore postfix.
  • Fix package install. (#71)
  • Fix assert of sampled point amount check. (#70)
  • Fix quaternion average and use expectation as estimation result. (#67)
  • Fix bot\'s test result posting on fail. (#68)
  • Include test result on bot post. (#66)
  • Fix a bug where all particle probabilities get zero. (#65)
    • fix number of selected points for likelihood calculation
    • add error recovering / asserts
  • fixes coding styles (#64)
  • adds parameter to accumulate input clouds (#60)
  • syncs tf timestamp with last odometry (#61)
  • adds example without odometry (#57)
  • updates default params and demo (#55)
  • adds option to disable tf publish and test for tf output (#46)
  • adds test result notifier bot (#53)
  • fixes possibly invalid memory access (#52)
  • changes docker storage driver to overlay2 (#51)
  • adds pcd file output of all pointcloud (#50)
  • limits minimum beam_model likelihood (#49)
  • separates point ranges of beam model and fixes total ref reduction (#48)
  • makes acc measurement variance configurable (#47)
  • fixes published tf timestamps to have a future date (#45)
  • fixes docker caching on travis (#43)
  • updates default parameters (#42)
  • adds debug visualization output of casted ray (#41)
  • fixes total reflection reduction (#40)
  • rejects total reflection points in beam_model (#37)
  • fixes test result handling and playback rate (#38)
  • ignores travis run on non-master branch (#36)
  • caches test dataset outside of docker (#34)
    • caches test dataset outside docker
    • changes script path
  • adds travis settings for a test in docker container (#33)
  • adds localization accuracy test (#32)
  • makes beam_model likelihood configurable (#30)
  • removes ad-hoc map filter (#27)
  • updates sample launch file (#28)
    • The commit enables:
      • IMU measurement
      • loading map from pcd file
  • adds imu measurement (#26)
  • adds hysteresis on final estimation (#24)
  • updates parameters in sample launch file (#23)
    • removes map offset parameters
    • specifies jump detection distance
  • fixes axis-angle value range (#22)
  • updates parameters in sample launch file (#19)
  • fixes odometry error parameter handling (#18)
  • fixes beam_model raycast origin (#17)
  • adds parameter to specify odometry error
  • adds sample launch file (#14)
    • This fixes #3.
    • A dataset for testing will be supplied in future.
  • adds documentation (#10)
  • fixes init_yaw/pitch/roll setting (#12)
  • ad hoc fix to a bug on PCL-1.7 with C++11
    • fixes #9
  • adds matched/unmatched pointclouds output (#7)
  • fixes filter resetting in angular mode
    • This commit fixes #2.
  • makes map clipping parameters configurable
  • fixes roll and pitch motion in prediction phase
  • adds /amcl_pose output
    • This commit fixes #1.
  • applies LPF on debugging output pointcloud coordinate
  • changes default map frame to \'map\' instead of \'map_ground\'
  • outsources map update
  • adds beam model
  • makes z clipping parameters configurable
  • adds parameter to skip measurement
  • reduces almost invisible points in map
  • checks localization covariance on map update
  • detects pose jump and reset LPF
  • makes some parameters configurable
  • adds covariance calculation
  • uses rpy variance instead of quat
  • supports jump back
  • fixes PointRepresentation dimension
  • speed up by using radiusSearch instead of nearestKSearch
  • improves prediction phase
  • adds flexible particle operators
  • removes garbage semicolons
  • makes matching related parameters configurable
  • makes several parameters configurable
  • adds output filter
  • adds weight in matching
  • adds some parameters
  • reduces number of points of updated map cloud
  • adds particleBase::operator+
  • clips and updates maps
  • adds vec3::operator*
  • adds arg to specify sigma to resampling
  • avoids memory access error in max()
  • supports tf and initialpose
  • supports quat::inverse
  • supports vec3::operator-
  • updates test parameters
  • update map cloud
  • accumulates clouds
  • fixes resampling
  • first test version
  • Contributors: Atsushi Watanabe

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at answers.ros.org

mcl_3dl package from mcl_3dl repo

mcl_3dl

Package Summary

Tags No category tags.
Version 0.1.4
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version indigo-devel
Last Updated 2019-05-21
Dev Status DEVELOPED
Released RELEASED

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status codecov License

Package summary

mcl_3dl is a ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s). It implements pointcloud based Monte Carlo localization that uses a reference pointcloud as a map.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn't implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information. - Purple spheres: sampled points used in the likelihood-model calculation - Red lines: casted rays in the beam-model calculation - Red boxes: detected collisions in raycasting

A demo without odometry is also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.1.4 (2018-12-20)

  • Fix IO figure (#212)
  • Fix tf timestamp (#214)
  • Add pf::ParticleFilter::appendParticle (#207)
  • Fix pointer alignment style (#210)
  • Migrate tf to tf2 (#208)
  • Fix class member naming style (#205)
  • Make lidar measurement model class (#195)
  • Add I/O diagram to the document (#199)
  • Update Algorithms.md (#198)
  • Add apt-get upgrade to test Dockerfiles (#197)
  • Add document for expansion resetting (#193)
  • Add test for expansion resetting (#192)
  • Add test for global localization (#188)
  • Refactor likelihood calculation (#189)
  • Add a comment to test_transform_failure (#184)
  • Build mcl_3dl_msgs from source on CI (#185)
  • Fix resampling (#183)
  • Fix test failure on ROS buildfarm (#181)
  • Fix catkin package definitions (#180)
  • Add tf exception handling and change message level (#177)
  • Relax codecov patch threshold (#179)
  • Allow small coverage drop (#178)
  • Fix test names (#176)
  • Add build id to CI bot comment (#174)
  • Fold CI bot comment (#173)
  • Decrease bag playback rate in integration test (#172)
  • Add test for NormalLikelihoodNd (#171)
  • Report coverage only after successful test (#170)
  • Add CI badges (#169)
  • Add codecov covarage test (#168)
  • Fix bot comment target slug (#167)
  • Contributors: Atsushi Watanabe, So Jomura

0.1.3 (2018-06-23)

  • Fix install of demo launch and config (#164)
  • Update CI and add test on ROS Melodic (#155)
  • Ignore gh-pr-comment failure (#162)
  • Compile with PCL_NO_PRECOMPILE (#161)
  • Fix rostest dependency (#160)
  • Fix roslint dependency (#159)
  • Update install instructions in README (#158)
  • Update manifest format and fix CMakeLists (#157)
  • Use mcl_3dl_msgs package (#152)
  • Test with shadow-fixed repository (#154)
  • Update CI bot environments (#150)
  • Add encrypted token for image caching (#149)
  • Fix migration instruction message (#147)
  • Fix match ratio min/max check (#146)
  • Add interfaces to ChunkedKdtree for external usages (#145)
  • Install headers (#143)
  • Contributors: Atsushi Watanabe

0.1.2 (2018-04-27)

  • Workaround for debian stretch build (#140)
  • Contributors: Atsushi Watanabe

0.1.1 (2018-04-25)

  • Update CI settings (#136)
  • Remove CMake warning message (#134)
  • Contributors: Atsushi Watanabe

0.1.0 (2018-04-23)

  • Migrate to ROS recommended namespace model (#130)
  • Minor CI setting updates (#129)
  • Fix package deps (#127)
  • Fix dockerfile style (#125)
  • Load CI cache from docker hub registry (#124)
    • also add build matrix
  • Add raycast performance benchmark (#123)
  • Fix GLOBAL_LOCALIZATION status (#122)
  • Add localization status output (#120)
  • Fix nodehandle usage (#121)
  • Update demo without odometry (#119)
    • Update demo without odometry
    • Update README
    • Add document of the demo without odometry
  • Move sample parameters in launch into yamls (#72)
  • Fix time jump back (#117)
    • Fix time jump back
    • Add warning of time jump
    • Fix tf error check
  • Add unit tests for Raycast (#116)
    • Add unit tests for Raycast
    • Fix raycast grid handling
  • Chunked kd-tree (#113)
    • Add chunked kd-tree to remove map truncation
    • Remove unused params
    • Remove unused debug output
    • Add unit test for ChunkedKdtree
  • Update test reference checksum (#114)
  • Fix raycast collision tolerance (#112)
    • Tolerance of the end of the raycast was too small in 1a758c0 because of the increase of the search range.
  • Add integral angular odometry error constraint (#111)
  • Fix raycast (#110)
    • Hit was checked by using range search with (grid/2.0) which make a lot of miss detection. (sqrt(2.0) * grid / 2.0) should be good approximation.
  • Add rule based expansion resetting (#109)
  • Fix integral odom error debug output (#108)
  • Add landmark measurement input (#107)
  • Fix map update timer (#105)
  • Fix CI bot (#104)
    • Fix repository url
    • Use pip version of the bot
  • Remove spinOnce polling and waitForTransform (#102)
    • Use ros::Timer instead of ros::spinOnce polling
    • Remove waitForTransform for static transforms
    • Remove waitForTransform for buffered (delayed) objects
  • Fix particle initialization (#101)
  • Reset integral odometry error if jumped (#100)
  • Add constraint on the integral of odometry error (#99)
    • odom_err_integ_tc: time constant to hold the integral of the odometry error
    • odom_err_integ_sigma: acceptable range of the integral of the odometry error
  • Visualize sampled points and raycasting result (#97)
    • Visualize sampled points and raycasting result
    • Remove duplicated code around raycasting
  • Fix raycasting accuracy (#96)
  • Fix odometry noise function in prediction (#95)
  • Add global localization (#91)
  • Fix particle resize (#92)
    • same fix as #90
  • Fix resampling for huge particle size (#90)
    • All-zero particles have appeared on resampling if the particle size is very large.
    • Also, add iterator.
  • Add test for pf::ParticleFilter. (#89)
  • Build test with -Wall -Werror. (#88)
    • Build test with -Wall -Werror.
    • Workaround for invalid macro name bug in PCL(<1.8.1).
  • Fix odometry noise function. (#87)
    • wrong: nd(mean = 1.0, sigma = sigma_trans_trans) * nd(mean = 1.0, sigma = sigma_rot_trans)
    • corrected: nd(mean = 0.0, sigma = sigma_trans_trans) + nd(mean = 0.0, sigma = sigma_rot_trans)
  • Skip random points sampling if all points are filtered out. (#86)
  • Fix build on indigo. (#84)
  • Add map_clip_far param. (#85)
  • Support variable particle size. (#78)
    • Support variable particle size.
    • Add service to change particle size.
    • Add test for resizeParticle.
  • Check input cloud size. (#82)
    • Check for empty cloud to avoid failure on kdtree build.
    • Fix usage of point size of pcl::PointCloud.
  • Remove debug outputs. (#81)
  • Use online version of test result comment bot. (#80)
  • Fix const function attributes. (#77)
  • Remove dummy dep to system_lib. (#76)
  • Add unit tests for mathematical classes. (#74)
    • Add unit tests for Vec3, Quat, NormalLikelihood, Filter classes.
    • Fix scaling of the NormalLikelihood distribution.
    • Fix Filter::set in angle mode.
  • Fix naming styles. (#73)
    • Names of the classes and their members now get compatible with ROS recommended coding styles.
    • Public member variables are kept without underscore postfix.
  • Fix package install. (#71)
  • Fix assert of sampled point amount check. (#70)
  • Fix quaternion average and use expectation as estimation result. (#67)
  • Fix bot\'s test result posting on fail. (#68)
  • Include test result on bot post. (#66)
  • Fix a bug where all particle probabilities get zero. (#65)
    • fix number of selected points for likelihood calculation
    • add error recovering / asserts
  • fixes coding styles (#64)
  • adds parameter to accumulate input clouds (#60)
  • syncs tf timestamp with last odometry (#61)
  • adds example without odometry (#57)
  • updates default params and demo (#55)
  • adds option to disable tf publish and test for tf output (#46)
  • adds test result notifier bot (#53)
  • fixes possibly invalid memory access (#52)
  • changes docker storage driver to overlay2 (#51)
  • adds pcd file output of all pointcloud (#50)
  • limits minimum beam_model likelihood (#49)
  • separates point ranges of beam model and fixes total ref reduction (#48)
  • makes acc measurement variance configurable (#47)
  • fixes published tf timestamps to have a future date (#45)
  • fixes docker caching on travis (#43)
  • updates default parameters (#42)
  • adds debug visualization output of casted ray (#41)
  • fixes total reflection reduction (#40)
  • rejects total reflection points in beam_model (#37)
  • fixes test result handling and playback rate (#38)
  • ignores travis run on non-master branch (#36)
  • caches test dataset outside of docker (#34)
    • caches test dataset outside docker
    • changes script path
  • adds travis settings for a test in docker container (#33)
  • adds localization accuracy test (#32)
  • makes beam_model likelihood configurable (#30)
  • removes ad-hoc map filter (#27)
  • updates sample launch file (#28)
    • The commit enables:
      • IMU measurement
      • loading map from pcd file
  • adds imu measurement (#26)
  • adds hysteresis on final estimation (#24)
  • updates parameters in sample launch file (#23)
    • removes map offset parameters
    • specifies jump detection distance
  • fixes axis-angle value range (#22)
  • updates parameters in sample launch file (#19)
  • fixes odometry error parameter handling (#18)
  • fixes beam_model raycast origin (#17)
  • adds parameter to specify odometry error
  • adds sample launch file (#14)
    • This fixes #3.
    • A dataset for testing will be supplied in future.
  • adds documentation (#10)
  • fixes init_yaw/pitch/roll setting (#12)
  • ad hoc fix to a bug on PCL-1.7 with C++11
    • fixes #9
  • adds matched/unmatched pointclouds output (#7)
  • fixes filter resetting in angular mode
    • This commit fixes #2.
  • makes map clipping parameters configurable
  • fixes roll and pitch motion in prediction phase
  • adds /amcl_pose output
    • This commit fixes #1.
  • applies LPF on debugging output pointcloud coordinate
  • changes default map frame to \'map\' instead of \'map_ground\'
  • outsources map update
  • adds beam model
  • makes z clipping parameters configurable
  • adds parameter to skip measurement
  • reduces almost invisible points in map
  • checks localization covariance on map update
  • detects pose jump and reset LPF
  • makes some parameters configurable
  • adds covariance calculation
  • uses rpy variance instead of quat
  • supports jump back
  • fixes PointRepresentation dimension
  • speed up by using radiusSearch instead of nearestKSearch
  • improves prediction phase
  • adds flexible particle operators
  • removes garbage semicolons
  • makes matching related parameters configurable
  • makes several parameters configurable
  • adds output filter
  • adds weight in matching
  • adds some parameters
  • reduces number of points of updated map cloud
  • adds particleBase::operator+
  • clips and updates maps
  • adds vec3::operator*
  • adds arg to specify sigma to resampling
  • avoids memory access error in max()
  • supports tf and initialpose
  • supports quat::inverse
  • supports vec3::operator-
  • updates test parameters
  • update map cloud
  • accumulates clouds
  • fixes resampling
  • first test version
  • Contributors: Atsushi Watanabe

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at answers.ros.org