Autonomous docking
Hello,
As a part of my thesis I want to perform autonomous docking for my robot. I saw that xiaomi vacuum cleaner perform autonomous docking only with LIDAR. I am trying to do the same but can't understand the logic. I bought dock station and have LIDAR. Does anybody do something like this and can help me or give any suggestions?
Thanks in advance, Regards
Maybe some kind of scan matching method? Does your docking station have some unique features that you could detect with the lidar? Maybe use something like RANSAC to fit the lidar data over a model of the docking station.
It is really hard to help you if you don't provide more information about your use-case. If the location of the docking station is static and your environment is not very dynamic you could also use AMCL to just determine your robot pose in a map and define where the docking station is on that map.
Yes, the dock station has some patter, it has like pits. Can you please describe what is RANSAC and how can I scan matching method? Thank you
Only AMCL is not enough((( I want to use AMCL ro reach the region of the station and then perform docking
There are many methods to fit/match laser data to features/models. The way RANSAC (RANdom SAmple Consensus) works is by assuming your docking station is in a certain position, then counting how many of your datapoints (laserpoints) are on top of, or close to, your model, this will give you inliers (points that agree with your guess) and outliers (points that don't agree with your guess). You do this for an "n" amount of guesses and then you pick the one with the greatest amount of inliers (better if you also introduce some threshold where inliers/expected inliers > 0.8 or something). It is a really crude "brute-force" type method, but since you already have an initial guess from AMCL it could work. I'm not saying this is the best solution or that it is easy to implement, but it is 1 way of doing things ...(more)
Additionally, if you are free to change the world/docking station/environment as you please (not sure if this is a constraint in your project) then you could consider adding a feature to the docking station yourself. If you are allowed to add something that is very easily detected by a Lidar, why go through the effort of implementing or coming up with a fancy algorithm? Don't solve a problem that you created! If there is an easier solution go for it!
Thank you for you suggestion, I will try to implement laser/scan matching method and if I fail I will try something else.
Thank you, for the idea)))
Hİ Yehor. How you find any good solution? I have the same project. Using Lidar and reflectors to pose our robot. If possible , write a navigation code to autonomous docking with this pose data.
@bfdmetu Hi, I simply moving with navigation stack to the goal in front of the dock station on the map firstly. And then I am looking for cluster with higher intensity in front of the robot. Because, I have attached reflection material on the dock station which has mostly always higher intensity than other things around the dock station.
1) How can you find higher intensity cluster. How can you use lidar data? I echo topic info /scan but these are meaningless for me :) is there any package or something ?
2) Can you get robot pose info or can you update amcl_pose with this way