The Covid 19 pandemic changed the whole scenario of job culture in the world. People have moved to go for options like remote work and hybrid work modes. If you happen to keep up with the latest trends in robotics and industrial automation, then terms like teleoperation and telepresence robots probably sound familiar.
Teleoperated robots are remotely controlled robots, they might have some sort of Artificial Intelligence, but normally they take their command from a human operator and execute exactly as instructed. They can be controlled by a user from any place in the world over the Internet. Signals are sent to the robot to control it; other signals come back, telling the operator that the robot has followed the instructions. These control and return signals are called telemetry. Most teleoperated robots are task-oriented and have a limited range of functions.
Since the COVID-19 pandemic began, interest in teleoperated robots has grown significantly, primarily due to the rising demand for contact-less delivery. In this delivery model, purchases are delivered the last mile without the need for the customer to come face-to-face with a human delivery driver.
I am working on a teleoperated robot that can be controlled by anyone in the world over the internet by having the correct credentials of the robot.
The below image shows a rough figure of the final outcome robot which I plan to make.
The robot would be having 4 DC Motors for controlling the robot’s movement. I will use the L298N motor driver onboard the DRI0017 2x2A Motor Shield for Arduino Twin for controlling the DC motors. As I can control only two motors using the L298N, I will control two left and two right motors using the left and right motor control terminals.
A gripper arm would be attached on top of the Robot base which can be used to interact with objects. The arm would be having two servo motors, one would be used for controlling the gripper angle and the second would be used to control the orientation of the angle.
I will try to use the Gravity: IO Expansion & Motor Driver Shield for controlling the two Servo Motors for controlling the position of the gripper and the orientation of the arm
Firebase Realtime Database
Firebase uses NoSQL database for storing data in a Realtime Database. The data is not stored in the tables and rows found in relational database management systems (RDBMS) nor is the data accessed using Structured Query Language (SQL) statements.
JSON objects typically consist of a key/value pair, where the key uniquely identifies the object within the database and the value represents the data that is being stored. Multiple JSON objects are structured in the form of a JSON tree.
As the robot would need to be connected to the internet to be controlled remotely, I will use the ESP8266 WiFi Bee with the DFR0502 Gravity: IO Expansion board to connect it to the WiFi. I will also try to make use of the TB6612FNG dual motor driver for controlling the servo motors.
The Firebase real-time database credentials would be used as a security measure for controlling the privacy and security of the robot.
The GUI would be made using Python and PyQT5 library. The GUI would be having several buttons for controlling the direction of the robot. It would be having two sliders, one for controlling the gripper at the end of the Arm and the second slider for controlling the orientation of the Arm.
TE Connectors to be Used
As of now, I plan to use the following TE connectors for my project -
1) 2367819-2 Contact
2) 2-2366515-4 Connector Housing
3) 1-2366600-4 Connector Housing
4) 1891526-1 Extraction Tool
5) M8 Series Connector Male
6) M8 Series Connector Female
I will include more connectors in the project once I receive the kit and I start working on them and testing the connectors.
Past projects similar to this one
Teleoperation Robot using ESP32 and Firebase Realtime Database
A few months back, I worked on an Internet Controlled Teleoperation Robot which can be controlled over the internet by anyone having the credentials. I used an ESP32 connected to the Internet which reads data from the Firebase database. It had two DC motors for controlling the robot's movement. It had a servo motor which was used to open and close a small gripper arm. It also had a LED light attached at the top.
I made a Desktop GUI using Python and PyQT5 library for controlling the robot. The keys and the slider in the GUI are used to change and update the values in the Firebase Realtime Database. The ESP32 reads the updated data from the Firebase Realtime Database and updates it to control the direction of the motor controls, the position of the Servo motor, and the state of the LED.
*I won the Best Hardware Hack Prize at Citrus Hack 2022
Here’s the project demo video link - https://youtu.be/-GRcAUDAfNU
Using Firebase Realtime Database to Control Robots Remotely over the Internet
I was recently selected as a speaker at the Annual ROS Developers Day 2022 conference organized by The Construct. I was one of the 8 speakers and I presented my project “Using Firebase Realtime Database to Control Robots Remotely over the Internet – ROS1”.
I presented my project on controlling a robot over the Internet using the Firebase Realtime database. As it was an online conference, I used a robot simulation for demonstration. I created the GUI using Python and integrated it with Firebase to update the data to the database. The code running on the Robot collected the updated data from the database and used it for controlling the robot’s movement and the position of the gripper arm.
Here’s the link for the ROS Developers Day website featuring the speakers including me - https://www.theconstructsim.com/ros-developers-day-2022/#Speaker
I am already working on the project using my own kits. I will share updates about the project in the next blogs.