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

Link to the shield tutorial

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..

Link to the motors

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 -


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.

<p>May i have your mail id?</p>
<p>Hey does this have any limitations regarding the distance between the client and server laptops within which the robot would work ? And can't the laptop be replaced by a tablet?</p>
<p>The server laptop and the client laptop are connected via the Internet so as long as wifi is available it would be fine. And I'm still working on replacing the secondary laptop with a tablet but this has a major disadvantage since a tablet can't really control a fully functional Arduino. Hope this helps.</p>
<p>hii,its a really cool project.but i have a question..i am not having any servos </p><p> so can i make it without robotic arm and coffee griper ,if yes...pls send me code</p>
<p>Yeah you can. It doesn't really matter because even if you take out the arm the robot will function the same way</p>
thank you,but can you send me cods<br>
<p>Yeah you can. It doesn't really matter because even if you take out the arm the robot will function the same way</p>
<p>hii,its a really cool project.but i have a question..i am not having any servos </p><p> so can i make it without robotic arm and coffee griper ,if yes...pls send me code</p>
<p>It is a really cool project...i have a question.....the arduino is expecting serial commands from the client laptop for its movements. So can i connect the arduino to laptop via HC 05 bluetooth module to get the serial commands so that the robot dont have to carry a laptop around?...As far a the coding with processing software ,i have no clue . I am just going to use your code as it is.</p><p>Please answer my question sir ..its urgent...</p>
<p>Yes you can. I'm actually adding the bluetooth module to the robot to control it through voice recognition apps. </p><p> But because there is a shield on top of the arduino you might have to find different ways to connect the bluetooth module to the TX and RX pins of the arduino. One disadvantage of the bluetooth module is its range and I would really suggest an Arduino mega or a customized board so that you don't have to put jumper wires under the motor shield. Hope that helps.</p>
<p>can you please add a video of the controller operating the server laptop..</p><p>i just wanna know if the robot moves if the control buttons such as W, A, S, D are continuously pressed or pressed for once and the robot starts moving???</p>
<p>You only have to press once to move the robot. Hope that helps.</p>
<p>Open and run the <strong>processing server sketch </strong>on the laptop you want to control the robot with <strong>first.</strong></p><p>Then open the<strong> processing client</strong><strong>sketch</strong> on the laptop on top of the robot.</p><p>but why can not be controlled via skype?</p><p>what do you to edit skype ?</p>
<p>I don't know what you mean by editing skype but we don't need to do anything with skype though. Basically we only use skype to stream video from laptop to laptop, and the robot controlling process can be done by the processing sketches. </p>
<p>This is awesome project. I would love to see you upcoming instructables. Is it possible to use raspberry pi or beaglebone black or any other microprocessor boards instead of using the client laptop. Carrying a laptop on the robot will drain the batteries more quickly. So if you can reduce the weight then I thing that would be more fun.</p>
<p>Hi Smandal13,</p><p><br>Yep that's exactly what I'm heading toward in my future project. I might replace the Arduino and the laptop itself and put a mini Linux computer onboard instead. It will take time to reconstruct the code, but as you said before, it's far more efficient and it looks way better..</p>
<p>Such Robot, Much Arduino, So Science</p><p>-Wow! </p>
<p>wow this is cool can't wait to make it</p><p>good use of the arduino and proccesing together never thought of that use of those shields</p>

About This Instructable



More by TrungT4:Internet Controlled Telepresence Robot  Adafruit Motor Shield Tutorial  
Add instructable to: