Library for controlling iRobot Roomba robots.
Copyright (c) 2022, 2023, 2024 Peter Hagelund
This software is licensed under the MIT License
See LICENSE
Please note: Pay particular attention to the bottom half of the MIT license that talks about the software being provided "AS IS"
and that there is no warranty of any kind. If you choose to utilize this software to control (or at least attempt to control) a physical
device in the real world, you run the risk of damaging the vaccum cleaner and/or your dwelling and/or any furniture or other
belongings you may keep there and/or any carbon-based lifeforms that might inhabit your space. This is especially true if you
choose to place the Roomba
OI in full
mode - in which case all of the failsafes the talented iRobot engineers have put in place
are completely disabled. In full
mode you run the risk of not catching an overcurrent condition in the motors, having the vacuum
cleaner fall down a staircase, and possibly hit and ingest your pet(s) or a child. Read the OI specification
very carefully and test your software to destruction before letting this thing loose in your house. Ye be warned!
Please note: I am in no way affiliated with iRobot or any of its subsidiaries or suppliers. I have used their products for several years (my first one was a Roomba Red) and have written libraries similar to this one in Java, C, C++, Golang, Swift, and likely other languages simply because I enjoy doing so.
TO DO
# TO DO
Please note: If your code fails at any time after instructing the Roomba
to drive, it will continue to drive until some piece of code stops it,
so (much more) error handling (see below) is needed than what is described above.
Under the covers the Roomba
communicates with a real-world, physical vacuum cleaner, so anything can go wrong at any time.
All methods raise an Exception
when something fails, so make sure you implement proper error handling.