Skip to content

Simple 2D point-to-point scan matcher implemented in Python. Works with ROS1.

License

Notifications You must be signed in to change notification settings

salihmarangoz/basic_scan_matcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Scan Matcher (ROS+Python)

Implementation of a scan matcher using only laser data and without any help from odometry sources. The method is implemented super-simple so it doesn't work well, and it may not work well in your cases. Use only for educational purposes. You can also check my notebook v1 and notebook v2 for more information.

V1) Point-to-point matching. Youtube Link: https://youtu.be/t-31ekrpjxk (jumps at 0:20 are solved with this commit)

V2) Correlative scan matching. Youtube Link: https://youtu.be/ymrGJY8h9x4

The original map for the recorded bag: (Bag is generated using https://github.com/salihmarangoz/robot_laser_simulator)

Features

  • ROS (inputs /scan)
  • Publishes the matching error between odom to laser transforms.
  • (v1) Efficient point-to-point matching with KD Tree.
  • (v2) Correlative scan matching. (a bit similar to NDT, but each point has its own normal distribution)
  • Old scan is only updated if the robot moves or rotates above a certain threshold.
  • Demo bag is available.

Running

# Point-to-point matching:
$ roslaunch basic_scan_matcher start_v1.launch
# Correspondence-free matching:
$ roslaunch basic_scan_matcher start_v2.launch

About

Simple 2D point-to-point scan matcher implemented in Python. Works with ROS1.

Topics

Resources

License

Stars

Watchers

Forks