RPN (Robotic Programming Network) is an initiative to bring existing remote robot laboratories to a new dimension, by adding the flexibility and power of writing ROS code in an Internet browser and running it in the remote robot with a single click. The code is executed in the robot server at full speed, i.e. without any communication delay, and the output of the process is returned back. Built upon Robot Web Tools, RPN works out-of-the-box in any ROS-based robot or simulator. This paper presents the core functionality of RPN in the context of a web-enabled ROS system, its possibilities for remote education and training, and some experimentation with simulators and real robots in which we have integrated the tool in a Moodle environment, creating some programming courses and make it open to researchers and students (http://robotprogramming.uji.es).

Figures - uploaded by Enric Cervera

Author content

All figure content in this area was uploaded by Enric Cervera

Content may be subject to copyright.

ResearchGate Logo

Discover the world's research

  • 20+ million members
  • 135+ million publications
  • 700k+ research projects

Join for free

ROS-based Online Robot Programming for

Remote Education and Training*

Gustavo A. Casa˜

n1 , Enric Cervera1, Amine A. Moughlbay2, Jaime Alemany1and Philippe Martinet2

Abstract— RPN (Robotic Programming Network) is an ini-

tiative to bring existing remote robot laboratories to a new

dimension, by adding the flexibility and power of writing ROS

code in an Internet browser and running it in the remote robot

with a single click. The code is executed in the robot server

at full speed, i.e. without any communication delay, and the

output of the process is returned back. Built upon Robot Web

Tools, RPN works out-of-the-box in any ROS-based robot or

simulator. This paper presents the core functionality of RPN

in the context of a web-enabled ROS system, its possibilities

for remote education and training, and some experimentation

with simulators and real robots in which we have integrated

the tool in a Moodle environment, creating some programming

courses and make it open to researchers and students (http:

//robotprogramming.uji.es).

I. INTRODUCTION

Online robots and remote laboratories have been around

for nearly two decades, with considerable success [1]. With

cross-platform middleware [2] apparition and the adoption of

new powerful World Wide Web standards [3], we may well

be approaching a new golden era for web robots.

The availability of such platforms will surely increase the

productivity of the robotics research community, yet they

will also become invaluable as educational resources, for

teachers, students and interested public. Sophisticated robot

platforms could be made accessible worldwide, being the

only cost for the user the price of an Internet connection.

Nowadays, there already exists a myriad of web-enabled

robots, in theory ready to be remotely controlled, their

sensors and outputs visualized. An awesome example of

such a system is the PR2 Remote Lab [4], which enables

a large community of researchers to use a state-of-the-art

yet expensive platform.

However, to our knowledge, most existing systems lack the

fundamental capacity of allowing remote users to easily write

and execute a program as if it were running on the real robot.

Usually, the interface only makes it possible to control the

elements of the robot. In some cases, scripting capabilities

for executing a limited set of commands are provided [5].

*This paper describes research done at the Robotic Intelligence Labo-

ratory, with support in part by Ministerio de Economa y Competitividad

(DPI2011-27846), by Generalitat Valenciana (PROMETEOII/2014/028), by

Universitat Jaume I (P1-1B2014-52), and by IEEE RAS under a CEMRA

grant (Creation of Educational Materials for Robotics and Automation).

1Enric Cervera, Gustavo A. Casa˜

n and Jaime Alemany are with

Robotic Intelligence Laboratory, Jaume-I University, 12071 Castell´

o, Spain

{ecervera, al079333}@uji.es

2Amine A. Moughlbay and Philippe Martinet are with IRCCyN,

Ecole Centrale de Nantes, France {Amine.Abou-Moughlbay,

Philippe.Martinet}@irccyn.ec-nantes.fr

In this paper, we present a system that allows users to

remotely program a ROS-enabled robot or simulator and ex-

plain how we are testing it through a Learning Management

System, a Moodle system1in which we have created several

courses and one challenge. ROS is a flexible framework for

writing robot software. It collects tools, libraries, and con-

ventions to simplify the task of creating complex and robust

robot behavior across a wide variety of robotic platforms.

With the advent of cheap robotic kits, teaching with robots

has become popular, specially to ease the learning process of

introductory programming courses [6], [7], [8], [9]. Robots

provide entry level programming students with a physical

model to visually demostrate concepts and ideas.

The programs consist of fully-functional ROS scripts 2,

which are executed as ROS nodes in the server. As such,

they can access all ROS topics and services, without remote

communication overhead during execution. The output of the

process is returned back to the user's browser, and a bag of

recorded topics is readily available to download for further

analysis. The server connects to a Moodle External Tool,

which allows the user to interact with IMS LTI-compliant

learning resources and activities [10].

The rest of this paper is organized as follows: Section II

describes some related work on web-based robot laboratories.

An overview of the RPN tools is presented in Section III.

Thorough experimental work with simulators and robots

is described in Section IV. Finally, conclusions and future

works are outlined in Section V.

II. RELATED WORK

Practically from its conception between the late 1980s and

early 1990s, the Internet was realized to allow remote users

to interact with and monitor robots [1].

After being online for over ten years, the Telerobot of

the University of Western Australia has become one of the

most popular remote laboratories, and similar systems have

proliferated since then [5], [11], [12], [13], [14], [15], [16].

The PR2 Remote Lab [4], [13] represents a milestone in

online robot systems. Previous attempts focused on simple

experiments and online learning, and did not build upon

shared robot middleware frameworks. This laboratory uses

Robot Web Tools [17], a collection of open-source modules

and tools for building web-based robot apps, allowing web

applications to interface with robots running ROS.

Another milestone is the RoboEarth project [18]. A more

ambitious system, it consists of a network and database

1http://www.moodle.org

2http://www.ros.org/wiki/rospy

2015 IEEE International Conference on Robotics and Automation (ICRA)

Washington State Convention Center

Seattle, Washington, May 26-30, 2015

978-1-4799-6922-7/15/$31.00 ©2015 IEEE 6101

repository where robots can share information and learn from

each other about their behavior and their environment.

Robot benchmarking also benefits from the availability of

common online platforms for the development and testing

of algorithms [19]. To do so, easy means of executing robot

programs should be available. A REST-based architecture has

been proposed in [20] and demonstrated in [21] with remote

experiments on visual servoing.

While most existing remote laboratories have proven

highly successful and invaluable for spreading the use and

knowledge of online robots, RPN aims to fill a gap, by pro-

viding a simple, seamless way of executing a real program

for a remote user.

III. DESCRIPTION OF THE SYSTEM

RPN consists of a simple scripting interface, with a

text box and submit button built upon Robot Web Tools,

which can be accesed as a Moodle LTI resource. A similar

capability is available in the PR2 Remote Lab, yet they differ

in a crucial aspect: PR2 scripting is done in Javascript, and

it runs on the client side; RPN scripting is done in Python

(but it could be done in any other ROS-supported scripting

language), and it runs on the server side.

As a result, RPN has these fundamental differences:

1) The script is executed as a true ROS node on the server,

with access to any topic or service.

2) The remote communication delay is only present dur-

ing the transmission of the code, not during its execu-

tion.

3) The code is stored in the server, together with its

output and a bag of the topics, readily available for

downloading.

Flexibility comes at the expense of security, though. The

remote script is allowed to access the inner parts of the

system. To improve security we have taken the step of

creating a Virtual Machine (VM) for each student and thus

the code does not execute in the real machines, reducing

risks. Additional security policies have been enabled, as

provided by Robot Web Tools [3]: protected topics and

services are necessary when there are critical services that

the client should not interfere with; key authorization allows

the system to limit access to specific, trusted users.

Fig. 1 depicts a block diagram of the system. RPN server

side is built upon Robot Web Tools [3], [17] for commu-

nicating with the clients. In addition, it also communicates

directly with ROS for dynamically starting new processes,

i.e. executing the client programs. It is also responsible of

launching rosbag 3 for data logging.

Communication is exclusively performed through ROS.

Consequently, RPN does not rely on any particular detail

of the underlying hardware or software, and it can cope with

any ROS-enabled system.

The client side of RPN consists of an HTML5, Javascript-

enabled web browser, which runs the Javascript widgets.

3http://www.ros.org/wiki/rosbag

Fig. 1. Overview of the system

The program source code is typed in a user-friendly, syntax-

highlighting, embedded editor4. Very little additional input

is required: a text field with the file name for archiving

purposes, and a selectable button which enables or disables

rosbag recording.

A single click on the run button is enough to launch the

processing of the code, and trigger the whole interaction

process between client and server. Fig. 2 depicts a more

detailed view of such interaction between the client and

server sides. Program code is written in the embedded

browser editor, on the client side. Upon pressing the run

button, a goal is generated by the RPN client. This goal

consists of an identifier for the program, the code itself as a

string, and an additional parameter which indicates whether

a bag of ROS topics should be recorded or not.

Fig. 2. Detailed interaction between client and server

This information is sent from the client to the server

through rosbridge 5 . Rosbridge provides a JSON API to ROS

functionality for non-ROS programs. Of the variety of front

ends that interface with rosbridge, we employ the Websocket

server [22] which allows web browsers to interact with ROS,

in the same way as used in the PR2 Remote Lab [4].

Communication between client and server is implemented

with the actionlib ROS package6. First, the RPN server

checks the goal: if a bag is required, a rosbag record process

4http://codemirror.net/

5http://www.ros.org/wiki/rosbridge_suite

6http://www.ros.org/wiki/actionlib

6102

is launched. Second, the string of code is saved to a local

file inside a sandbox ROS package, with the proper format,

extension, and permissions.

Next, the code is executed with the rosrun7 tool, with

its standard output redirected to the RPN server. Upon

finalization of the user process, the rosbag process is stopped;

the output of the process is both saved to a file, and returned

back to the client as result.

Upon reception of the result, the RPN client updates the

output and download widgets. The output of the process is

thus displayed in the browser window, and the resulting bag

file can be downloaded in a straightforward way. Both the

source code and the output are also stored in the server, and

can be downloaded for archiving purposes.

Additional feedback can be provided thanks to the tight

integration of RPN with Robot Web Tools: existing widgets

allow a 2D map, a 3D robot model, or a MJPEG stream

coming from a remote camera to be visualized [17].

RPN can also be integrated with RMS (Robot Manage-

ment System)8, a remote lab management tool designed to

control ROS enabled robots from the web.

Fig. 3. Remote programming with TurleSim: a challenge in the course

(back window) and the correcponding programming window (front window)

with the 2D world with the Turtle, buttons and the code window.

IV. EXPERIMENTAL SETUP

RPN has been tested on different ROS setups, consisting

of both simulators and real robots, and some of them have

been used to create open robotic courses (http://www.

robotprogramming.uji.es).

A. Programming Simulators

Two simulators have been used to organize the correspond-

ing programming courses: Turtlesim provides a simulated 2D

turtle (in Fig. 3) which is controlled by a ROS topic con-

taining its linear and angular velocity. Simple introductory

programs (in Python) can be used for producing different

7http://www.ros.org/wiki/rosbash#rosrun

8http://www.ros.org/wiki/rms/

Fig. 4. Remote programming with MobileSim: the code written in the right

window has been sent to the server and is being executed by MobileSim

(left window). The output is returned back and displayed in the top left

window in the browser.

figures. Mobilesim is similar to the Turtle simulator, with

the main difference that this mobile robot has sensors which

provide information about the distance between the robot

and the nearest obstacle (wall). This allow the development

of more complex tasks, like exploring a house or a labyrinth.

The code is directly executable as a ROS script. In RPN,

the code is typed in the text editor, and it can be readily

executed remotely on the ROS system. Fig. 4 depicts a

snapshot of such execution: the window belongs to the client

machine that runs the RPN client-side in a Chrome browser.

The resulting trajectory can be seen in the MobileSim

window of the server, as images of the simulation are

sent to the client browser by an mjpeg server 9 ROS node.

The images are captured from the simulator window by

gstreamer10 , and made available as a ROS topic by gscam11

and them shown as part of Moodle.

The output of the console, consisting of ROS log mes-

sages, is presented in the browser too, in the right botton

window.

If an error occurs during execution, the abnormal condition

is detected and the standard error output of the process is also

returned back to the browser, and displayed in the output

window. Such feedback includes, as usual, the line number

and the characteristics of the error. The debugging process

is thus as simple as if the code were running locally.

Should the script hang, the user can abort its execution

with the stop button. A timeout have also be set in the server

to prevent lengthy executions (such as an accidental infinite

loop).

This setup is easily transportable to any other ROS-

based simulator (e.g. Stage or Gazebo). The server runs all

9http://www.ros.org/wiki/mjpeg_server

10http://gstreamer.freedesktop.org/

11http://www.ros.org/wiki/gscam

6103

the simulator processes, and the client script controls the

robot, and comunicates with Moodle to display the feedback.

The simulator window is shown in the client browser, and

cameras view can also be added to the user interface in other

windows.

B. Programming a Humanoid Robot

In the third experiment, a robotics challenge, RPN is

used for remotely programming a NAO humanoid [23].

Communication with the robot is possible because the ROS

NAO driver12 connects to a custom module running the

robot middleware (NAOqi), which has been developed for

USARSim [24].

To demonstrate RPN, we have created an artificial envi-

ronment, a kitchen (as can be seen in Fig. 6), as part of the

HUMABOT Challenge 201413. The system user interface (in

Fig. 5) is similar to the previous simulators, but we create a

window in which we can see the NAO's camera view, and

all NAO's sensors are available through programming. We

have also added several cameras, which allow to have a 360

degrees view of the robot. Once finished the challenge, we

plan to open the environtment like a programming course.

Fig. 6. Kitchen environment for the HUMABOT Challenge.

C. Opportunities for Education and Training

RPN is useful in any programming course that uses ROS-

enabled robots or simulators. It allows students to work out

of the laboratory, anywhere with a laptop and an Internet

connection. In the Moodle environment we have created the

students only have to sign up in any of the courses we have

open to the public and begin to learn. The general system

security is improved by the use of Moodle system and its

own security. As we must be careful when working with

real robots, the EJApp booking system14 is being adapted to

control robot access to one student/researcher at a time.

But the benefits far outweigh the problems: there is no

need for the local installation and setup of cumbersome

12http://www.ros.org/wiki/Robots/Nao

13http://www.irs.uji.es/humabot/

14https://moodle.org/plugins/view.php?plugin=mod_

ejsappbooking

simulators, since a simple browser is sufficient (an inher-

ently cross-platform solution), and accessing from different

systems is made easier. From a social point of view, users

in different countries can access robot equipments that oth-

erwise would not be available, and to facilitate the access

we have made versions of the courses in different languages

(English, Spanish, Catalonian and Arabic).

And we strongly share the belief [25] that robots can be

extremely useful in learning programming skills, and their

associated problem solving and reasoning counterparts. The

results in a preliminary study with 23 subjects, undergraduate

first-year students from engineering degrees with none or

little previous experience in programming, were encorauging.

They were presented a version of the Turtle Robot course on

the RPN platform, consisting of programming a simulated

turtle-like robot.

The students were asked to solve different tasks and submit

their code to the site. And after the end of the activity,

they were asked to fill a questionnaire (ease of use of the

system, overall satisfaction, ...) about their experience with

the course. Overall, the satisfaction degree was complete,

with 91% of the students answering positively (strongly

agree or agree), and a significant part which complain about

the minimalist interface. A complete analysis of the results

can be found in an accepted journal paper of Dr. Cervera

yet not published ("The Robot Programming Network", in

Journal of Intelligent and Robotic Systems).

Access to robotic competitions [26], [27], [28], [29] would

also benefit from a framework where participants can in-

stantly check their code in their browsers, without the need

to replicate the environment locally. As we have previously

explained, right now our system is being employed (and

tested) as part of the HUMABOT Challenge 201415. Thus,

the participants can test remotely their programs on a kitchen

environment we have created previously to the competicion.

There has not been simultaneus access problems to the NAO

robot, maybe because there are less than ten teams enrolled

in the competition.

To remark that the system is not dependant on Moodle, and

it can be used with any LTI compliant education system. We

made a successful test with Eliademy16, creating a version

of the Turtle Robot course.

V. CONCLUSIONS AND FUTURE EXTENSIONS

We have presented a web-based extension for ROS-based

remote laboratories and online robots, which allows the

rapid, seamless execution of a real program in the system,

launched by a client user in a remote browser. Also, we

have presented the learning environment and programming

courses we have created using Moodle and this extension.

Development is in a preliminary stage, and it must yet

be tested for a large number of users, althought Moodle has

been used for millions of students without problems, which

gives garanties about that part of the learning system. Moodle

15http://www.irs.uji.es/humabot/

16https://eliademy.com/es

6104

Fig. 5. Remote programming with the NAO humanoid: we can see two browser windows, in the left one we can see the written code that has been sent

to the server and executed by NAO, and the real time view of the robot's camera; in the right window we can see real time images of the robot actions

through two side cameras.

also controls users authentication and time-share facilities. A

thorough study of system vulnerabilities to malicious code

must also be carried out, but the system has proved to be

fairly robust.

Another extension is the addition of feedback messages

during the execution of the script, a possibility already

available in the actionlib ROS package. The client would

then periodically update the output in the browser window,

thus providing the user with a more interactive experience.

The system is restricted to scripting languages, i.e. lan-

guages which do not need compilation. The current imple-

mentation is limited to the Python language, but any scripting

language with ROS support could be used, e.g. Lisp or Lua17.

We have began to explore the possibility of using Blockly18,

a block programming language editor, which can generate

Python code and thus it can be easly integrated in the system.

The blocks programming paradigm is proving to be more

attractive to the younger students, increasing the potential

users of the system.

Special attention should be devoted to Matlab, a leading

programming language for science and engineering. Some

experimental work for interfacing ROS and Matlab is avail-

able19 . A Matlab remote programming environment for ROS

might become a winner in robotics education.

For research purposes, a more ambitious approach may

also be implemented, as proposed in the PR2 Lab [4]: remote

users could provide a link to their code within an SVN

repository; the code would be automatically downloaded,

compiled and executed; users could interactively monitor the

17http://www.ros.org/wiki/Client%20Libraries

18https://developers.google.com/blockly/

19http://www.ros.org/wiki/groovy/Planning/Matlab

results of the code or algorithms remotely, debugging and

performing experiments.

ACKNOWLEDGMENT

This project relies on open-source software packages, too

numerous to list: we sincerely thank all the software devel-

opers and users for their lively support and contributions.

REFERENCES

[1] J. Trevelyan, "Lessons learned from 10 years experience with remote

laboratories," in Engineering Education and Research (iNEER), Inter-

national Conference on, 2004, pp. 1562–3580.

[2] M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs,

R. Wheeler, and A. Y. Ng, "ROS: An open-source robot operating

system," in ICRA Workshop on Open Source Software, vol. 3, no. 3.2,

2009.

[3] S. Osentoski, G. Jay, C. Crick, B. Pitzer, C. DuHadway, and O. C.

Jenkins, "Robots as web services: Reproducible experimentation and

application development using rosjs," in Robotics and Automation

(ICRA), IEEE International Conference on, 2011, pp. 6078–6083.

[4] B. Pitzer, S. Osentoski, G. Jay, C. Crick, and O. C. Jenkins, "PR2

Remote Lab: An environment for remote development and experi-

mentation," in Robotics and Automation (ICRA), IEEE International

Conference on, 2012, pp. 3200–3205.

[5] R. Mar´

ın, P. J. Sanz, and A. P. Del Pobil, "The UJI online robot:

An education and training experience," Autonomous Robots, vol. 15,

no. 3, pp. 283–297, 2003.

[6] V. Dagdilelis, M. Sartatzemi, and K. Kagani, "Teaching (with) robots

in secondary schools: some new and not-so-new pedagogical prob-

lems," in Advanced Learning Technologies, 2005. ICALT 2005. Fifth

IEEE International Conference on, July 2005, pp. 757–761.

[7] E. Wang, "Teaching freshmen design, creativity and programming with

legos and labview," in Frontiers in Education Conference, 2001. 31st

Annual, vol. 3. IEEE, 2001, pp. F3G–11.

[8] A. Gage and R. R. Murphy, "Principles and experiences in using legos

to teach behavioral robotics," in Frontiers in Education, 2003. FIE

2003 33rd Annual, vol. 2. IEEE, 2003, pp. F4E–23.

[9] P. B. Lawhead, M. E. Duncan, C. G. Bland, M. Goldweber, M. Schep,

D. J. Barnes, and R. G. Hollingsworth, "A road map for teaching

introductory programming using lego c

mindstorms robots," ACM

SIGCSE Bulletin, vol. 35, no. 2, pp. 191–201, 2003.

6105

[10] M. Caeiro-Rodr´

ıguez, M. Manso-V´

azquez, and L. Anido-Rif´

on, "De-

sign of flexible and open learning management systems using IMS

specifications. the Game Tel experience," Journal of Research and

Practice in Information Technology, vol. 44, no. 2, p. 151, 2012.

[11] V. Djalic, P. Maric, D. Kosic, D. Samuelsen, B. Thyberg, and

O. Graven, "Remote laboratory for robotics and automation as a tool

for remote access to learning content," in Interactive Collaborative

Learning (ICL), 15th International Conference on, 2012, pp. 1–3.

[12] P. Orduna, L. Rodriguez-Gil, D. Lopez-de Ipina, and J. Garcia-

Zubia, "Sharing the remote laboratories among different institutions:

A practical case," in Remote Engineering and Virtual Instrumentation

(REV), 9th International Conference on, 2012, pp. 1–4.

[13] S. Osentoski, B. Pitzer, C. Crick, G. Jay, S. Dong, D. Grollman, H. B.

Suay, and O. C. Jenkins, "Remote robotic laboratories for learning

from demonstration," International Journal of Social Robotics, vol. 4,

no. 4, pp. 449–461, 2012.

[14] I. Santana, M. Ferre, E. Izaguirre, R. Aracil, and L. Hernandez,

"Remote laboratories for education and research purposes in automatic

control systems," Industrial Informatics, IEEE Transactions on, vol. 9,

no. 1, pp. 547–556, 2013.

[15] M. Kulich, J. Chudoba, K. Kosnar, T. Krajnik, J. Faigl, and L. Preucil,

"SyRoTek – distance teaching of mobile robotics," Education, IEEE

Transactions on, vol. 56, no. 1, pp. 18–23, 2013.

[16] L. Furler, A. S. Malik, F. Meriaudeau, and V. Nagrath, "An auto-

operated telepresence system for the NAO humanoid robot," in Com-

munication Systems and Network Technologies (CSNT), International

Conference on, 2013, pp. 262–267.

[17] B. Alexander, K. Hsiao, C. Jenkins, B. Suay, and R. Toris, "Robot

Web Tools [ROS topics]," Robotics & Automation Magazine, IEEE,

vol. 19, no. 4, pp. 20–23, 2012.

[18] M. Waibel, M. Beetz, J. Civera, R. D'Andrea, J. Elfring, D. Galvez-

Lopez, K. Haussermann, R. Janssen, J. M. M. Montiel, A. Perzylo,

B. Schiessle, M. Tenorth, O. Zweigle, and R. van de Molengraft,

"RoboEarth," Robotics Automation Magazine, IEEE, vol. 18, no. 2,

pp. 69–82, 2011.

[19] F. Bonsignorio, J. Hallam, and A. del Pobil, "Defining the requisites

of a replicable robotics experiment," in RSS2009 Workshop on Good

Experimental Methodologies in Robotics, 2009.

[20] R. Esteller-Curto, E. Cervera, A. P. Del Pobil, and R. Marin, "Proposal

of a REST-based architecture server to control a robot," in Innovative

Mobile and Internet Services in Ubiquitous Computing (IMIS), IEEE

International Conference on, 2012, pp. 708–710.

[21] R. Esteller-Curto, A. P. Del Pobil, E. Cervera, and R. Marin, "A test-

bed Internet based architecture proposal for benchmarking of visual

servoing techniques," in Innovative Mobile and Internet Services in

Ubiquitous Computing (IMIS), IEEE International Conference on,

2012, pp. 864–867.

[22] C. Crick, G. Jay, S. Osentoski, and O. C. Jenkins, "ROS and

Rosbridge: Roboticists out of the loop," in Human-Robot Interaction

(HRI), Seventh Annual ACM/IEEE International Conference on, 2012,

pp. 493–494.

[23] D. Gouaillier, V. Hugel, P. Blazevic, C. Kilner, J. Monceaux, P. Lafour-

cade, B. Marnier, J. Serre, and B. Maisonnier, "Mechatronic design

of NAO humanoid," in Robotics and Automation (ICRA), IEEE Inter-

national Conference on, 2009, pp. 769–774.

[24] S. van Noort and A. Visser, "Validation of the dynamics of an

humanoid robot in USARSim," in ACM Proceedings of the Workshop

on Performance Metrics for Intelligent Systems, 2012, pp. 190–197.

[25] T. R. Flowers and K. A. Gossett, "Teaching problem solving, comput-

ing, and information technology with robots," Journal of Computing

Sciences in Colleges, vol. 17, no. 6, pp. 45–55, 2002.

[26] N. Labhart, B. S. Hasler, A. Zbinden, and A. Schmeil, "The ShanghAI

Lectures: A global education project on artificial intelligence," Journal

of Universal Computer Science, vol. 18, no. 18, pp. 2542–2555, 2012.

[27] H. Kitano, S. Tadokoro, I. Noda, H. Matsubara, T. Takahashi, A. Shin-

jou, and S. Shimada, "Robocup rescue: Search and rescue in large-

scale disasters as a domain for autonomous agents research," in

Systems, Man, and Cybernetics, 1999. IEEE SMC'99 Conference

Proceedings. 1999 IEEE International Conference on, vol. 6. IEEE,

1999, pp. 739–743.

[28] S. Balakirsky, R. Madhavan, and C. Scrapper, "NIST/IEEE Virtual

Manufacturing Automation Competition: from earliest beginnings to

future directions," in Proceedings of the 8th Workshop on Performance

Metrics for Intelligent Systems. ACM, 2008, pp. 214–219.

[29] M. Veloso and P. Stone, "Video: Robocup robot soccer history 1997–

2011," in Intelligent Robots and Systems (IROS), IEEE/RSJ Interna-

tional Conference on, 2012, pp. 5452–5453.

6106

... To tame the complexity of programming robots in fully-fledged general-purpose programming languages, a myriad of frameworks aimed at novice robot programming using visual programming languages have been proposed [9]. Many of these follow a block-based approach [2,6,16,17,26], where predefined blocks with varied colors and edges can be put together like pieces of a puzzle to define a robotic controller. ...

... In the future, we plan to provide further rosy training sessions and undergo empirical studies to corroborate its practical value for learning programming via robotics. We plan to improve the rosy environment with more advanced simulation scenarios using, e.g., the Gazebo web client 21 or remote ROS support similar to [6,24]. Orthogonally, we intend to migrate rosy and roshask to ROS 2 in order to explore the more modular support for ROS nodes composition. ...

  • Hugo Pacheco
  • Nuno Macedo Nuno Macedo

Robotics is very appealing and is long recognized as a great way to teach programming, while drawing inspiring connections to other branches of engineering and science such as maths, physics or electronics. Although this symbiotic relationship between robotics and programming is perceived as largely beneficial, educational approaches often feel the need to hide the underlying complexity of the robotic system, but as a result fail to transmit the reactive essence of robot programming to the roboticists and programmers of the future. This paper presents Rosy, a novel language for teaching novice programmers through robotics. Its functional style is both familiar with a high-school algebra background and a materialization of the inherent reactive nature of robotic programming. Working at a higher-level of abstraction also teaches valuable design principles of decomposition of robotics software into collections of interacting controllers. Despite its simplicity, Rosy is completely valid Haskell code compatible with the ROS~ecosystem. We make a convincing case for our language by demonstrating how non-trivial applications can be expressed with ease and clarity, exposing its sound functional programming foundations, and developing a web-enabled robot programming environment.

... To tame the complexity of programming robots in fullyfledged general-purpose programming languages, a myriad of frameworks aimed at novice robot programming using visual programming languages have been proposed [9]. Many of these follow a block-based approach [10]- [14], where predefined blocks with varied colors and edges can be put together like pieces of a puzzle to define a robotic controller. Aside from discussions on whether block-based approaches constitute "real" programming or their programming experience transfers to "real" textual languages [15], [16], and with due exceptions such as [14], the vast majority of blockbased robot programming approaches adopt an imperative mindset: primitive blocks execute individual predefined tasks, such as moving forward during a certain period of time or for a certain distance; and combining blocks amounts to performing sequences of tasks. ...

... In the future, we plan to provide further ROSY training sessions and undergo empirical studies that can corroborate its practical value for learning programming via robotics. We plan to improve the ROSY environment with more advanced simulation scenarios using, e.g., the Gazebo web client 10 or remote ROS support similar to [10]. We also plan to explore the design of novel novice-friendly interfaces that blend textual and visual representations, and graphically combine visual blocks typical of imperative robotic approaches with graphical data flow diagrams typical of advanced FRP approaches. ...

  • Hugo Pacheco
  • Nuno Macedo Nuno Macedo

Robotics is incredibly fun and is long recognized as a great way to teach programming, while drawing inspiring connections to other branches of engineering and science such as maths, physics or electronics. Although this symbiotic relationship between robotics and programming is perceived as largely beneficial, educational approaches often feel the need to hide the underlying complexity of the robotic system, but as a result fail to transmit the reactive essence of robot programming to the roboticists and programmers of the future. This paper presents ROSY, a novel language for teaching novice programmers through robotics. Its functional style is both familiar with a high-school algebra background and a materialization of the inherent reactive nature of robotic programming. Working at a higher-level of abstraction also teaches valuable design principles of decomposition of robotics software into collections of interacting controllers. Despite its simplicity, ROSY is completely valid Haskell code compatible with the ROS ecosystem. We make a convincing case for our language by demonstrating how non-trivial applications can be expressed with ease and clarity, exposing its sound functional programming foundations, and developing a web-enabled robot programming environment.

... The results proved the efficiency of using Web-Socket during a remote manipulation. The use of ROS tools and WebSocket become a standard for NTS in the fourth generation; and many works such as [36,37] were inspired by the PR2 Remote Lab architecture. ...

The Robotic Operating System (ROS) has provided a set of packages for Networked Telerobotic Systems (NTS) to transport high-bandwidth ROS topics over a websocket communication. The main concern was to transport high-bandwidth sensory and kinematic information over the web with a smaller bandwidth usage and a lower time-delay. Yet their solution for transporting kinematic data over the web is not a low-bandwidth-friendly solution. It sends kinematic transforms only on demand which is certainly a better solution than sending a constant stream of data, but not optimal since some of this data is secondary and can be discarded.

... In recent years we have been working on web-based laboratories for both real robots and simulators [4]. We have developed web interfaces for systems based on the ROS middleware [12,3], which provides a hardware abstraction layer, enabling the user to share the same code between a real robot and its simulated model. Our aim is the development of a common platform for robotic simulations, suitable for any RoboCup virtual competition, and even for replicating the leagues that right now only use physical robots. ...

This paper presents the new release of the Robotics Academy learning framework and the open course on Intelligent Robotics available on it . The framework hosts a collection of practical exercises of robot programming for engineering students and teachers at universities. It has evolved from an open tool, which the users had to install on their machines, to an open web platform, simplifying the user's experience. It has been redesigned with the adoption of state-of-the-art web technologies and DevOps that make it cross-platform and scalable. The web browser is the new frontend for the users, both for source code editing and for the monitoring GUI of the exercise execution. All the software dependences are already preinstalled in a container, including the Gazebo simulator. The proposed web platform provides a free and nice way for teaching Robotics following the learn-by-doing approach. It is also a useful complement for remote educational robotics.

In this letter, we introduce ChoiRbot , a toolbox for distributed cooperative robotics based on the novel Robot Operating System (ROS) 2. ChoiRbot provides a fully-functional toolset to execute complex distributed multi-robot tasks, either in simulation or experimentally, with a particular focus on networks of heterogeneous robots without a central coordinator. Thanks to its modular structure, ChoiRbot allows for a highly straight implementation of optimization-based distributed control schemes, such as distributed optimal control, model predictive control, task assignment, in which local computation and communication with neighboring robots are alternated. To this end, the toolbox provides functionalities for the solution of distributed optimization problems. The package can be also used to implement distributed feedback laws that do not need optimization features but do require the exchange of information among robots. The potential of the toolbox is illustrated with simulations and experiments on distributed robotics scenarios with mobile ground robots. The ChoiRbot toolbox is available at https://github.com/OPT4SMART/choirbot .

This paper describes a complete vision-based online robot system that allows controlling both an educational and an industrial robot via web. We address some of the limitations of current similar systems particularly concerning the user interface. Some of its novel features are: its adjustable autonomy, so that the user can decide the right level of interaction from high-level voice commands down to mouse clicks, reducing in this way the cognitive fatigue resulting from remote operation; the interface is predictive, by using a 3D virtual environment endowed with augmented reality capabilities, the user can predict the results of the actions before sending the command to the real robot. Thus, network bandwidth is saved and off-line task specification is possible. This high level interaction is possible thanks to some built-in modules for performing basic tasks such as automatic object recognition, image processing, autonomous grasp determination and speech recognition. Finally, the system has been tested by means of an application in the Education and Training domain. One hundred undergraduate students have been using the web-based interface in order to program "Pick and Place" operations with the system. The results show performance, statistics, connection rates, and the students' opinions, as a way of evaluating the convenience and usability of the user interface.

Middle wares such as Player and ROS are commonly used in network robotics applications in order to provide networking capabilities and other functionalities such as remote control, vision, and others. On the other hand, they introduce more complexity to the system and decrease the system performance. For that reason, the use of web services, remote procedure calls, or messaging can be considered as an alternative to minimize the system complexity and design a more specific architecture that works at a certain performance. In fact, using simple HTTP connections to a robot can be very adequate in education and training or benchmarking applications where the students and researchers must concentrate on the design of the system and have an easy way to interact with the robot. This article proposes a REST architecture used over a HTTP connection to control a robot and exchanging information using xml. That provide great advantages, using standard HTTP calls enhances the availability of the system, and increases the debug facilities. The REST architecture has some characteristics that sometimes can be seen as an advantage and other times as an inconvenient, it is very simple and stateless. As opposite to SOAP and other RPC servers, REST is based on resources, not on operations. The REST philosophy aims to access URIs through HTTP protocol using CRUD operations. On the other hand, there are functionalities not supported as the need of callbacks which can be solved with different approaches (polling or non-REST callbacks). The research is based on the experience of constructing a server to control a 6-degree of freedom FANUC robot, letting the robot be accessed by simple HTTP connections using a REST-based architecture.

This paper discuss the significance of the remote laboratory as an example of an effective E-learning tool intended for distance education of undergraduate, graduate and PhD students in the field of robotics and automation. Also it offers employees working in Small and Medium Enterprises (SME) a tool for life-long learning. As a basis for a roundtable discussion, a complete system offering remote laboratory for robotics and automation, based on robotic vision is suggested. The roundtable aims to discuss both the hardware configuration as well as the pedagogical aspects related to the use of this remote laboratory.

Using the Internet to control and access real devices such as robots opens the door to new opportunities as the design of telelaboratories that permit the implementation of new algorithms using specific and detailed constrains. This is fundamental for designing benchmarks that allow the experiments to be made in a more scientific manner, taking into account that these experiments should be able to be reproduced in the future by other people under the same circumstances. This fact is fundamental to the implementation of new algorithms that can be compared with previous results from other scientific teams. The authors of this article consider that an interesting way to rapidly evaluate and benchmark a new robotic manipulation algorithm is by including into the system the possibility to upload Mat lab programs. This tool is normally used by the engineers for prototyping, including a huge set of already existing and standardized algorithms, some of them related to vision and robotic control. This paper presents the system architecture of an Internet robotic system that permits uploading a Mat lab algorithm to control a robotic arm/hand by means of visual servoing techniques. The system can specify a particular experiment with a set of initial states by using an XML representation, and evaluate the results by grasping a particular set of objects. Therefore, this system architecture presents the following challenges, firstly, to be used as a test-bed for visual servoing control applications, and secondly to benchmark these algorithms. At the moment of writing the system is under construction and the software and hardware architecture is being tested. Every component of the architecture is designed following high modularity principles, offering its services through the net. This permits to accomplish the requirements of the architecture: interchangable parts and two-target design, trying to minimize its complexity.

The interest on educational remote laboratories has increased, as have the technologies involved in their development and deployment. These laboratories enable students to use real equipment located in the university from the Internet. This way, students can extend their personal learning experience by testing with real equipment what they are studying at home, or performing hands-on-lab sessions at night, on weekends or whenever the traditional laboratories are physically closed. A unique feature of remote laboratories when compared to traditional laboratories is that the distance of the student is not an issue, so remote laboratories can be shared with other schools or universities. In this contribution, authors present and discuss a widely spread remote laboratory (VISIR, present in 6 european universities + 1 in India) shared among 3 institutions (2 universities + 1 high school). During the exhibition, demonstration of the laboratories being shared will be shown.

  • Manuela Veloso
  • Peter Stone Peter Stone

RoboCup is an international initiative to foster inter-disciplinary research and education in robotics, artificial intelligence, computer science, and engineering. We focus on the challenges of multi-robot systems, where robots cooperate with each other and when needed with humans to achieve goals in complex and uncertain environments, such as robot soccer, as RoboCupSoccer, robot rescue, as RoboCupRescue, and the wide spectrum of robot applications in daily life, as RoboCup@Home. We also include sponsored demonstrations that explore possible new scientific challenges, such as collaborative logistics. Furthermore, we are committed to contribute to the education of children in robotics: RoboCupJunior provides an exciting introduction to science and engineering for children. Overall, RoboCup is a large vibrant community, composed of university faculty and student researchers and engineers, school teachers, children, and parents. RoboCup serves as a substrate to a wide variety of academic entreprises, ranging from courses and class projects to undergraduate, Masters, and PhD research theses. RoboCup has an international annual event consisting of robot competitions and a symposium. RoboCup has consistently grown, from a few hundred participants in 1997 to close to 3,000 in 2011.

This paper presents the development process of an auto-operated telepresence system for the Nao humanoid robot with the main functionality of directing the robot autonomously to an operator-defined target location within a static workspace. The workspace is observed by an array of top-view cameras, which are used to localize the robot by means of a color-based marker detection technique. The system is accessible world-wide to the remote operator through any Internet-capable device via a web-based control interface. The web server responsible for coordinating the communication between system and operator is hosted on a cloud-based infrastructure online. The system was realized as a case study for the Agent Relation Charts (ARCs), a new model driven design methodology for multi-agent cloud-based systems conceived at the Le2i laboratory in Le Creusot, France.

E-learning is a modern and effective approach for training in various areas and at different levels of education. This paper gives an overview of SyRoTek, an e-learning platform for mobile robotics, artificial intelligence, control engineering, and related domains. SyRoTek provides remote access to a set of fully autonomous mobile robots placed in a restricted area with dynamically reconfigurable obstacles, which enables solving a huge variety of problems. A user is able to control the robots in real time by their own developed algorithms as well as being able to analyze gathered data and observe activity of the robots by provided interfaces. The system is currently used for education at the Czech Technical University in Prague, Prague, Czech Republic, and at the University of Buenos Aires, Buenos, Aires, Argentina, and it is freely accessible to other institutions. In addition to the system overview, this paper presents the experience gained from the actual deployment of the system in teaching activities.