SlideShare a Scribd company logo
1 of 39
Download to read offline
NXTTour: An Open Source Robotic System
Operated over the Internet
João Alves, Sancho Oliveira and Anders Christensen
Departamento de Ciências e Tecnologias da Informação
OSDOC’13, July 11, 2013, Lisbon, Portugal
Contents
1 Introduction
2 Related Work
3 System Prototype
4 Preliminary Experiments
5 Conclusion
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 2 / 37
Introduction
Contents
1 Introduction
2 Related Work
3 System Prototype
4 Preliminary Experiments
5 Conclusion
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 3 / 37
Introduction
Introduction
To demonstrate a low-cost robot that can be tele-operated over
the internet using open source software.
Differential drive robot based on the LEGO Mindstorms
NXT and an Android smartphone
Compatible with the most commonly used modern internet
browsers
Compatible with several versions of Android
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 4 / 37
Introduction
Introduction
The work presented in this paper relies exclusively on open
source software.
Our system is a generic prototype of a tele-operated robot
Tele-operated robots have many potential uses since they
allow users to have a presence, to explore, and sometimes
even to perform actions remotely
Uses internet as the communication medium, so it can be
operated independently of the location of the user
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 5 / 37
Related Work
Contents
1 Introduction
2 Related Work
3 System Prototype
4 Preliminary Experiments
5 Conclusion
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 6 / 37
Related Work
Related Work
The work presented in this paper is related to autonomous, mobile robots and to
tele-operated robots.
To simplify the design of robotic controllers, Brooks [2] proposed the
subsumption architecture
The presence of video and mapped information can help in a navigation
tasks as Nielsen [6] concludes in his work
The design of a controller even for a simple task such as obstacle avoidance
can be non-trivial as Grechanovsky et al. [4] concludes in is study
The Stanford Cart was presented by Moravec [5] and uses the images from
the camera to plan its path and to avoid obstacles identified visually
Thrun et al. [7] built a robot for the Smithsonian Museum that was an
interactive guide
A robot that can be controlled over the internet was presented in Bianchini
et al. [1]
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 7 / 37
System Prototype
Contents
1 Introduction
2 Related Work
3 System Prototype
Overview
Technologies
Communications
The Robot
The NXTSlave Module
Mode of operation – SELF
Mode of operation – OPERATOR
Communication Protocol – NXT2Android
The NXTController Module
Web Server
Dynamic Registration
The NXTBrowser Module
Authentication Process
Implementation
4 Preliminary Experiments
5 Conclusion
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 8 / 37
System Prototype Overview
Overview
Several modules
Developed independently
Interfaces and simple communication protocols between
the modules
Extensible code base
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 9 / 37
System Prototype Technologies
Technologies
We resorted to a number of technologies in the design and
development of the system prototype:
A Lego NXT Mindstorms kit was used to build the robot
The leJOS1
firmware replacement was used for the
NXTSlave module
The Android Software Development Kit (SDK) was used for
the NXTController module
Standard technologies such as HTML, javascript and
Cascading Style Sheets (CSS) were used for NXTBrowser
module
1
http://lejos.sourceforge.net/
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 10 / 37
System Prototype Communications
Communications
The three modules communicate with each other through
different means of communication and using different protocols,
some standard, others implemented specifically for the system
prototype.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 11 / 37
System Prototype The Robot
The Robot
Actuators:
rear end working in
reverse
Sensors:
Touch sensor
Color sensor
Lleft ultrasonic sensor
Right ultrasonic sensor
The robot, built with the LEGO Mindstorms NXT, is a differential
drive robot that uses two motors, each connected to the rear
wheels. The robot’s front wheel is a passive caster wheel. The
robot has an adaptable support for an Android smartphone.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 12 / 37
System Prototype The NXTSlave Module
The NXTSlave Module
Runs on the LEGO Mindstorms NXT system
Translates the commands issued by the operator into actual
movement
Collects and sends sensory information back to the operator
Self-preservation mode that can subsume control
Implements autonomous obstacle avoidance and recovery
behaviors
Communicates with the control module, NXTController,
through Bluetooth.
written in Java language and uses the leJOS firmware
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 13 / 37
System Prototype The NXTSlave Module
The NXTSlave Module
The logic to prevent collisions with obstacles and to recover
from dangerous situations such as when the robot is about to
drive over an edge is implemented in this module.
The robot has two modes of operation: ”SELF” and
”OPERATOR”. The mode determines how the robot is
controlled.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 14 / 37
System Prototype The NXTSlave Module
Mode of operation – SELF
This mode is the Self-preservation mode. The robot depending on
the readings of sensors, switches to this mode — SELF mode.
When an obstacle is sensed through one of the ultrasonic
sensors, the robot stops immediately and checks if the obstacle
is temporary or permanent.
If the obstacle is permanent, the robot performs an avoidance
maneuver: the robot moves straight backward, backward left,
or backward right depending on obstacle’s relative location.
If the touch sensor is activated, it means that the third passive
wheel no longer touches the ground and that the robot is about
to drive over an edge. In this situation, the robot performs a
movement backward in order to recover and avoid falling.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 15 / 37
System Prototype The NXTSlave Module
Mode of operation – OPERATOR
As long as there are no dangerous situations, the robot executes
the commands sent by the NXTController. The NXTSlave has a
set of preconfigured actions (move left, move right, move
forward and stop) that can be requested by the NXTController.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 16 / 37
System Prototype The NXTSlave Module
Communication Protocol – NXT2Android
Uses Bluetooth
NXTController receives the status of the sensors from
NXTSlave
Minimize bandwidth usage
Maximize the responsiveness of the system
Messages are composed of an header with an ID, followed
by a Byte indicating the message type, and then the
payload.
The information exchanged can be regarding the battery voltage
of NXT, sensory readings, the current control mode, and so on.
Messages are only sent to the NXTController when values
change.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 17 / 37
System Prototype The NXTController Module
The NXTController Module
Runs on an Android
smartphone
Responsible for receiving the
operator’s commands and
sending them to the NXTSlave
Captures and transmits video
to the NXTBrowser
Forwards sensory information
and overall system status
information
User interface for the
configuration of all parts of the
system
Establishes the connections to
the other modules
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 18 / 37
System Prototype The NXTController Module
Web Server
The NXTController runs a web server based on NANOHTTPd2
enabling the module to communicate using the HyperText
Transfer Protocol (HTTP) protocol with NXTBrowser module.
A fixed uniform resource locator (URL) based on a dynamic
registration system was implemented to allow the system to be
always accessible.
2
http://elonen.iki.fi/code/nanohttpd/
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 19 / 37
System Prototype The NXTController Module
Dynamic Registration
Given the volatility of IP addresses that are often dynamically
assigned, we developed a registration system to facilitate a
simple connection process. When the NXTController web server
starts, it registers its newly assigned IP address on a server with
a fixed name (address set in the options as ”address
publishing-site”). When the user navigates to the URL of the
server with a fixed name (eg. http://jpralves.net/51),
the server will automatically redirect the user to the current
address of the NXTController. When the web server is disabled,
redirection is also disabled.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 20 / 37
System Prototype The NXTBrowser Module
The NXTBrowser Module
The NXTBrowser module runs in a browser:
User interface exposed to the operator
Receives context information from the robot
Sends commands to it
The NXTController module runs an embedded web server
to which NXTBrowser connects.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 21 / 37
System Prototype The NXTBrowser Module
The NXTBrowser Module
The NXTBrowser has an interface that provides the operator with sensory
information:
(a, b) obstacles proximity (color codes)
(c, d) measured distance
(e) touch sensor state
(f, g) tachometers of motors
(c) remote video
(h) information about the NXTSlave
(j) information about Android
(k) Four buttons of command
(l) operation mode
(m) video feed
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 22 / 37
System Prototype The NXTBrowser Module
Authentication Process
To prevent unauthorized access to the robot, the operator must
type in the correct password before a session can begin. The
embedded web server will only allow access to control of the
robot in the address that is the result of the SHA-1 hash [3] of
the password concatenated with a random key that is sent by it
(SALT).
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 23 / 37
System Prototype The NXTBrowser Module
Implementation
User interface is partly based on jQuery3
Followed a design that would allow the use in all kinds of
devices with at least a resolution of 1024 × 600 pixels
Has four buttons that allow the operator to interact with the
robot
Receives JSON messages from the server about state
information
3
http://www.jquery.com
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 24 / 37
Preliminary Experiments
Contents
1 Introduction
2 Related Work
3 System Prototype
4 Preliminary Experiments
NXTBrowser
NXTController
NXTSlave
NXTSlave - risk of falling down stairs
NXTSlave - obstacle detection and avoidance
5 Conclusion
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 25 / 37
Preliminary Experiments
Preliminary Experiments
A number of preliminary experiments were done to assess the
system prototype. A different set of experiments was designed
for each module.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 26 / 37
Preliminary Experiments NXTBrowser
NXTBrowser
Since NXTBrowser runs in a browser and since no standard currently
exists for streaming video that works across all browsers, the video
feed in the system prototype is, in fact, implemented as a sequence of
JPEG images captured by the camera of the Android device onboard
the robot.
Tests were performed with four browsers representing the most
important rendering engines:
Engine Browser Version Site Video
Trident IE 9
Wekbit Chrome 22
Webkit Safari 6
Gecko Firefox 16
All the tested browsers successfully presented the HTML-based
user interface and the video feed.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 27 / 37
Preliminary Experiments NXTController
NXTController
Extensive tests were made assess the compatibility of the
NXTController with different Android devices and OS versions.
Eight different Android handsets were tested and all of them
were able to run the NXTController module successfully. The
following table lists the Android devices tested and their
specification:
Brand / Model Version CPU RAM Screen Weight
Google / Nexus S 4.1.2 1 GHz Cortex-A8 512MB 480 × 800 129g
Samsung / GT-S6500D 2.3.6 800 MHz Cortex-A5 512MB 320 × 480 105g
Samsung / GT-I9070 2.3.6 2× 1 GHz Cortex-A9 768MB 480 × 800 120g
HTC / One S 4.0.4 2× 1.5 GHz Krait 1GB 540 × 960 119g
TCT / Vodafone Smart II 2.3.7 832 MHz 512MB 320 × 480 120g
Huawei / U8510 IDEOS X3 2.3 600 MHz Qualcomm 256MB 320 × 480 104g
Huawei / U8815 Ascend G300 4.0.3 1 GHz Cortex-A5 512MB 480 × 800 140g
HTC / Desire C 4.0.3 600 MHz Cortex-A5 512MB 320 × 480 100g
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 28 / 37
Preliminary Experiments NXTSlave
NXTSlave
Preliminary functional experiments were preformed to test if the
robot was able to identify dangerous situations, and to test that
the NXTSlave module activates the proper programmed
behavior in case a dangerous situation is identified.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 29 / 37
Preliminary Experiments NXTSlave
NXTSlave - risk of falling down stairs
If the robot approaches stairs straight on (with an angle of ≈
90◦
) it correctly triggers the autonomous reverse behavior to
avoid falling down the stairs. If the angle gets more acute, that
is, smaller than 25◦
or greater than 155◦
, the robot often falls
because one of the rear wheels falls over the edge before the
stairs are detected.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 30 / 37
Preliminary Experiments NXTSlave
NXTSlave - obstacle detection and avoidance
The robot approached a wall at different angles – between
20◦
and 160◦
. The robot acted as expected when the wall was
approached from the left, right or front. During a different set of
experiments, we tested the performance of the obstacle
detection with objects of various sizes and shapes. We found
that robot did not always detect narrow obstacles, such as the
leg of a chair. In particular, when approaching a narrow obstacle
straight on, the robot often did not detect the obstacle because
of the orientation (at ±45◦
with respect to the front of the robot)
and the limited resolution of the ultrasonic sensors.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 31 / 37
Conclusion
Contents
1 Introduction
2 Related Work
3 System Prototype
4 Preliminary Experiments
5 Conclusion
Future Works
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 32 / 37
Conclusion
Conclusion
We have presented a low-cost robot based on a LEGO
Mindstoms NXT kit and an Android smartphone that can be
tele-operated from a browser over the internet.
The robot accepts commands from the operator, such as
turn left, turn right, and move forward.
The onboard software constantly monitors the sensors to
assess the current situation.
Autonomous behaviors are triggered whenever a
dangerous situation is identified.
A remote operator thus cannot make the robot collide with
objects or damage the robot by driving it over an edge.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 33 / 37
Conclusion
Conclusion
The GUI for the operator is web-based and it is compatible
with commonly used modern browsers.
The interface shows a real-time video feed from the robot
and the current sensor readings.
Our system is simple and straightforward to use without
prior training.
Autonomous behaviors that ensure the safety of the robot
and its environment combined with an easy to use interface
is essential for tele-operated robots to be adopted in
non-technological industries such as the real estate
business.
We have made extensive use of open source technologies
and we have made all source code for the system available
as open source software.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 34 / 37
Conclusion
Conclusion
We have created a page on GitHub:
https://github.com/jpralves/tourrobot
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 35 / 37
Conclusion Future Works
Future Works
The code-based for our system prototype is modular and
extensible.
The robot’s low-level module, NXTSlave, is currently
implemented specifically for LEGO Mindstorms NXT, but it could
be ported to a different robotic platform with no changes in the
other modules. The use of other platforms, such as Arduino or
Raspberry Pi, would, for instance, allow for the construction of
more capable robotic systems.
In ongoing work, we are adapting the user interface so that the
system can be operated from a smartphone. We are also
studying autonomous behaviors that let the robot return to a
charging station when its battery level drops below a certain
threshold.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 36 / 37
Conclusion Future Works
Thanks
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 37 / 37
Conclusion Future Works
D. Bianchini, M. B. Meneses, V. L. d. Marchi, and
J. Dobgenski.
Robô móvel controlado remotamente via Web.
7o Congresso Nacional de Iniciação Científica -
CONIC-SEMESP 2007, (7):102–117, 2007.
R. Brooks.
A robust layered control system for a mobile robot.
Robotics and Automation, IEEE Journal of, 2(1):14–23,
1986.
D. Eastlake and T. Hansen.
RFC6234 - US Secure Hash Algorithms (SHA and
SHA-based HMAC and HKDF), 2011.
E. Grechanovsky and I. S. Pinsker.
An algorithm for moving a computer-controlled manipulator
while avoiding obstacles.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 37 / 37
Conclusion Future Works
Proceedings of the 8th International Joint Conference on
Artificial Intelligence, pages 807–813, 1983.
H. P. Moravec.
The Stanford cart and the CMU rover.
Proceedings of the IEEE, 71(7):872–884, 1983.
C. W. Nielsen and M. A. Goodrich.
Comparing the usefulness of video and map information in
navigation tasks.
pages 95–101, New York, New York, USA, 2006. ACM, ACM
Press.
S. Thrun, M. Bennewitz, W. Burgard, A. B. Cremers,
F. Dellaert, D. Fox, D. Hahnel, C. Rosenberg, N. Roy,
J. Schulte, and D. Schulz.
MINERVA: a second-generation museum tour-guide robot.
volume 3, pages 1999–2005. IEEE, IEEE, 1999.
J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 37 / 37

More Related Content

What's hot

GPU Computing for Cognitive Robotics
GPU Computing for Cognitive RoboticsGPU Computing for Cognitive Robotics
GPU Computing for Cognitive RoboticsMartin Peniak
 
Implementation of Feed Forward Neural Network for Classification by Education...
Implementation of Feed Forward Neural Network for Classification by Education...Implementation of Feed Forward Neural Network for Classification by Education...
Implementation of Feed Forward Neural Network for Classification by Education...ijsrd.com
 
Neural Networks
Neural Networks Neural Networks
Neural Networks Eric Su
 
Artifical Neural Network and its applications
Artifical Neural Network and its applicationsArtifical Neural Network and its applications
Artifical Neural Network and its applicationsSangeeta Tiwari
 
Fuzzy Logic Final Report
Fuzzy Logic Final ReportFuzzy Logic Final Report
Fuzzy Logic Final ReportShikhar Agarwal
 
Understanding Deep Learning & Parameter Tuning with MXnet, H2o Package in R
Understanding Deep Learning & Parameter Tuning with MXnet, H2o Package in RUnderstanding Deep Learning & Parameter Tuning with MXnet, H2o Package in R
Understanding Deep Learning & Parameter Tuning with MXnet, H2o Package in RManish Saraswat
 

What's hot (11)

GPU Computing for Cognitive Robotics
GPU Computing for Cognitive RoboticsGPU Computing for Cognitive Robotics
GPU Computing for Cognitive Robotics
 
Implementation of Feed Forward Neural Network for Classification by Education...
Implementation of Feed Forward Neural Network for Classification by Education...Implementation of Feed Forward Neural Network for Classification by Education...
Implementation of Feed Forward Neural Network for Classification by Education...
 
Neural Networks
Neural Networks Neural Networks
Neural Networks
 
Role of locking
Role of lockingRole of locking
Role of locking
 
Neural Network
Neural NetworkNeural Network
Neural Network
 
neural networks
neural networksneural networks
neural networks
 
Artifical Neural Network and its applications
Artifical Neural Network and its applicationsArtifical Neural Network and its applications
Artifical Neural Network and its applications
 
Fuzzy Logic Final Report
Fuzzy Logic Final ReportFuzzy Logic Final Report
Fuzzy Logic Final Report
 
Neural network
Neural networkNeural network
Neural network
 
Understanding Deep Learning & Parameter Tuning with MXnet, H2o Package in R
Understanding Deep Learning & Parameter Tuning with MXnet, H2o Package in RUnderstanding Deep Learning & Parameter Tuning with MXnet, H2o Package in R
Understanding Deep Learning & Parameter Tuning with MXnet, H2o Package in R
 
Neural networks
Neural networksNeural networks
Neural networks
 

Similar to NXTTour: An Open Source Robotic System Operated over the Internet

Drishyam - Virtual Eye for Blind
Drishyam - Virtual Eye for BlindDrishyam - Virtual Eye for Blind
Drishyam - Virtual Eye for BlindIRJET Journal
 
All your legos are belong to Us Gr8Conf.EU 2015
All your legos are belong to Us Gr8Conf.EU 2015All your legos are belong to Us Gr8Conf.EU 2015
All your legos are belong to Us Gr8Conf.EU 2015Ryan Vanderwerf
 
Software Technologies for ICT Architectures
Software Technologies for ICT ArchitecturesSoftware Technologies for ICT Architectures
Software Technologies for ICT ArchitecturesAntonio Marcos Alberti
 
Suspicious Activity Detection
Suspicious Activity DetectionSuspicious Activity Detection
Suspicious Activity DetectionMushahid Ali
 
Smart manufacturing through cloud based-r-nabati--dr abdulbaghi ghaderzadeh
Smart manufacturing through cloud based-r-nabati--dr abdulbaghi ghaderzadehSmart manufacturing through cloud based-r-nabati--dr abdulbaghi ghaderzadeh
Smart manufacturing through cloud based-r-nabati--dr abdulbaghi ghaderzadehnabati
 
Smart Navigation Assistance System for Blind People
Smart Navigation Assistance System for Blind PeopleSmart Navigation Assistance System for Blind People
Smart Navigation Assistance System for Blind PeopleIRJET Journal
 
Design and development of touch screen controlled stairs climbing robot
Design and development of touch screen controlled stairs climbing robotDesign and development of touch screen controlled stairs climbing robot
Design and development of touch screen controlled stairs climbing roboteSAT Journals
 
Object and Currency Detection for the Visually Impaired
Object and Currency Detection for the Visually ImpairedObject and Currency Detection for the Visually Impaired
Object and Currency Detection for the Visually ImpairedIRJET Journal
 
Neural network training for serial multisensor of autonomous vehicle system
Neural network training for serial multisensor of autonomous  vehicle systemNeural network training for serial multisensor of autonomous  vehicle system
Neural network training for serial multisensor of autonomous vehicle systemIJECEIAES
 
iMouse
iMouseiMouse
iMouseeeshak
 
Real-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemReal-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemDr. Amarjeet Singh
 
Real-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemReal-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemDr. Amarjeet Singh
 
20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex ExperimentJonathan Blakes
 
Smart Traffic System using Machine Learning
Smart Traffic System using Machine LearningSmart Traffic System using Machine Learning
Smart Traffic System using Machine LearningIRJET Journal
 
Minimum Process Coordinated Checkpointing Scheme For Ad Hoc Networks
Minimum Process Coordinated Checkpointing Scheme For Ad Hoc Networks   Minimum Process Coordinated Checkpointing Scheme For Ad Hoc Networks
Minimum Process Coordinated Checkpointing Scheme For Ad Hoc Networks pijans
 
Voice Enable Blind Assistance System -Real time Object Detection
Voice Enable Blind Assistance System -Real time Object DetectionVoice Enable Blind Assistance System -Real time Object Detection
Voice Enable Blind Assistance System -Real time Object DetectionIRJET Journal
 

Similar to NXTTour: An Open Source Robotic System Operated over the Internet (20)

Drishyam - Virtual Eye for Blind
Drishyam - Virtual Eye for BlindDrishyam - Virtual Eye for Blind
Drishyam - Virtual Eye for Blind
 
Report
ReportReport
Report
 
All your legos are belong to Us Gr8Conf.EU 2015
All your legos are belong to Us Gr8Conf.EU 2015All your legos are belong to Us Gr8Conf.EU 2015
All your legos are belong to Us Gr8Conf.EU 2015
 
Software Technologies for ICT Architectures
Software Technologies for ICT ArchitecturesSoftware Technologies for ICT Architectures
Software Technologies for ICT Architectures
 
Suspicious Activity Detection
Suspicious Activity DetectionSuspicious Activity Detection
Suspicious Activity Detection
 
Smart manufacturing through cloud based-r-nabati--dr abdulbaghi ghaderzadeh
Smart manufacturing through cloud based-r-nabati--dr abdulbaghi ghaderzadehSmart manufacturing through cloud based-r-nabati--dr abdulbaghi ghaderzadeh
Smart manufacturing through cloud based-r-nabati--dr abdulbaghi ghaderzadeh
 
Smart Navigation Assistance System for Blind People
Smart Navigation Assistance System for Blind PeopleSmart Navigation Assistance System for Blind People
Smart Navigation Assistance System for Blind People
 
Design and development of touch screen controlled stairs climbing robot
Design and development of touch screen controlled stairs climbing robotDesign and development of touch screen controlled stairs climbing robot
Design and development of touch screen controlled stairs climbing robot
 
Object and Currency Detection for the Visually Impaired
Object and Currency Detection for the Visually ImpairedObject and Currency Detection for the Visually Impaired
Object and Currency Detection for the Visually Impaired
 
Neural network training for serial multisensor of autonomous vehicle system
Neural network training for serial multisensor of autonomous  vehicle systemNeural network training for serial multisensor of autonomous  vehicle system
Neural network training for serial multisensor of autonomous vehicle system
 
Worldkit System
Worldkit SystemWorldkit System
Worldkit System
 
Final Project
Final ProjectFinal Project
Final Project
 
B05211012
B05211012B05211012
B05211012
 
iMouse
iMouseiMouse
iMouse
 
Real-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemReal-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance System
 
Real-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemReal-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance System
 
20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment
 
Smart Traffic System using Machine Learning
Smart Traffic System using Machine LearningSmart Traffic System using Machine Learning
Smart Traffic System using Machine Learning
 
Minimum Process Coordinated Checkpointing Scheme For Ad Hoc Networks
Minimum Process Coordinated Checkpointing Scheme For Ad Hoc Networks   Minimum Process Coordinated Checkpointing Scheme For Ad Hoc Networks
Minimum Process Coordinated Checkpointing Scheme For Ad Hoc Networks
 
Voice Enable Blind Assistance System -Real time Object Detection
Voice Enable Blind Assistance System -Real time Object DetectionVoice Enable Blind Assistance System -Real time Object Detection
Voice Enable Blind Assistance System -Real time Object Detection
 

More from Joao Alves

CSEduino @ european maker week
CSEduino @  european maker weekCSEduino @  european maker week
CSEduino @ european maker weekJoao Alves
 
CSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireCSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireJoao Alves
 
Stuff harvesting - Gather your electronic components for hobbyist
Stuff harvesting - Gather your electronic components for hobbyistStuff harvesting - Gather your electronic components for hobbyist
Stuff harvesting - Gather your electronic components for hobbyistJoao Alves
 
CSEduino - Build your Arduino from scratch
CSEduino - Build your Arduino from scratchCSEduino - Build your Arduino from scratch
CSEduino - Build your Arduino from scratchJoao Alves
 
OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de ...
OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de ...OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de ...
OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de ...Joao Alves
 
Jogo em Javascript com HTML5
Jogo em Javascript com HTML5Jogo em Javascript com HTML5
Jogo em Javascript com HTML5Joao Alves
 
Robot Lego programado em Java
Robot Lego programado em JavaRobot Lego programado em Java
Robot Lego programado em JavaJoao Alves
 

More from Joao Alves (7)

CSEduino @ european maker week
CSEduino @  european maker weekCSEduino @  european maker week
CSEduino @ european maker week
 
CSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireCSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker Faire
 
Stuff harvesting - Gather your electronic components for hobbyist
Stuff harvesting - Gather your electronic components for hobbyistStuff harvesting - Gather your electronic components for hobbyist
Stuff harvesting - Gather your electronic components for hobbyist
 
CSEduino - Build your Arduino from scratch
CSEduino - Build your Arduino from scratchCSEduino - Build your Arduino from scratch
CSEduino - Build your Arduino from scratch
 
OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de ...
OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de ...OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de ...
OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de ...
 
Jogo em Javascript com HTML5
Jogo em Javascript com HTML5Jogo em Javascript com HTML5
Jogo em Javascript com HTML5
 
Robot Lego programado em Java
Robot Lego programado em JavaRobot Lego programado em Java
Robot Lego programado em Java
 

Recently uploaded

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Recently uploaded (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

NXTTour: An Open Source Robotic System Operated over the Internet

  • 1. NXTTour: An Open Source Robotic System Operated over the Internet João Alves, Sancho Oliveira and Anders Christensen Departamento de Ciências e Tecnologias da Informação OSDOC’13, July 11, 2013, Lisbon, Portugal
  • 2. Contents 1 Introduction 2 Related Work 3 System Prototype 4 Preliminary Experiments 5 Conclusion J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 2 / 37
  • 3. Introduction Contents 1 Introduction 2 Related Work 3 System Prototype 4 Preliminary Experiments 5 Conclusion J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 3 / 37
  • 4. Introduction Introduction To demonstrate a low-cost robot that can be tele-operated over the internet using open source software. Differential drive robot based on the LEGO Mindstorms NXT and an Android smartphone Compatible with the most commonly used modern internet browsers Compatible with several versions of Android J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 4 / 37
  • 5. Introduction Introduction The work presented in this paper relies exclusively on open source software. Our system is a generic prototype of a tele-operated robot Tele-operated robots have many potential uses since they allow users to have a presence, to explore, and sometimes even to perform actions remotely Uses internet as the communication medium, so it can be operated independently of the location of the user J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 5 / 37
  • 6. Related Work Contents 1 Introduction 2 Related Work 3 System Prototype 4 Preliminary Experiments 5 Conclusion J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 6 / 37
  • 7. Related Work Related Work The work presented in this paper is related to autonomous, mobile robots and to tele-operated robots. To simplify the design of robotic controllers, Brooks [2] proposed the subsumption architecture The presence of video and mapped information can help in a navigation tasks as Nielsen [6] concludes in his work The design of a controller even for a simple task such as obstacle avoidance can be non-trivial as Grechanovsky et al. [4] concludes in is study The Stanford Cart was presented by Moravec [5] and uses the images from the camera to plan its path and to avoid obstacles identified visually Thrun et al. [7] built a robot for the Smithsonian Museum that was an interactive guide A robot that can be controlled over the internet was presented in Bianchini et al. [1] J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 7 / 37
  • 8. System Prototype Contents 1 Introduction 2 Related Work 3 System Prototype Overview Technologies Communications The Robot The NXTSlave Module Mode of operation – SELF Mode of operation – OPERATOR Communication Protocol – NXT2Android The NXTController Module Web Server Dynamic Registration The NXTBrowser Module Authentication Process Implementation 4 Preliminary Experiments 5 Conclusion J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 8 / 37
  • 9. System Prototype Overview Overview Several modules Developed independently Interfaces and simple communication protocols between the modules Extensible code base J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 9 / 37
  • 10. System Prototype Technologies Technologies We resorted to a number of technologies in the design and development of the system prototype: A Lego NXT Mindstorms kit was used to build the robot The leJOS1 firmware replacement was used for the NXTSlave module The Android Software Development Kit (SDK) was used for the NXTController module Standard technologies such as HTML, javascript and Cascading Style Sheets (CSS) were used for NXTBrowser module 1 http://lejos.sourceforge.net/ J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 10 / 37
  • 11. System Prototype Communications Communications The three modules communicate with each other through different means of communication and using different protocols, some standard, others implemented specifically for the system prototype. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 11 / 37
  • 12. System Prototype The Robot The Robot Actuators: rear end working in reverse Sensors: Touch sensor Color sensor Lleft ultrasonic sensor Right ultrasonic sensor The robot, built with the LEGO Mindstorms NXT, is a differential drive robot that uses two motors, each connected to the rear wheels. The robot’s front wheel is a passive caster wheel. The robot has an adaptable support for an Android smartphone. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 12 / 37
  • 13. System Prototype The NXTSlave Module The NXTSlave Module Runs on the LEGO Mindstorms NXT system Translates the commands issued by the operator into actual movement Collects and sends sensory information back to the operator Self-preservation mode that can subsume control Implements autonomous obstacle avoidance and recovery behaviors Communicates with the control module, NXTController, through Bluetooth. written in Java language and uses the leJOS firmware J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 13 / 37
  • 14. System Prototype The NXTSlave Module The NXTSlave Module The logic to prevent collisions with obstacles and to recover from dangerous situations such as when the robot is about to drive over an edge is implemented in this module. The robot has two modes of operation: ”SELF” and ”OPERATOR”. The mode determines how the robot is controlled. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 14 / 37
  • 15. System Prototype The NXTSlave Module Mode of operation – SELF This mode is the Self-preservation mode. The robot depending on the readings of sensors, switches to this mode — SELF mode. When an obstacle is sensed through one of the ultrasonic sensors, the robot stops immediately and checks if the obstacle is temporary or permanent. If the obstacle is permanent, the robot performs an avoidance maneuver: the robot moves straight backward, backward left, or backward right depending on obstacle’s relative location. If the touch sensor is activated, it means that the third passive wheel no longer touches the ground and that the robot is about to drive over an edge. In this situation, the robot performs a movement backward in order to recover and avoid falling. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 15 / 37
  • 16. System Prototype The NXTSlave Module Mode of operation – OPERATOR As long as there are no dangerous situations, the robot executes the commands sent by the NXTController. The NXTSlave has a set of preconfigured actions (move left, move right, move forward and stop) that can be requested by the NXTController. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 16 / 37
  • 17. System Prototype The NXTSlave Module Communication Protocol – NXT2Android Uses Bluetooth NXTController receives the status of the sensors from NXTSlave Minimize bandwidth usage Maximize the responsiveness of the system Messages are composed of an header with an ID, followed by a Byte indicating the message type, and then the payload. The information exchanged can be regarding the battery voltage of NXT, sensory readings, the current control mode, and so on. Messages are only sent to the NXTController when values change. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 17 / 37
  • 18. System Prototype The NXTController Module The NXTController Module Runs on an Android smartphone Responsible for receiving the operator’s commands and sending them to the NXTSlave Captures and transmits video to the NXTBrowser Forwards sensory information and overall system status information User interface for the configuration of all parts of the system Establishes the connections to the other modules J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 18 / 37
  • 19. System Prototype The NXTController Module Web Server The NXTController runs a web server based on NANOHTTPd2 enabling the module to communicate using the HyperText Transfer Protocol (HTTP) protocol with NXTBrowser module. A fixed uniform resource locator (URL) based on a dynamic registration system was implemented to allow the system to be always accessible. 2 http://elonen.iki.fi/code/nanohttpd/ J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 19 / 37
  • 20. System Prototype The NXTController Module Dynamic Registration Given the volatility of IP addresses that are often dynamically assigned, we developed a registration system to facilitate a simple connection process. When the NXTController web server starts, it registers its newly assigned IP address on a server with a fixed name (address set in the options as ”address publishing-site”). When the user navigates to the URL of the server with a fixed name (eg. http://jpralves.net/51), the server will automatically redirect the user to the current address of the NXTController. When the web server is disabled, redirection is also disabled. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 20 / 37
  • 21. System Prototype The NXTBrowser Module The NXTBrowser Module The NXTBrowser module runs in a browser: User interface exposed to the operator Receives context information from the robot Sends commands to it The NXTController module runs an embedded web server to which NXTBrowser connects. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 21 / 37
  • 22. System Prototype The NXTBrowser Module The NXTBrowser Module The NXTBrowser has an interface that provides the operator with sensory information: (a, b) obstacles proximity (color codes) (c, d) measured distance (e) touch sensor state (f, g) tachometers of motors (c) remote video (h) information about the NXTSlave (j) information about Android (k) Four buttons of command (l) operation mode (m) video feed J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 22 / 37
  • 23. System Prototype The NXTBrowser Module Authentication Process To prevent unauthorized access to the robot, the operator must type in the correct password before a session can begin. The embedded web server will only allow access to control of the robot in the address that is the result of the SHA-1 hash [3] of the password concatenated with a random key that is sent by it (SALT). J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 23 / 37
  • 24. System Prototype The NXTBrowser Module Implementation User interface is partly based on jQuery3 Followed a design that would allow the use in all kinds of devices with at least a resolution of 1024 × 600 pixels Has four buttons that allow the operator to interact with the robot Receives JSON messages from the server about state information 3 http://www.jquery.com J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 24 / 37
  • 25. Preliminary Experiments Contents 1 Introduction 2 Related Work 3 System Prototype 4 Preliminary Experiments NXTBrowser NXTController NXTSlave NXTSlave - risk of falling down stairs NXTSlave - obstacle detection and avoidance 5 Conclusion J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 25 / 37
  • 26. Preliminary Experiments Preliminary Experiments A number of preliminary experiments were done to assess the system prototype. A different set of experiments was designed for each module. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 26 / 37
  • 27. Preliminary Experiments NXTBrowser NXTBrowser Since NXTBrowser runs in a browser and since no standard currently exists for streaming video that works across all browsers, the video feed in the system prototype is, in fact, implemented as a sequence of JPEG images captured by the camera of the Android device onboard the robot. Tests were performed with four browsers representing the most important rendering engines: Engine Browser Version Site Video Trident IE 9 Wekbit Chrome 22 Webkit Safari 6 Gecko Firefox 16 All the tested browsers successfully presented the HTML-based user interface and the video feed. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 27 / 37
  • 28. Preliminary Experiments NXTController NXTController Extensive tests were made assess the compatibility of the NXTController with different Android devices and OS versions. Eight different Android handsets were tested and all of them were able to run the NXTController module successfully. The following table lists the Android devices tested and their specification: Brand / Model Version CPU RAM Screen Weight Google / Nexus S 4.1.2 1 GHz Cortex-A8 512MB 480 × 800 129g Samsung / GT-S6500D 2.3.6 800 MHz Cortex-A5 512MB 320 × 480 105g Samsung / GT-I9070 2.3.6 2× 1 GHz Cortex-A9 768MB 480 × 800 120g HTC / One S 4.0.4 2× 1.5 GHz Krait 1GB 540 × 960 119g TCT / Vodafone Smart II 2.3.7 832 MHz 512MB 320 × 480 120g Huawei / U8510 IDEOS X3 2.3 600 MHz Qualcomm 256MB 320 × 480 104g Huawei / U8815 Ascend G300 4.0.3 1 GHz Cortex-A5 512MB 480 × 800 140g HTC / Desire C 4.0.3 600 MHz Cortex-A5 512MB 320 × 480 100g J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 28 / 37
  • 29. Preliminary Experiments NXTSlave NXTSlave Preliminary functional experiments were preformed to test if the robot was able to identify dangerous situations, and to test that the NXTSlave module activates the proper programmed behavior in case a dangerous situation is identified. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 29 / 37
  • 30. Preliminary Experiments NXTSlave NXTSlave - risk of falling down stairs If the robot approaches stairs straight on (with an angle of ≈ 90◦ ) it correctly triggers the autonomous reverse behavior to avoid falling down the stairs. If the angle gets more acute, that is, smaller than 25◦ or greater than 155◦ , the robot often falls because one of the rear wheels falls over the edge before the stairs are detected. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 30 / 37
  • 31. Preliminary Experiments NXTSlave NXTSlave - obstacle detection and avoidance The robot approached a wall at different angles – between 20◦ and 160◦ . The robot acted as expected when the wall was approached from the left, right or front. During a different set of experiments, we tested the performance of the obstacle detection with objects of various sizes and shapes. We found that robot did not always detect narrow obstacles, such as the leg of a chair. In particular, when approaching a narrow obstacle straight on, the robot often did not detect the obstacle because of the orientation (at ±45◦ with respect to the front of the robot) and the limited resolution of the ultrasonic sensors. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 31 / 37
  • 32. Conclusion Contents 1 Introduction 2 Related Work 3 System Prototype 4 Preliminary Experiments 5 Conclusion Future Works J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 32 / 37
  • 33. Conclusion Conclusion We have presented a low-cost robot based on a LEGO Mindstoms NXT kit and an Android smartphone that can be tele-operated from a browser over the internet. The robot accepts commands from the operator, such as turn left, turn right, and move forward. The onboard software constantly monitors the sensors to assess the current situation. Autonomous behaviors are triggered whenever a dangerous situation is identified. A remote operator thus cannot make the robot collide with objects or damage the robot by driving it over an edge. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 33 / 37
  • 34. Conclusion Conclusion The GUI for the operator is web-based and it is compatible with commonly used modern browsers. The interface shows a real-time video feed from the robot and the current sensor readings. Our system is simple and straightforward to use without prior training. Autonomous behaviors that ensure the safety of the robot and its environment combined with an easy to use interface is essential for tele-operated robots to be adopted in non-technological industries such as the real estate business. We have made extensive use of open source technologies and we have made all source code for the system available as open source software. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 34 / 37
  • 35. Conclusion Conclusion We have created a page on GitHub: https://github.com/jpralves/tourrobot J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 35 / 37
  • 36. Conclusion Future Works Future Works The code-based for our system prototype is modular and extensible. The robot’s low-level module, NXTSlave, is currently implemented specifically for LEGO Mindstorms NXT, but it could be ported to a different robotic platform with no changes in the other modules. The use of other platforms, such as Arduino or Raspberry Pi, would, for instance, allow for the construction of more capable robotic systems. In ongoing work, we are adapting the user interface so that the system can be operated from a smartphone. We are also studying autonomous behaviors that let the robot return to a charging station when its battery level drops below a certain threshold. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 36 / 37
  • 37. Conclusion Future Works Thanks J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 37 / 37
  • 38. Conclusion Future Works D. Bianchini, M. B. Meneses, V. L. d. Marchi, and J. Dobgenski. Robô móvel controlado remotamente via Web. 7o Congresso Nacional de Iniciação Científica - CONIC-SEMESP 2007, (7):102–117, 2007. R. Brooks. A robust layered control system for a mobile robot. Robotics and Automation, IEEE Journal of, 2(1):14–23, 1986. D. Eastlake and T. Hansen. RFC6234 - US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF), 2011. E. Grechanovsky and I. S. Pinsker. An algorithm for moving a computer-controlled manipulator while avoiding obstacles. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 37 / 37
  • 39. Conclusion Future Works Proceedings of the 8th International Joint Conference on Artificial Intelligence, pages 807–813, 1983. H. P. Moravec. The Stanford cart and the CMU rover. Proceedings of the IEEE, 71(7):872–884, 1983. C. W. Nielsen and M. A. Goodrich. Comparing the usefulness of video and map information in navigation tasks. pages 95–101, New York, New York, USA, 2006. ACM, ACM Press. S. Thrun, M. Bennewitz, W. Burgard, A. B. Cremers, F. Dellaert, D. Fox, D. Hahnel, C. Rosenberg, N. Roy, J. Schulte, and D. Schulz. MINERVA: a second-generation museum tour-guide robot. volume 3, pages 1999–2005. IEEE, IEEE, 1999. J. Alves, S. Oliveira, A. Christensen (DCTI - ISCTE-IUL) NXTTour Jul-2013 37 / 37