AlpMercan / Where-AM-I

Open_CV based solution to kidnapped 2D lidar based robot problem.

Home Page:https://www.youtube.com/watch?v=IJrB1yL7DEQ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Where-AM-I

OpenCV Robot Relocalization: This project utilizes OpenCV and IMU data to address the 'kidnapped robot' problem. It features two key components:

  1. Kidnapping Detection, which uses IMU data to identify unexpected movements suggesting the robot has been moved
  2. Relocalization, employing OpenCV for template matching to reorient the robot in its new environment using lidar costmaps. The approach combines threshold-based
  • IMU analysis with feature detection and mapping, offering a robust solution for autonomous reorientation after displacement.

How to use it

  1. cd catkin_ws/src #wherever your main is

  2. git clone https://github.com/AlpMercan/Where-AM-I.git

  3. cd ~catkin_ws

  4. rosdep install --from-paths src --ignore-src -r

  5. catkin_make

some configurations

  • Use the correct imu topic.
  • Change your map.yaml's origin to [0,0,0].
  • The global costmap and local cost map should be in the same directory
  • First enter the The_kidnapper_Algorithm.py and change image path and template path to your respective position
  • From map class change the global cost map topic with its name and after work the system 2 times.
  • After you have initial costmaps change back to local costmaps.
  • You can add the kidnapper.launch to your main launch file for it to work continously.
  • As long as it does not detect kidnapping, the main program will not work so CPU usage is respectively low
Real_world_position

The real world position

Initial_AMCL_Position

Rviz initial condition

Position_detection

The localition finder

Relocalization

relocalized position

About

Open_CV based solution to kidnapped 2D lidar based robot problem.

https://www.youtube.com/watch?v=IJrB1yL7DEQ

License:MIT License


Languages

Language:C++ 34.9%Language:CMake 32.7%Language:Python 32.4%