400 likes | 598 Views
Roomba Team Cleaner. Timothy Wong Zainul Charbiwala. Flow. Introduction and Motivation Components Simulation Real World Algorithms Demo Conclusion and Future Work Thanks!. Introduction and Motivation. Introduction. What is Roomba TeamCleaner ? Co-ordinated Autonomous Cleaning
E N D
Roomba Team Cleaner • Timothy Wong • Zainul Charbiwala
Flow • Introduction and Motivation • Components • Simulation • Real World • Algorithms • Demo • Conclusion and Future Work • Thanks!
Introduction • What is Roomba TeamCleaner ? • Co-ordinated Autonomous Cleaning • Co-ordination through short range radio • Knowing where all Roombas are • Autonomous algorithms • Processing location information to figure out where next to clean
Motivation • Efficiency • Co-ordinated cleaning would finish the job faster if more resources are available • Convenience • Not required to configure virtual walls to partition multiple Roombas to different areas • Extensibility to time-critical situations • Quickly exploring an emergency site
Simulation • RoombaClass • TeamCleaner Algorithm • RoombaSim
RoombaClass • Model of Roomba behavior • Moving in a straight line at a specific velocity • When bumping into obstacles, turn around a random amount • When gone too far in a straight line, turn around a random amount • Provides accurate movement model • Provides accurate location
RoombaSim and TCAlgo • RoombaSim • Provides a framework to test various co-ordination algorithms with a notion of simulated time • Uses RoombClass to model the Roomba behavior • TeamCleaner Algorithm • Generic placeholder for any co-ordination algorithm with appropriate exports and hooks
Real World • Localization • Odometry • Cricket • Image Processing • Roomba Control • ‘Remote’ Control • Mote Control
Localization • Odometry • Cricket • Image Processing
Odometry • Roomba provides odometry data from its wheel encoders • Sensors give out distance and angle since last read • Full localization possible using only odometry if the starting point is known
Odometry (contd...) • Issues with odometry from Roomba • Angle information goes completely off when the Roomba bumps into an obstacle • Distance readings are not accurate, are within 10-15% of actual value - probably due to wheel slipping • Using virtual walls to avoid bumping does not help
Cricket • Using difference in propagation time of ultrasonic waves and radio waves to measure distance • Uses Robust Quadrilateral Approach of Cricket • Convenient and intuitive usage semantics
Cricket (contd...) • Issues with using Cricket • Coverage • Data Inconsistency • Latency • Echo from obstacles • Mounting dependency • Startup order dependency • May require data from multiple Cricket to be combined to get a better estimate
Image Processing • Find difference images • Filter out uninteresting differences • Compute location based on coordinates of colored patch and mapping from image co-ordinates to grid co-ordinates • Compute direction based on the previous position • Uses the Java Advanced Imaging API
Image Processing (contd…) • Issues with Image Processing: • Heavy initial tuning required • Lighting conditions should not change • Require to do additional continuity tests if color coding is not to be used • Extending technique to use multiple cameras with overlapping coverage is non-trivial
‘Remote’ Control • Controlling the Roomba from a Host PC • RoombaCommSOS • Extending the RoombaCommSerial ‘protocol stack’ from Tod Kurt to use MicaZ motes with SOS • Issues with Remote Control • Packet loss • High Latency • Loss of autonomy (seemingly...)
Mote Control • Controlling the Roomba from the MicaZ itself • Required changes to SOS UART driver • Porting of Java based RoombaComm driver to SOS • No UART buffering
Algorithms • (Somewhat) Random Traversal • Dirty Neighbor • Uncleaned Neighbor • Dirtiest Neighbor • Longest Line of Dirty Neighbours
Performance Random Dirty nbor Uncleaned nbor Dirtiest nbor Most dirty nbors Coverage Vs Time
Demo • RoombaDisplay • Simulation • Real World
Conclusion • Roomba is not a generic robotics platform • SOS’ event driven model is not too convenient for programming • Atmel AVR is difficult to debug ‘in system’ on a mobile platform • Avrora is a great tool but has its limitations
Conclusion • Localization is a hard problem to solve • Cricket does not solve the problem • Latency and loss issues using MicaZ radio • Difficult to capture real world behavior accurately in a simulation model !
Future Work • Localization: Using technique similar to an optical mouse • Localization: Using an Inertial Measurement Unit • Localization: Using RSSI to indicate closeness • Algorithms: Virtual Partitioning • Simulation: Adding an obstacle mask
Thanks! • NESL • Thomas, Ram, Simon, Roy, Anna, Jonathan