I'm an artist with basically no programming background. I need to make my roombas (3 of them) move around a gallery space throughout the day and night (the gallery will be visible from street view 24 hours a day). The show will last about 4 months, so I was wondering if there's a way to automatically schedule such a thing using the Create 2. (The customer service rep said there's a regular model with an app control, but it sounds like someone would have to manually re-set the roomba every time it's done charging). The roombas do not have to be good at cleaning, or anything other than moving, so if there's also a way to minimize the workload of the machine to maximize it's lifespan, I'd be curious if that's possible as well. Thanks so much for your help, roomba programmers!
1 Answer
If I understand you right, you want to achieve that three roombas clean 24 hours a day, just making a break if they need to recharge and then continue. The Create 2 is a roomba robot that is similar to the 600-series, but some article says it can not clean, which is good as this saves the energy that would be needed to drive the vaccum and brush motors. This also extremly reduces the noise!
Unfortunately, roombas are only able to be schedule for cleaning once a day just using the normal user interface. This means the robot will move around and "clean" until it thinks its enough for the room size it detects or it's battery is nearly depleated and then move back its charging station. For a large hall this typically means the robot should clean until it's battery is empty. For my 500-series roomba the battery lasts for about 1,5 hours. If not really cleaning, the battery might last much longer! However, the battery discharges even the robot isn't moving or cleaning, since the electronics (control board) draw a noticable amount of energy. This means, the roomba would stop its work for this day and continue cleaning the next day. If you have three of them you can schedule one of them to clean at 0:00am, 8:00am and 4:00pm. But, that's surely not enough.
To make them all clean again as soon as it recharged, you need to influence the devices in one or the other way. Means: You need additional hardware or a person who does it manually. If you know someone who has access to some electronics and can do microcontroller programming (e.g. arduino) stuff well you can use the open interface of the roomba. There is some serial port to control the roomba and to get information from it. If you don't want to control the robot, but just need to restart cleaning its quite easy: * build a serial connection to the roomba (5V-Arduino prefered)
- send a "START" and "SAFE MODE" command to the robot to be able to observe its state
- check if it is placed on a charging station. If not: "STOP" and sleep some minutes and repeat.
- if its on a charging station and finished recharging -> start "MAX" cleaning mode
- observe the battery status, if it's getting too low: -> activate "Docking mode"
- if docked, execute "STOP" command (else it won't recharge!)
- repeat steps
To optimize you might already restart the cleaning at 80-90% of battery charge, as the last 10-20% of recharging take much longer.
The programming itself isn't too hard, but you need: 1. a microcontroller (e.g. Arduino) 2. someone who is able to do the electronics (connections to the robot), if you can't do it yourself 3. someone to do simple (arduino-)programming stuff (mainly serial port communication)
If you would send me a video of the installation, I would do the programming for you. But, I assume that I cannot come over and modify the roomba for you to install an arduino to it. Nor can I upload the software to your arduino. So it makes more sense if you would find someone nearby who can do it. Give them a link to the open interface spec, which tells them basically how to connect an arduino and how to execute commands via serial port commands.