Progress:
Ok. This project will take a while... A lot of stuff coming together on this one.
I found out that the Roomba I've had for some years has a serial port and an open interface.
It's basically a iRobot Create 2, but this one can also clean my floor:
https://edu.irobot.com/what-we-offer/create-robot
The Roomba is a 632 (600 series) without any scheduling or mapping capabilities... for now.
The interface allows me to not only send basic commands, but also to get full sensor readings. On everything from motors, bump and cliff sensors etc.
As always, the plan is pretty simple. Add microcontroller, some soldering, some typing, done!
Goals:
V - Add control with MQTT in Home Assistant for scheduled cleaning & viewing status and map;
V - Play MacGyver theme song & The Imperial March (and any other song with MIDI notes);
V - MQTT-autodiscover and state updates;
V - Read sensorstream data with all relevant sensors for mapping and autonomous driving;
V - Add IMU and use it's onboard Digital Motion Processor;
V - Get data from wheel encoder readings for travelled distance;
V - Get data from IMU-readings for direction of travel;
V - Calculating pose as XY coordinates;
V - Mapping. Both live and post process;
V - Correct vectordata with closed loop;
V - Make it rock solid stable;
o - Integrate sensor readings to improve accuracy;
o - Direct control;
For starters, I want to be able to let Home Assistant send a CLEAN command via MQTT on a schedule. [DONE]
In the long run I want to add a IMU (MPU6050) and integrate this with the sensordata (odometry) from the Roomba to get mapping data. Tracks like you get with a handheld GPS. [DONE]

Then maybe do some loop-closing geodesy magic [DONE] and take full control of the driving and cleaning.











Splendide_Mendax
mikrotron
Stefan-Xp
Just curious, anyone out there using these instructions and/or library? Are you using the Roomba part or the Home Assistant part? Did some of the info here solve any problem or did it create new ones?