Introduction: Robot Controlling System Based on Internet of Things (Teleoperation)


Internet of Things (IoT) is a new revolution of the Internet. It ables to connect remote and mobile things or machines or assets through the use of wireless communications and low-cost sensors, computing and storage devices. So, the Internet is now advancing from a network of computers to a network of things. IoT has huge application area such as traffic monitoring, smart homes, smart parking management, vehicle tracking system and other industrial applications etc.

This project shows you how to use Internet of Things (IoT) for controlling Robot remotely (anywhere), provided that your robot is connected to the Internet.


Teleoperation (or remote operation) indicates operation of a system or machine at a certain distance. It is similar in meaning to the phrase remote control but is usually encountered in research, academic and technical environments. It is most commonly associated with mobile robots but can be applied to a whole range of circumstances in which a device or machinehas to be teleoperated at distance.

Radio frequency based teleoperation system such as wireless Joystick and RC remote control are widely used for operating robots. Those system require line of sight to ensure the robot situation awareness. The range barriers are the main problem of those system. Due to them the link can be disconnected which could be harmful for robots.

In this project, I present a long range teleoperation system based on Internet of Things (IoT). Although the system depends upon the internet connection, it allows to cross the range limits. The proposed teleoperating system can be used on any device with an Internet connection to control robots of any type (e.g., wheeled, aerial and humanoid). Applications of this system in non-robotic domains are possible as well. I used the system to control a mobile robot illustrated in Figure-1 without range barriers provided that the robot and the remote control device must be connected to the Internet. Range comparison between our system and the existing system is also provided.

Internet of Things (IoT)

Internet of Things (IoT) is an emerging technology which was first proposed to study RFID by Ashton, Professor of the MIT Auto-ID Center in 1999. IoT is a major drive to support service composition with various applications. It enables objects surrounding us with the ability to communicate each other through the Internet. The popular architecture of IoT is illustrated in Fig. 2. It consists of three layers: Perception layer, Network layer and Application layer. Sensors, Actuators, RFID tags and other smart terminals are connected to the IoT from the perception layer. Network layer is responsible for the communication between things and human beings. Abundant applications are provided by the application layer [1] [2].

Terms and Basic Definitions

  • Internet of Things: A network of internet-connected objects able to collect and exchange data using embedded sensors.
  • Internet of Things device: Any stand-alone Internet-connected device that can be monitored and/or controlled from a remote location.
  • Internet of Things ecosystem: All the components that enable businesses, governments, and consumers to connect to their IoT devices, including remotes, dashboards, networks, gateways, analytics, data storage, and security.
  • Entity: Includes businesses, governments, and consumers.
  • Physical layer: The hardware that makes an IoT device, including sensors and networking gear.
  • Network layer: Responsible for transmitting the data collected by the physical layer to different devices.
  • Application layer: This includes the protocols and interfaces that devices use to identify and communicate with each other.
  • Dashboard: Displays information about the IoT ecosystem to users and enables them to control their IoT ecosystem. It is generally housed on a remote.
  • Analytics: Software systems that analyze the data generated by IoT devices. The analysis can be used for a variety of scenarios, such as predictive maintenance.
  • Data storage: Where data from IoT devices is stored.
  • Networks: The internet communication layer that enables the entity to communicate with their device, and sometimes enables devices to communicate with each other.


  1. A. Whitmore, A. Agarwal and L. Xu, "The Internet of Things--A Survey of Topics and Trends," Information Systems
  2. S. Li, L. D. Xu and S. Zhao, "The Internet of Things: A Survey," Information Systems Frontiers, vol. 17, pp. 243-259, 2015.

Step 1: Hardware and Software Requirments


  1. Pioneer3AT robot or any mobile robot supported by ROS (Robot Operating System).
  2. 3G/4G Modem
  3. One notebook with ROS
  4. One Smart Phone (used for IoT connected Remote for Robot)


  1. Robot operating system (ROS)
  2. Intel XDK (for developing Mobile Apps)
  3. Ubidots Cloud Account (used as a Iot Cloud)

Hardware setup

  1. Place the notebook on top of the robot.
  2. connect the robot with notebook PC via USB cable.
  3. Connect the Modem with the Notebook PC via USB. (be sure that, Internet connection is working).

Run the robot using ROS

  1. Power on the robot by pressing the ON button.
  2. setup and run the pioneer robot driver using ROS. please refer the page for downloading and installing pioneer3at driver for ROS and this Video for installing ROS on your System.

  3. Create a data-source on ubidots cloud and named it as ....... follow the tutorials for creating dataset and variable.
  4. Download the ROS Iot-teleoperation Package from this repository.

  5. Place your token and variable name on the source file (follow the README file for more details).
  6. Compile the package. please follow the installation instructions on README FIle.
  7. After compilation Run the IoT-teleoperation package.

if there is no error then you complete the setup successfully.

Running the Mobile Application

  1. Download and install the Intel XDK.
  2. Download the source code from git repository.
  3. Open the project using intel xdk (follow the README for more details)
  4. Place your token and variable id on source (please refer README file)
  5. Build and run the project using intel XDK.

Now you can able to control your robot using IoT. Check the video for demo.

Robotics Contest 2017

Participated in the
Robotics Contest 2017