Controlling a Robot From Anywhere

Posted on 03/09/2013 by mohammad_adib
Modified on: 13/09/2018
Project
Press to mark as completed
Introduction
This is an automatic import from our previous community platform. Some things can look imperfect.

If you are the original author, please access your User Control Panel and update it.

Introduction: I'm Mohammad Adib, I'm from the US, I'm 17, and this was my summer project. It's a vision I had in mind for a long time; To make a robot that I can control from anywhere. Working as a Roboticist, I make controller software for telepresence robots! So this was the perfect side project for the summer. I wanted to make a capable offroad vehicle that I can control from sitting in my room.The Robot: So this was the final outcome after 2 months of work. The chassis is a Wild Thumper by Dagu ...


Controlling a Robot From Anywhere

Introduction:

I'm Mohammad Adib, I'm from the US, I'm 17, and this was my summer project. It's a vision I had in mind for a long time; To make a robot that I can control from anywhere. Working as a Roboticist, I make controller software for telepresence robots! So this was the perfect side project for the summer. I wanted to make a capable offroad vehicle that I can control from sitting in my room.

The Robot:

So this was the final outcome after 2 months of work. The chassis is a Wild Thumper by Dagu and I have to say its a great chassis for building robots on, and I look forward to moving the internals of this robot into the TREX chassis that is soon to release. I hope that turns better on grass and carpet.

Shortly after making the robot, I showcased it in my TEDx Talk (first video to the right). 

How it works:

The Robot works by sending and receiving data over the internet using a 4G LTE Hotspot. I won't get into the technicalities here, but it basically has a pcDuino sitting at the heart of it with a Wi-Fi dongle connected to the hotspot. The pcDuino then talks to the WIld Thumper Controller over serial and voila! We have a working Robot. The Nexus 4 mount is a 3D Printed tilt mechanism with an imbedded servo. The only purpose of the phone is additional sensors and ofcourse, Skype.

In terms of using sensors, the Robot uses a photoresistor to automatically switch on the headlights when it's dark, but they can be manually controlled as well.

I did end up hitting it hard on a wheel one time and totally destroyed the axle on the motor. Getting the entire thing taken apart just to replace a motor (which I bought from Polulu; Thank god they exist) was a bit tedious.

Programming:

C - the Arduino on the Wild Thumper Controller needs runs Arduino C which listens for commands over the serial interface.

C++ - on the pcDuino, C++ is used to put the pins in serial mode on boot.

Python - Runs a server internally in the robot on port 8080, listening for commands to forward to the Arduino.

Java - TCP Client running all the time trying to communicate with a server if it's up, then forwarding that data to 127.0.0.1:8080 which is the Python server on the same pcDuino.

Why use 4 different languages at the same time? Because I was feeling lazy and used what I knew, and though I'm sure it can all be done in C or Python just fine, I doubt it would make a difference since LTE itself has ping times exceeding 100ms on average. A few extra milliseconds won't make much of a difference, and it's already flawlessly instant.

Controllers:

The Controller mechanism can be anything with an internet connection. I used a joystick with my laptop (using C#) and also (for the most part) an Android app made specifically for this robot.

Conclusion:

All this was worth it, when I drove it far away from my house while sitting in my room controlling it. One of the coolest things I have done with a Robot yet. 

This is my first LMR post, and I hope to post more of the projects I do here. Thanks to Dagu's Oddbot for posting on LMR to get me inspired to actually showcase this thing. And thanks to Dagu for such an excellent chassis and as I said, I'll be the first to jump on that TREX tank chassis and make that controllable from anywhere too.

 


 

 

AT&T's network has internal NAT, so the robot has to be the client, and me the server. This will change after I replace the pcDuino with a Raspberry Pi. Although not as capable, the Rpi supports VPN and is fast enough to query commands to an Arduino via serial

 


 

Pictures of the finished product:

Love the suspension on the Wild Thumper chassis!

A Robot that is remotely controlled over the internet!

  • Control method: Anything with internet!
  • CPU: Arduino, pcDuino
  • Operating system: Linux
  • Power source: 10000mah LiPo
  • Programming language: C++, Java, C, Python
  • Sensors / input devices: light sensor
  • Target environment: outdoor
Flag this post

Thanks for helping to keep our community civil!


Notify staff privately
It's Spam
This post is an advertisement, or vandalism. It is not useful or relevant to the current topic.

You flagged this as spam. Undo flag.Flag Post