The purpose of this project is to enhance the functionality and capabilities of my iRobot Roomba 690 robot vacuum by adding a Raspberry Pi Zero 2W and IMU. One of the goals of this project is to be a 'stealthy' mod; I don't want there to be any external changes to the Roomba that could interfere with its primary purpose of, well, vacuuming. I have several goals in mind for this project:
- No external changes to the Roomba, or changes that would adversely affect its vacuuming ability.
- Enable remote control via a Bluetooth controller.
- Use this enhanced Roomba as a platform for learning the Robot Operating System (ROS).
- Connect the Roomba RPi ROS instance to Home Assistant Note: I know that the Roomba 690 has built-in WiFi and that there is a Roomba plugin for Home Assistant, however I was only able to get it to work for a short time before the Roomba Home Assistant plugin inexplicably ceased to work.
- Use the added IMU plus the Roomba's built in sensors to improve the cleaning routine with inertial navigation.
Cool to see we have similar goals, yet a different approach to a solution :) You're going the full ROS/Raspberry route, and I'm doing the Arduino/ESP8266 thing.
https://hackaday.io/project/183524-controll-yer-roomba-600-series-with-esp8266
I've got the Home Assistant integration pretty figured out though. Using MQTT with autodiscovery works great. Check out my project for examples on event-triggers, sensordata, actions/buttons and a camera-entity as a map.
Do you have any results or progress for navigation/mapping and integration of IMU and wheel-encoder data? I'm curious if adding a cheap IMU will be accurate enough to do a map of a full cleaning session.