2. Getting Familiar with ROBOTS
In the past humans only fantasized about robots,
today, many types of robots are a reality.
For example, there are
i. Industrial robots
ii. Toy robots
iii. Space exploration robots
iv. Robots used in the medical field
v. Robots used in agriculture and
vi. Humanoid robots being created for
providing services in household,
for e.g. as caregivers for the elderly and
the handicapped.
4. Networked Robot
A Networked robot refers to a system
where many intelligent devices are
connected to a communication network
such as Internet or LAN.
These robots operate together in
coordination or cooperatively with sensors,
embedded computers and human users.
Cooperation is achieved when more than
one entity is working towards a common
goal and coordination implies a
relationship between the communicating
entities to ensure- efficiency, better
throughput, and lesser time for
completion of the task.
5. Technology Issues
How is it different from a Need for a networked
traditional robot…??? robot…???
a.) Internet improves drastically the a.) Devices can now exchange
way of receiving and sending the data information between each other as
among applications. long as they are connected to the
internet..
b.) With the introduction of internet
and its use in robotics field, robot b.) Improved efficiency.
developers found their work
complexity reduced. c.) Can react to the information
sensed by other robots at a remote
c.) Robots can now perform activities location.
that are well beyond the capabilities of
a single robot by interacting with each d.) It supports the robot with fault-
other or a human controller wirelessly tolerance system in robot design and
using TCP/IP protocol hence prevent robot failures.
d.) Eg:- Surgeries performed by a e.) Components with distinct
group of robots by communicating similarities are bound together making
with each other. the whole system stronger than the
sum of parts.
6. Hardware Design
The system is designed in such a manner to make it as modular as possible. The
concept of modularity is very useful as it :
1. Improves flexibility
2. Provides scope for future extensions
3. Provides the ability to replace the parts according to the needs of the modules
The System is divided into following 3 modules:-
(i) Main Module : It involves the robot’s body and a main processor which is the central
controlling unit and is also responsible for storing, manipulating and processing the
data. A PC main board is deployed rather than embedded system as it provides
flexibility and capability to be programmed using any available software package.
(ii) Data Processing Module : It consists of software responsible for acquiring,
manipulating and processing the data from different sensors. As an example, the
software to process the temperature data is different from other sensors such as
humidity sensors and so on. We can freely use any programming language such as C,
Java, Perl and many more to develop those software.
(iii) Data acquisition modules : Also called a hardware modules has multiple
hardware related to data acquisition, measurement and control system.
7. Concepts Applied
Navigation and Turning Geometrics :
Navigation is the ability of a mobile
system to catch up its actual position and
to determine how to reach the next
destination based on the present position.
Algorithm used here: - Dead Reckoning
It measures the distances on: -
a.) Straight Line Movement
For straight line distance is counted by
counting the no. of wheel rotations using
an opt coupler attached on each wheel.
Knowing the wheel diameter and the
degree of each transition level are
important. For the fig. shown opt coupler
calculates distance using: -
8. b.) Curved Line Movement
For a curved line where the angle of rotation comes
into picture perimeter method only cant be
employed. Each wheel is moving with different
speed which makes it turn left or right. As a result it
will turn through an arc of a circle centered at point
O with radius R..
If it turns with an angle θ and dL and dR are the
arcs made by wheel making same angle then,
On substituting R we have,
9. Wireless Networking :
1. The evolution of wireless replacing wired
enables individuals to use computer apps.
anywhere.
2. It provides freedom of movement specially
when the machines are connected to network
from separate locations.
A wireless LAN consists of radio NICs,
wireless access points, routers and antenna.
Common Gateway Interfacing :
It is a program interface on the server that
accepts requests sent by the clients. It is a part
of web server module to communicate with
another program running on the server.
Advantageous as: -
It is the CGI which is responsible for the server
to receive requests or some specific data from It provides an interface between the
main unit and data acquisition module.
the client, then the CGI program processes the
received information and gives the feedback. And it can be programmed using
different programming languages.
10. Software Based Solution
The software solution is provided for the previous hardware design only, which consisted
of 3 modules : - Main Unit, Data Acquisition Module and Data Processing Module.
It assumes the hardware modules to be modeled as: -
The goal of this concept was: -
a.) To improve the flexibilities of robot to b.) Enables the users to replace the sensors
meet various levels of monitoring and with and other data processing modules with any
less modification in the design.
available packages later on, with the same
main unit. Or, inversely replacing the main
unit with the same data acquisition and
processing modules.
11. Characteristics of the Concept :
All aspects are fully controllable wirelessly over web through TCP/IP
protocol.
Acquired data are stored and processed at the robot’s local system
independent from external apparatus.
The processed data can be retrieved and analyzed by users also over
web in such a way that there is no need for additional software
installation at the user’s terminal.
The hardware driven parts are replaced as much as possible with the
software driven systems, even in the main unit.
High compatibility due to limited hardware, rather embedded
software, used in the system.
12. Hardware and Software Together
Microcontroller Interfacing
It translates or decodes the command
that is sent by main modules into
appropriate action.
To avoid collision while performing
task we separate the microcontroller
into two categories.
One for driving an actuator and
One for reading the data.
Main Unit Software
This include the software embedded in the
main unit, OS, web server, networking,
some interpreters like Java. It also includes
Monitoring system that processes the
feedback from actuators and reflecting
it back to the system. Fig. Microcontroller
commands sent by main
Navigation System module
Web interface for interfacing the
whole system with the users.
13. Data Acquisition Hardware • Data Acquisition Software
This module contains some What previously done was all acquired
hardware interfaces for both controlling data from the attached sensors through
microcontrollers was processed by the
the actuators and retrieving the measured hardware-based filters.
data from sensors. In the Fig only two
microcontrollers are shown performing But this approach suggested that the
the raw signals should be sent directly to the
two main tasks of the system. main unit to be processed and filtered
using the dedicated software.
Both microcontrollers are connected to
the This was generic kind of scheme for all
types of data received from various
parallel ports as they are easily sensors. Hence reducing the need for extra
programmed. hardware and also improves its flexibility
and modularity.
14. • Data Processing Software
This component plays an important role to get rid off any software installation at the
user’s terminal connecting to the robot.
User just run the browser, points it to the assigned address and that’s all. This
software is a dedicated software for a particular purpose relevant with the
acquirable data taken from a set of data acquisition hardware.
It is remarked here that the main unit has a capability to install a new or upgrade a new version of
DAPS software over web.
ADVANTAGES OF SOFTWARE DESIGN
1. With the availability of different software one might have single main unit with different
DAPS packages.
2. It enables the users to replace the outdated sensors or actuators while using the same
packages and main unit.
3. Also the case of replacing the main unit with an appropriate one according to the needs of
the environment while using same DAPS packages.
4. Some considerable packages are, for example, sensors of hazardous gas can be combined
with vibration sensor and software based seismograph, and so forth. This is the reason it is
called as a generic robot which is adaptable to any DAPS.
15. The Implementation
LIPI NETWORKED ROBOT-
“To observe hazardous gas environment”
DAPS packages are designed to observe hazard gas in
certain area and to measure the surrounding environment.
The whole system then consists of: -
• Main unit:
It includes main processor (mini PC etc), storage media
(mini hard-disk), access point, power supply, battery and
all mechanical components. Of course, it also includes the
underlying operating system, integrated web interface,
hardware control and monitoring systems and storing
system for all data.
• Data acquisition module:
It consists of a set of sensors (CO gas, temperature,
humidity, NO gas, smoke) and small camera. The
software in this module are also responsible for filtering
the raw signal from sensors.
• Data processing module:
It covers all add-on softwares to process, store and analyze
the acquired data and display the results accordingly. The
system provides a real-time warning system regarding the
air quality in a certain area.
16. Global Architecture
Several devices are needed to build
the whole prototype. Some of them
are shown in the fig. Each has its own
specific function.
1. Wireless access point - for transmitting and receiving the
data especially when a client sends a request to the server and
vice versa.
2. The motherboard - a processor unit storing web server and
all embedded software. It acts as a master controller to
control and monitor the robot’s actuators and sensors.
3. Two microcontrollers for different tasks. Software Required:-
- Linux Operating system
AT89S51 for controlling the DC motor , and (Ubuntu).
- Apache web server software.
ATmega8535 for measuring or acquiring the data from the - Software for video streaming
sensors. over web.
- Web browser for the user
To measure wheel counter Opt Coupler is used interface web pages.
To measure the direction the digital compass module CMPS03 - CGI-BIN script.
- C/C++ compiler for accessing
is deployed.
the hardware port (GCC).
- Some additional software
(JAVA etc).
17. The Flow of messages
Data flow between the client and the main module or server takes place as:-
a.) Client downloads main
web pages.
b.) Sends particular requests
through the web.
c.) Receives the feedback.
18. Parallel port programming
Parallel ports are easier to work as compared to serial port as there is no need for
special IC’s which are used for interfacing serial ports.
In this implementation port addresses being used are:-
Data 0x378
Status 0x379
Control 0x37A
In the present work the author has used the base address as the output port if
there is a need for it to be used as both input and output then there is
a.) Need for additional circuits.
b.) Conflict among incoming and outgoing data.
To avoid this problem we set the port in nibble mode by using another port
address instead of base address.
19. Working In Nibble Mode
Nibble = 4 bits, means we are referring 4 bits at a
time.
Nibble mode uses a 2 line to 1 line multiplexer
(74LS157) to read a nibble of data at a time.
A/B input is low -> A inputs are selected and vice
versa.
The Y outputs connected to status port, in such a
manner that it represents the nibble of the status
register.
Short program on the algorithm to control the
motors and read compass in LNR using C language.
And along with it is explained how the nibble mode
is operated.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/io.h>
#define base 0x378
#define status base+1
#define control base+2
20. main(int argc, char **argv)
{
int input=0;
if (ioperm(base,1,1))
fprintf(stderr, "Error: port %xn", base),
exit(1);
if (ioperm(status,1,1))
fprintf(stderr, "Error: port %xn", status),
exit(1);
if (ioperm(control,1,1))
fprintf(stderr, "Error: port %xn", control),
exit(1);
outb(0x01, base); //to set the robot move forward
usleep(5000);
outb(0x09, base); //command to read compass
usleep(5000);
outb(inb(control) & 0x0F,control);
input=(inb(status) & 0x0F);
usleep(100);
outb(inb(control) 0xF0,control);
input=input|(inb(status) & 0xF0);
usleep(100);
printf("%d",input);
}
21. Discussion
SUMMARY
As a typical implementation of the concept, LNR is developed.
It is shown that the software-based solution is crucial to enable the required features.
It improves significantly its flexibility to various purposes.
It is argued that regarding its main objective as a monitoring apparatus, LNR is quite efficient
and has good total cost-performance due to its modularity and dominant software based
solutions.
FUTURE CHALLENGES
This prototype works well in hazardous areas where minimum human
involvement is required and also its design is cost efficient but it is observed that
more efforts are still required. Some of them are:
-
1. Using serial ports along with parallel ports for faster processing.
2. Citing more examples of DAPS packages to fit certain purposes.
3. More complicated robot’s actuators and the relevant algorithms.
4. Need for multiple humans to become the part of the communication network.
22. References
[1] I. Firmansyah et.al, LIPI Networked Robot, http://robot.teori.fisika.lipi.go.id.
[2] I. Firmansyah, Z. Akbar, B. Hermanto and L.T. Handoko, Modular and Self-
independent Networked Robot, Proc. of the 2008 IEEE International Conference on
Systems, Man, and Cybernetics, Singapore, 2008.
[3] I. Firmansyah et.al, openNR: open architecture for modular networked robot,
http://sourceforge.net/projects/opennr/.
[4] Theoretical concepts and facts www.wikipedia.com
[5] LIPI Wireless Robot, http://robot.teori.fisika.lipi.go.id.
[6] LIPI Networked Robot, http://opennr.teori.fisika.lipi.go.id.
[7] http://cmc.cs.dartmouth.edu/papers/corke:flying.pdf
[8] Programming Constructs from article http://members.tripod.com/~srohit/IO-
Port-Prog.html
[9] http://www.buzzle.com/articles/types-of-robots.html
[10] http://www.robots.com/