Python program and library to control Wi-Fi enabled iRobot Roombas


License
MIT
Install
pip install roombasdk==1.7.8

Documentation

roombasdk

CI PyPI PyPI - Downloads PyPI - License

Unofficial iRobot Roomba python library (SDK).

Fork of NickWaterton/Roomba980-Python
Fork of pschmitt/roombapy

This library was created for the Home Assistant Roomba integration.

Installation

pip install roombasdk

Notes

This library is only for firmware 2.x.x Check your robot version!

Only local connections are supported.

How to get your username/blid and password

To get password from Roomba type in console:

$ roomba-password <ip>

It will find your Roomba in local network, then follow the instructions in console to get password. If IP address not provided password will be request for auto discovered robot.

Also you can just ask Roomba for info:

$ roomba-discovery <optional ip address>

To test connection with iRobot:

$ roomba-connect <ip> <password>

Mapping Information

The Roomba position is given as three coordinates: x, y, and theta. The unit of measure for x and y is cm, theta is degrees. The origin of the mapping coordinates is the position of the dock, which will have coordinates (0,0,0)

Coordinates

  • Dock Front = -y
  • Dock Back = +y
  • Dock Left = -x
  • Dock Right = -y
         | -y 
         |
-x -------------- +x
         |
         | +y

Coordinates for Map Definitions

When defining maps, you will need to define two points, the upper left p1 and lower right p2. These coordinates would yield the maximum range for the roomba and will be translated into the image coordinate system automatically.

p1       | -y 
         |
-x -------------- +x
         |
         | +y   p2

Degrees

Roomba reports positive degrees when turning left, and negative degrees when turning right, yielding a counter-clockwise direction.

         0
         | 
         |
90 -------------- -90
         |
         |
      -180/180