How I built an autonomous cleaning robot | Showcase by Altanai
This is a transcript of the talk given by Altanai at Git Commit Show 2019
Table of contents
- About the speaker
- Demo of the project - Ramudroid
- Hardware components of the robot
- How everything works
- Software tech stack
- Learn WebRTC
- Questions and answers
About the speaker
Altanai Bisht is a telecom VOIP engineer who works on WebRTC and streaming related projects. She is an author of book "WebRTC Integrator's Guide". Ramudroid is one of the open-source projects that she has pursued over the years. For more info, checkout her Twitter, LinkedIn and GitHub.
Demo of the project Ramudroid
Ramudroid v7 is a self-navigating robot which tracks and cleans the litter
Hardware components of the robot
Main hardware components of Ramudroid are
- 60 Watt Solar Panel(5 kg)
- Bin to collect the trash
- Brushes which go clockwise and anti clockwise
- Rasberry Pi
How everything works
Let's connect the dots and understand how things are working
- The rear wheels are moving with the help of the motor. The front ones are free to rotate. It is the same as remote controlled cars we played with as a kid.
- There is a bin over it which collects all the litter at one place.
- The front wheels take the vehicle forward, the brushes are connected to motors which collect the litter and throw into the bin.
- We have a 12V, 50W solar panel which powers the whole system with the help of a 12V battery.
- Now, for the litter detection, we use a camera mounted near the solar panel. This camera captures the image and with the help of image processing, we are able to detect the waste.
- For the computing part, we have an arduino installed in the vehicle along with the wifi card which helps us to communicate with the device remotely.
- Working of all the parts together can be seen by clicking here.
Ramudroid v7 uses Solar energy as the main driver energy source rather than using batteries. Since the energy output of solar panels is relatively low, we need to have a really efficient use of the energy we have. For that, we turn on the motors only when the front camera detects some garbage in it's way.
Software tech stack
The complete source code and the design for the project is open-sourced on GitHub. It uses the following software tech stack
For image processing work in detecting the litter
- Tracking.js - A library that brings different computer vision algorithms and techniques into the browser environment.
- OpenCV - A library of programming functions for real-time computer vision. The project uses this for the image processing work in detecting litter.
For sharing data/commands between web based controller dashboard and the robot
- WebRTC - An open-source project providing web browsers and mobile applications with real-time communication via API(application programming interfaces) for real-time streaming. It allows audio and video communication to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.
WebRTC is the key technology in this project that established real time communication between the robot and its web based controller dashboard.
RTC in WebRTC stands for Real Time Communications. It is one of the leading way to implement real time communication on web. It is supported by most of the modern browsers such as Safari, Chrome, Firefox, Edge, etc. Browsers provide easy to use APIs to use WebRTC in websites that can be used to implement real time chat, audio/video calls, file sharing and much more. It establishes peer-to-peer connection between two computers to achieve this. WebRTC is widely adopted by companies such as WhatsApp, Messenger, SnapChat, etc.
You can start using it with the help of various clients using WebRTC stack like - jsSIP, SIPML etc; SIP servers like FreeSwitch, SIP:Wise, Asterisk etc.
There are many reasons to use WebRTC. Some of those are:
- Open-Source Software
- Adoption is easy and is market impetus
- Customisation Options
- Royality free codecs
- It is becoming more secure with time
- ICE for NAT
Application of WebRTC in IOT
Resources to learn about WebRTC
Importance of WebRTC in Voip and Telecom sector
The calls that we get from banks, credit card companies are mostly built with the help of a WebRTC client which integrates many services in the backend. This shows how important WebRTC is for these industries.
Question and answers
1. What is the impact of this project?
This project was made while the Swaccha Bharat Abhiyan (Clean India Mission) was very popular. Main goal of this project was to automate every process involved in the cleaning. Though this project was made slowly, it is an open source project and people have helped in making this project.
2. What are the challenges while making Ramudroid?
- Indian roads are not smooth so the design has to be sturdy enough to make the device withstand the mud, holes etc.
- Detection of recyclable waste from non-recyclable one. Companies are still trying ways to automate that.
3. How was waste detected and segregated?
Ready-made XML datasets were provided by people and those were used in training ML model which is used in the detection.
This was the part 1/2 of the Ramudroid project's showcase by Altanai. To learn about how Altanai improved the project a year later, watch the 2nd part of this showcase.
For more such talks, attend Git Commit Show live. The next season is coming soon!