0% found this document useful (0 votes)
71 views

Development of Web Control Panel For ROS Operated Robots

1. The document describes the development of a web control panel for ROS-based robots using various ROS packages and Qt. 2. Key features of the web control panel include the ability to start and stop processes, subscribe to topics, control speed with sliders, and stream camera feeds over the web. 3. The control panel was built using packages like rosbridge_suite, async_web_server_cpp, web_video_server, and Qt classes to enable process control and communication between the web interface and ROS.

Uploaded by

Malkhan Singh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views

Development of Web Control Panel For ROS Operated Robots

1. The document describes the development of a web control panel for ROS-based robots using various ROS packages and Qt. 2. Key features of the web control panel include the ability to start and stop processes, subscribe to topics, control speed with sliders, and stream camera feeds over the web. 3. The control panel was built using packages like rosbridge_suite, async_web_server_cpp, web_video_server, and Qt classes to enable process control and communication between the web interface and ROS.

Uploaded by

Malkhan Singh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Development of Web Control Panel

Malkhan Singh
Computer Science and Engineering
National Institute of Tecchnology
Rourkela, India
[email protected]

Abstract— The Robot Operating System(ROS) is the standard


middleware for providing local area network control to robot II. DEVELOPMENT OF WEB APP
systems. But to work with a ROS based robot is quite difficult A web app is made to implement above libraries and to get
because for ROS the officially supported operating system is results. It contains server features like list of processes to
Ubuntu. So, to handle such robots one must have system with
start/stop, subscribe a particular topic even image type, get
Ubuntu. One more problem with such robots is one have to
manage too many tabs to start different nodes and monitor status of processes, get list of topics, sliders to control speed
them. of thrusters.
To tackle the above mentioned problem, we plan to implement As ROS is the collection of packages. To work with one
rosbridge library developed by Robot Web Tool group, Which package you need some supporting packages. Here we need
support some important and basic features of ROS, like following packages:-
rosbridge protocol(to make connection),
publishing/subscribing a topic, calling a service and getting & A. rosbridge_suite
setting a param value. Inorder to solve problem of start and Rosbridge provides a JSON API to ROS for non-ROS
monitor nodes in different tabs, we plan to use QProcess class environment. rosbridge_suite is a meta-package which
of Qt a advance library of C++ also used to develop GUI support various front-end packages for rosbridge. Here is the
widgets . QProcess class is capable to handle any number of command to install it “sudo apt-get install ros-kinetic-
processes, in term of start process, get status of process and rosbridge-server”
terminate process, it also emit events on change in states of a
process.
Keywords—Robot Operating System, Ubuntu, Rosbridge, Qt,
B. async_web_server_cpp
QProcess. An implementation of an HTTP web server in C++. It
helps to ROS package web_video_server to stream images
I. INTRODUCTION and videos on http.
The recent years has witnessed a lot of progress in various C. web_video_server
fields of technology. One such field is Robotics. Robot
This package enables HTTP streaming of ROS image
Operating System (ROS) is the best option as software of
topics in multiple formats.
robotics. The Robot Operating System is an open-source,
meta-operating system of robots. It provides functionality
D. Apache2
for hardware abstraction, device derivers, inter-process
communication over multiple machines, tools for testing and The apache HTTP server also called apache is a web
visualization. ROS allows to design complex software in server.
simple way also it provides a network of processes(nodes)
with hub. These nodes can be run on multiple devices. The E. robot_upstart
main ways of creating the network are using services or This package allows robot administrators to generate
defining publisher/subscriber connections with other nodes. background jobs to run on system startup.
Web applications are user-friendly, interactive and
universally accessible. Many robotics researchers have III. WORKING OF WEB APP
utilized Web technologies for remote control of robots. This Working of app is the combination of all above
makes ease to end-users to work with ROS based robots. To mentioned packages. Here we are showing working of
achieve this Robot Web Tools a research group already have features with the help of figure 3.1
developed rosbridge and rosjs library which are capable of
send/receive messages in JSON format to ROS topics.
rosbridge provides functionality of ROS systems to non-
ROS systems. Basically, rosbridge is the bridge between
ROS and non-ROS systems. It uses websocket for
communication. rosjs is a javascript library which manages
connections to rosbridge over websockets. This enables the
development of web application to control robots.
Fig. 3. Video stream of front and bottom camera

Fig. 1. Process of Web Control Panel

A. How to start/stop a process


This web app is able to start/stop a process from browser
also can get status of respective process. We are using
following existing packages for our purpose.
a. Use of rosbridge_suite
Rosbridge support messaging between browser
and ros master, used it here to publish name of
process from browser and to subscribe status of
process in browser.
b. Use of Qt
Qt is used to create graphical user interface as
well as it has collections of classes which deal
with operating system. We used QProcess class
which is used to start processes and to
communicate with them. Here we are
subscribing name of process which is published
from browser to start/stop and using qprocess
we are handling it.

Fig. 2. PushButton to start/stop and View Status of Processes

B. Working of Video Stream


This web app is able to stream camera feed over browser
with good speed. Fig. 4. Video stream of front and bottom camera in mobile device
a. Use of web_video_server
To stream video over http, we are using
web_video_server. In the browser we are
subscribing that stream using it’s topic name.
1. Web Application for Robots using rosbridge
(Paper 1)
2. Development of ROS-based GUI for control of
an autonomous surface vehicle (Paper 2)

TABLE I. COMPARISON WITH EXISTING PROJECTS

Features Paper 1 Paper 2 Current


SNo.
1. Process start/stop No Yes Yes
Slider to control
2. No No Yes
speed
3. Get list of Topics Yes No Yes
Subscribe perticular
4. Yes No Yes
topic
5 Get Camera Feed No Yes Yes

Fig. 5. List of all topics in mobile device 6. System Independent Yes No Yes

CONCLUSION
In this paper we have presented a web application to
control ROS based robot. This web app enables to start/stop
processes, to stream camera feed and to control speed of
thrusters with sliders, subscribe any topic by it’s name and
it’s message type, get list of all topics, get status of
processes.
Since, It’s a web app. It can be run on any device and
system. Hence, it solve problem of system dependencies of
ROS, now robots can be controller from browser of any
device./system. This app is easy to use and work efficiently.
Fig. 6. Sliders to control thruster speed
REFERENCES
IV. RELATED WORK AND COMPARISON
[1] Open Source Robotics Foundation, Robot Operating System.
Robotics engineering is moving to cloud robotics. There http://www.ros.org.
are many researchers are utilizing web technologies for [2] Qt, QProcess class, https://doc.qt.io/archives/qt-4.8/qprocess.html.
remote teleoperation of robots. Development of rosbridge is [3] Jonathan Mace,rosbridge_suite, http://www.ros.org/rosbridge_suite
enables control ROS functionality by non-ROS programs. [4] Asynchronous WebSocket Server in C++. https://github.com/GT-
Which is really a good achievement for cloud robotics. There RAIL/async_web_server_cpp
is group of researchers named Robot Web Tools is working [5] Robot Web Tools, Web Video Server
hard for web tools of robots. https://github.com/RobotWebTools/web_video_server
[6] Jihoon Lee, Web Application for Robots using rosbridge
A. Comparison with existing work [7] Sai Sahith Velamala, Devendra Patil, Xie Ming. 2017 IEEE
International Conference on Robotics and biomimetics (ROBIO).
We have studies two existing papers which are related to Development of ROS-based GUI for control of an autonomous
our research. We are presenting here a comparative study surface vehicle.
with them. [8] Russell Toris, Julius Kammerl, David V. Lu, Jihoon Lee, Odest
Chadwicke Jenkins, Sarah Osentoski6, Mitchell Wills and Sonia
Chernova, Robot Web Tools: Efficient Messaging for Cloud Robotics

You might also like