Introduction: Internet Controlled Telepresence Robot
In this tutorial I will show you how to build an Internet-controlled Telepresence Robot with a robotic arm for under $100.
Step 1: Basic Materials
For this tutorial, there are some must-have:
1. An Arduino board (I'm using the Arduino Uno R3 but I think any versions would work)
2. Adafruit Motor Shield v1.0 (I got this one at a local store but I think it is also available on Amazon or other similar sites)
If you haven't seen my previous tutorial on the shield, I have included the link to that site. Make sure to check my instructables first
3. High-torque DC motors * 2: I used to have a Tamiya double gearbox lying around and I was going to use it as the motors but they simply didn't work the way I expected. So instead, I got myself some high-torque 100 rpm 12v DC motors. If you can't find one at a local store, you can always order it on Amazon. I have included the link to one like mine below..
4. Servos: For the robotic arm. I will try to upload the design as soon as possible.
5. A normal DC motor and an air-pump: for the robotic arm's wrist and the coffee gripper. Again, I will try to include this in my next instructables.
6. External power supply: because we are going to use all the ports that the shield provides, we definitely need some extra juice. I'm using a 4AA battery holder with 4 rechargable 3.7v AA batteries. Although it exceeds the motors voltage requirements by a little bit, the robot still works perfectly fine to me.
7. Breadboard, jumper wires, soldering iron, etc.
8. A switch, a small LED: they all come handy in the process and these materials are not that hard to find.
9. Robotic wheels
10. Plastic sheets: For the platform and the arm
11. An extra laptop: I just went down the basement and dug out a really really old laptop. I guess any laptops would work unless it can't connect to wifi, so this project might be a good way to recycle the super old computer that hasn't been touched since the 2000s.
12. Arduino IDE, Processing, and the motor shield library (I already included it in my previous tutorial)
That's basically it..
Step 2: The Platform
Pretty simple, just a rectangular piece made out of plastic. The size of the platform will vary because it depends on the actual size of the laptop above it. I asked my uncle to cut out a 35cm*25cm piece of plastic for this project, and it works out perfectly fine.
Then I mounted the two high torque motors on the middle of each side, as well as two universal wheels at the top and the bottom of the robot
The two black wheels didn't fit with the universal wheels perfectly, so I ended up adding some kind of foam to add more height to the universal wheels to stabilize the platform. As long as the platform is parallel to the ground, it should work properly.
On top of the platform, I added something like a small box to contain all of the electrical stuff. The box also works as a place where the laptop sits on without touching the wheels, so it is kind of handy I guess..
Step 3: The Robotic Arm and the Coffee Gripper
This design is based on the U-arm's. The only difference is that instead of using a normal gripper with claws, I tried to use a more innovative approach: a coffee gripper, an universal gripper, a doraemon's hand or whatever you like to call it.
Instructions and designs will come out shortly. I promise..
Step 4: Connecting the Arduino
You must have seen the jumper wires mess already..
But actually the schematics are not as scary as you think. Basically the two servos are connected to the two ports for servos, and the right and left high-torque DC motors are connected to M1 and M2 port respectively. The air-pump is connected to M4, while the motor for the robotic arm's wrist is connected to M3.
A green LED is connected to pin 2 on the Arduino (according to the shield's manual that pin is not involved in controlling the motors) and the ground pin.
The switch is connected between the negative end of the power supply and the ground end of the shield. The positive end of the battery pack will be connected to the positive end of the shield.
And that's basically it..
Step 5: The Code
Now the fun part begins..
Upload the Arduino sketch to the Arduino and the shield through the client laptop. Just so you know, I'm not sure if your motors will spin the same way as mine. If they don't, simply change the 2 wires of the DC motor with one another. That should solve the problem.
Open and run the processing server sketch on the laptop you want to control the robot with first. What the processing server sketch will do is that it will open up a server that connects the host laptop to the laptop that controls the arduino (the one on top of the robot).
Then open the processing clientsketch on the laptop on top of the robot. If the host laptop and the client laptop are using the same network, try to find the IP address of the network. On top of the processing client sketch, there is line where you have to enter the IP address in quotes. After you have done that run the sketch.
If the host laptop and the client laptop are not using the same network, repeat the same process but you have to add one more thing: port forwarding. There are thousands of tutorials about port forwarding on the Internet so I'm not going to include it in this instructables. But if you have any questions feel free to ask me.
Open one laptop and call the other through Skype, and your robot is ready to roll.
Step 6: The Result
After you have done all the steps above properly, the result might look like this..
Step 7: Future Plans
This is the first model of my DIY telepresence robot. In the future, I might substitute the plastic frame with a more sturdy aluminum one. I can also make some improvements on the arm by using stepper motors instead of servos since they are way more accurate.
I'm currently developing a sketch that allows users to switch between the internet-control mode and the autonomous mode. The new version will include some extra features such as turning around if faces obstacles, controlling the arm to execute a certain set of actions repeatedly with high precision, or even recognizing voice commands and doing what the users say via a smart phone and bluetooth connection.
But that's it for now. Follow me if you are interested or leave any comments below if you have any questions. Thanks for checking out my instructables and I wish you the best with your future projects.
"As I've always said: The future lies ahead." - Pat Paulsen -
Step 8: [UPDATE] EPILOG VII CONTEST
Please vote for me in the Epilog VII contest. If I won this contest, the laser cutter would be used to create a better body for the robot as well as the robotic arm. It can also be used to cut out certain parts for my upcoming projects, including a dorm automation device and an autonomous GPS-based vehicle.
Again thank you for spending some time checking out my instructables.