There are a lot of dangerous situations where robots are needed. Currently these robots can cost $10,000+ to be able to do proper autonomous exploration. If we can create a cheap and effective robot then they can be used more frequently in the field to create on the fly floorplans, Simultaneous Localization And Mapping (SLAM), etc.

What it does

Autonomously explores using Lidar to determine the environment around it and process the data points to build a 2D environment.

How we built it

We used Lidar for building the environment around the roomba. The Lidar is able to take several hundred samples/second to within 2mm accuracy. With this we can feed the information to the laptop, have it build the environment and then based off what it "sees", have the algorithm decide where to send the roomba from there.

Challenges we ran into

There was no API to interact with the Lidar. Because of this we first needed to read through datasheets and test communication to the Lidar by investigating the packets we send and received. During the API writing (in Python) we used a Queue to be able to have a set amount of information. The Queue in Python apparently blocks once it becomes full and continues to block even once you clear the data. This was quite hard to see since there's no way to tell why it seemed to be hanging since it is also multi-threaded.

Accomplishments that we're proud of

Being able to communicate with the Lidar. Being able to communicate with the roomba. Being able to design and implement an algorithm and GUI for navigation

What we learned

Breaks will save your mind. Most importantly we learned that when you're confronted with a big problem that seems un-passable, do something else for a while. We ended up taking many breaks and then have those "A-HA!" moments while doing other stuff.

What's next for Roombaaaaaaaaaaa

Use either a Raspberry Pi or an Arduino, or potentially an nVIDIA Jetson to do the algorithm. We would also like to eliminate the tethering to the computer all together and later implement a wireless transmission to the laptop for the GUI part.

Built With

  • icreate
  • lidar
  • python
  • roomba
  • rplidar
Share this project: