3 ms·
Carpet based localisation! I need a location tracking system for my office robot. Our carpet happens to have a pseudo random grid pattern of four colors. I'm c
by tim-fan 6y ago
Carpet based localisation!
I need a location tracking system for my office robot. Our carpet happens to have a pseudo random grid pattern of four colors. I'm creating a map of this pattern, then at runtime I fuse odometry with carpet colour (detected via camera) in a particle filter to determine and track robot location.
Initial results are looking good :)
Some links :
How I detect carpet colour: https://nbviewer.jupyter.org/github/tim-fan/carpet_color_classification/blob/main/notebooks/train_classifier.ipynb https://nbviewer.jupyter.org/github/tim-fan/carpet_color_cla...
The particle filter: https://github.com/tim-fan/carpet_localisation https://github.com/tim-fan/carpet_localisation
ROS package with gazebo simulation : https://github.com/tim-fan/carpet_localisation_ros https://github.com/tim-fan/carpet_localisation_ros
Current state of my carpet map (about 1/4 of the full office): https://raw.githubusercontent.com/tim-fan/carpet_localisation_ros/main/cfg/office_map.png https://raw.githubusercontent.com/tim-fan/carpet_localisatio...
- shiftingleft 6y agoIs the gaussian mixture model required for this? Can't you just use the nearest neighbor?
- tim-fan 6y agoYeah nearest neighbour was my first thought, but I noticed that the clusters were more spread out in some directions than other. For instance the black cluster is elongated in the saturation dimension but quite tight in H and V. I wanted to capture these directions of variance and I think the GMM does this. Put differently, I think the clusters are better approximated by ellipsoids than spheres. But yep nearest neighbour probably would have worked fine too.