Internship Report - Robotics
Internship Report - Robotics
INTERNSHIP REPORT
Internship Report P a g e 1 | 45
Table of Contents:
4. What is a MicroController?
5. Microprocessor vs MicroController
6. What is Robotics
7. Mobile Robots
9. Interfaces in Robotics
Internship Report P a g e 2 | 45
11. SENSORS in Robotics
Internship Report P a g e 3 | 45
INTERNSHIP REPORT ON Robotics
1. Introduction on Robotics
o Simply, we can call any electronic device that has a computer system
Internship Report P a g e 4 | 45
o The microprocessor is the core of computer systems.
by them.
o Embedded systems are made to perform few tasks only, after implementation
o Ex. You can’t watch movies using the microprocessor of your microwave
oven!!
Internship Report P a g e 5 | 45
2. Embedded Systems Examples
Internship Report P a g e 6 | 45
o Personal digital assistants (PDAs)
o Telephones/cell phones
o Cameras
Internship Report P a g e 7 | 45
4. What is a MicroController?
i. It’s a full computer system on a chip, even if its resources are far
iv. a flash memory, RAM, I/O ports, serial communication ports, ADC …
Etc.
v. A Timer Module to allow the MCU to perform tasks for certain time
periods.
Internship Report P a g e 8 | 45
vi. A Serial I/O Port to allow data to flow between the MC and other
vii. An ADC to allow the MCU to accept analog inputs for processing.
ix. circuits to support it like: I/O devices, RAM, ROM, DMA controllers,
5. Microprocessor vs MicroController
Internship Report P a g e 9 | 45
Internship Report P a g e 10 | 45
Internship Report P a g e 11 | 45
6. What is Robotics
Robotics has come a long way. Especially for mobile robots, a similar trend is
happening as we have seen for computer systems: the transition from
mainframe computing via workstations to PCs, which will probably continue with
handheld devices for many applications. In the past, mobile robots were
controlled by heavy, large, and expensive computer systems that could not be
carried and had to be linked via cable or wireless devices. Today, however, we
can build small mobile robots with numerous actuators and sensors that are
controlled by inexpensive, small, and light embedded computer systems that are
carried on-board the robot. There has been a tremendous increase of interest in
mobile robots. Not just as interesting toys or inspired by science fiction stories or
movies [Asimov 1950], but as a perfect tool for engineering education, mobile
robots are used today at almost all universities in undergraduate and graduate
courses in,
o Computer Science/Computer Engineering,
o Information Technology,
o Cybernetics,
o Electrical Engineering,
o Mechanical Engineering
o Mechatronics.
Internship Report P a g e 12 | 45
o First of all, a robot is a tangible, self-contained piece of real-world
hardware. Students can relate to a robot much better than to a piece of
software. Tasks to be solved involving a robot are of a practical nature and
directly “make sense” to students, much more so than, for example, the
inevitable comparison of sorting algorithms.
o Secondly, all problems involving “real-world hardware” such as a robot, are
in many ways harder than solving a theoretical problem. The “perfect
world” which often is the realm of pure software systems does not exist
here. Any actuator can only be positioned to a certain degree of accuracy,
and all sensors have intrinsic reading errors and certain limitations.
Therefore, a working robot program will be much more than just a logic
solution coded in software. It will be a robust system that takes into
account and overcomes inaccuracies and imperfections. In summary: a
valid engineering approach to a typical (industrial) problem.
o Third and finally, mobile robot programming is enjoyable and an
inspiration to students. The fact that there is a moving system whose
behavior can be specified by a piece of software is a challenge. This can
even be amplified by introducing robot competitions where two teams of
robots compete in solving a particular task [Bräunl 1999] – achieving a
goal with autonomously operating robots, not remote controlled
destructive “robot wars”.
7. Mobile Robots
Since the foundation of the Mobile Robot Lab by the author at The University of
Western Australia in 1998, we have developed a number of mobile robots,
including wheeled, tracked, legged, flying, and underwater robots. We call these
Internship Report P a g e 13 | 45
robots the “EyeBot family” of mobile robots, because they are all using the same
embedded controller “EyeCon”
have been completely separated by using two different motors. Therefore, the
control software for driving curves will be very simple. A disadvantage of this
design is that the robot cannot turn on the spot, since the driven wheel is not
located at its center. The robot design in the middle of Figure is called
“differential drive” and is one of the most commonly used mobile robot designs.
The combination of two driven wheels allows the robot to be driven straight, in a
curve, or to turn on the spot. The translation between driving commands, for
example a curve of a given radius, and the corresponding wheel speeds has to
Internship Report P a g e 14 | 45
be done using software. Another advantage of this design is that motors and
wheels are in fixed positions and do not need to be turned as in the previous
design. This simplifies the robot mechanics design considerably. Finally, on the
right-hand side of Figure is the so-called “Ackermann Steering”, which is the
standard drive and steering system of a rear-driven passenger car. We have one
motor for driving both rear wheels via a differential box and one motor for
combined steering of both front wheels. It is interesting to note that all of these
different mobile robot designs require two motors in total for driving and
steering. A special case of a wheeled robot is the omni-directional “Mecanum
drive” robot in Figure, left. It uses four driven wheels with a special wheel
design.
One disadvantage of all wheeled robots is that they require a street or some sort
of flat surface for driving. Tracked robots are more flexible and can navigate over
rough terrain. However, they cannot navigate as accurately as a wheeled robot.
Tracked robots also need two motors, one for each track.
Legged robots are the final category of land-based mobile robots. Like
tracked robots, they can navigate over rough terrain or climb up and down
stairs, for example. There are many different designs for legged robots,
depending on their number of legs. The general rule is: the more legs, the easier
to balance. For example, the six-legged robot shown in the figure can be
Internship Report P a g e 15 | 45
operated in such a way that three legs are always on the ground while three legs
are in the air. The robot will be stable at all times, resting on a tripod formed
from the three legs currently on the ground – provided its center of mass falls in
the triangle described by these three legs. The less legs a robot has, the more
complex it gets to balance and walk, for example a robot with only four legs
needs to be carefully controlled, in order not to fall over. A biped (two-legged)
robot cannot play the same trick with a supporting triangle, since that requires at
least three legs. So other techniques for balancing need to be employed. Legged
robots usually require two or more motors (“degrees of freedom”) per leg, so a
six-legged robot requires at least 12 motors. Many biped robot designs have five
or more motors per leg, which results in a rather large total number of degrees
of freedom and also in considerable weight and cost. Braitenberg vehicles A very
interesting conceptual abstraction of actuators, sensors, and robot control is the
vehicles described by Braitenberg [Braitenberg 1984]. In one example, we have
a simple interaction between motors and light sensors. If a light sensor is
activated by a light source, it will proportionally increase the speed of the motor
it is linked to.
Our robot has two light sensors, one on the front left, one on the front right. The
left light sensor is linked to the left motor, the right sensor to the right motor. If
a light source appears in front of the robot, it will start driving toward it, because
both sensors will activate both motors. However, what happens if the robot gets
Internship Report P a g e 16 | 45
closer to the light source and goes slightly off course? In this case, one of the
sensors will be closer to the light source (the left sensor in the figure), and
therefore one of the motors (the left motor in the figure) will become faster than
the other. This will result in a curve trajectory of our robot and it will miss the
light source.
Internship Report P a g e 17 | 45
The EyeCon is a small, light, and fully self-contained embedded controller.
It combines a 32bit CPU with a number of standard interfaces and drivers for
DC motors, servos, several types of sensors, plus of course a digital color
camera. Unlike most other controllers, the EyeCon comes with a complete built-
in user interface: it comprises a large graphics display for displaying text
messages and graphics, as well as four user input buttons. Also, a microphone
and a speaker are included. The main characteristics of the EyeCon are:
EyeCon specs
o 25MHz 32bit controller (Motorola M68332)
o 1MB RAM, extendable to 2MB
o 512KB ROM (for system + user programs)
o 1 Parallel port
o 3 Serial ports (1 at V24, 2 at TTL)
o 8 Digital inputs
o 8 Digital outputs
o 16 Timing processor unit inputs/outputs
o 8 Analog inputs
o Single compact PCB
o Interface for color and grayscale camera
o Large graphics LCD (128u64 pixels)
o 4 input buttons
o Reset button
o Power switch
o Audio output
Piezo speaker
Adapter and volume potentiometer for external speaker
Internship Report P a g e 18 | 45
o Microphone for audio input
o Battery level indication
o Connectors for actuators and sensors:
Digital camera
2 DC motors with encoders
12 Servos
6 Infrared sensors
6 Free analog inputs
One of the biggest achievements in designing hardware and software for the
EyeCon embedded controller was interfacing to a digital camera to allow onboard
real-time image processing. We started with grayscale and color Connectix
“QuickCam” camera modules for which interface specifications were available.
However, this was no longer the case for successor models and it is virtually
impossible to interface a camera if the manufacturer does not disclose the
protocol. This lead us to develop our own camera module “EyeCam” using low
resolution CMOS sensor chips. The current design includes a FIFO hardware
buffer to increase the throughput of image data. A number of simpler robots use
only 8bit controllers [Jones, Flynn, Seiger 1999]. However, the major advantage
of using a 32bit controller versus an 8bit controller is not just its higher CPU
frequency (about 25 times faster)
9. Interfaces in Robotics
A number of interfaces are available on most embedded systems. These are
digital inputs, digital outputs, and analog inputs. Analog outputs are not always
required and would also need additional amplifiers to drive any actuators.
Instead, DC motors are usually driven by using a digital output line and a pulsing
technique called “pulse width modulation” (PWM).
Internship Report P a g e 19 | 45
10. Operating System in Robotics
Embedded systems can have anything between a complex real-time operating
system, such as Linux, or just the application program with no operating system,
whatsoever. It all depends on the intended application area. For the EyeCon
controller, we developed our own operating system RoBIOS (Robot Basic Input
Output System), which is a very lean real-time operating system that provides a
monitor program as user interface, system functions (including multithreading,
semaphores, timers), plus a comprehensive device driver library for all kinds of
robotics and embedded systems applications. This includes serial/parallel
communication, DC motors, servos, various sensors, graphics/text output, and
input buttons.
Internship Report P a g e 20 | 45
The RoBIOS monitor program starts at power-up and provides a comprehensive
control interface to download and run programs, load and store programs in
flash-ROM, test system components, and to set a number of system parameters.
An additional system component, independent of RoBIOS, is theHardware
Description Table (HDT, see Appendix C), which serves as a user configurable
hardware abstraction layer [Kasper et al. 2000], [Bräunl 2001]. RoBIOS is a
software package that resides in the flash-ROM of the controller and acts on the
one hand as a basic multithreaded operating system and on the other hand as a
large library of user functions and drivers to interface all on-board and off-board
devices available for the EyeCon controller. RoBIOS offers a comprehensive user
interface which will be displayed on the integrated LCD after start-up. Here the
user can download, store, and execute programs, change system settings, and
test any connected hardware that has been registered in the HDT.
Internship Report P a g e 21 | 45
The RoBIOS structure and its relation to system hardware and the user program.
Hardware access from both the monitor program and the user program is
through RoBIOS library functions. Also, the monitor program deals with
downloading of application program files, storing/ retrieving programs to/from
ROM, etc. The RoBIOS operating system and the associated HDT both reside in
the controller’s flash-ROM, but they come from separate binary files and can be
downloaded independently. This allows updating of the RoBIOS operating system
without having to reconfigure the HDT and vice versa. Together the two binaries
occupy the first 128KB of the flash-ROM; the remaining 384KB are used to store
up to three user programs with a maximum size of 128KB each.
Internship Report P a g e 22 | 45
Since RoBIOS is continuously being enhanced and new features and drivers are
being added, the growing RoBIOS image is stored in compressed form in ROM.
User programs may also be compressed with utility srec2bin before downloading.
At start-up, a bootstrap loader transfers the compressed RoBIOS from ROM to an
uncompressed version in RAM. In a similar way, RoBIOS unpacks each user
program when copying from ROM to RAM before execution. User programs and
the operating system itself can run faster in RAM than in ROM, because of faster
memory access times. Each operating system comprises machine-independent
parts (for example higher-level functions) and machine-dependent parts (for
example device drivers for particular hardware components). Care has been
taken to keep the machine-dependent part as small as possible, to be able to
perform porting to a different hardware in the future at minimal cost.
Internship Report P a g e 23 | 45
11. SENSORS in Robotics
There are a vast number of different sensors being used in robotics, applying
different measurement techniques, and using different interfaces to a controller.
This, unfortunately, makes sensors a difficult subject to cover. We will, however,
select a number of typical sensor systems and discuss their details in hardware
and software. The scope of this chapter is more on interfacing sensors to
controllers than on understanding the internal construction of sensors
themselves. What is important is to find the right sensor for a particular
application. This involves the right measurement technique, the right size and
weight, the right operating temperature range and power consumption, and of
course the right price range. Data transfer from the sensor to the CPU can be
either CPU-initiated (polling) or sensor-initiated (via interrupt). In case it is CPU-
initiated, the CPU has to keep checking whether the sensor is ready by reading a
status line in a loop. This is much more time consuming than the alternative of a
sensor-initiated data transfer, which requires the availability of an interrupt line.
The sensor signals via an interrupt that data is ready, and the CPU can react
immediately to this request.
Internship Report P a g e 24 | 45
12. Sensor Categories in Robotics
Internship Report P a g e 25 | 45
(sensors monitoring the robot’s internal state)
o External sensors
(sensors monitoring the robot’s environment)
Internship Report P a g e 26 | 45
14. Analog versus Digital Sensors in Robotics
A number of sensors produce analog output signals rather than digital signals.
This means an A/D converter is required to connect such a sensor to a
microcontroller. Typical examples of such sensors are:
o Microphone
o Analog infrared distance sensor
o Analog compass
o Barometer sensor
Digital sensors on the other hand are usually more complex than analog sensors
and often also more accurate. In some cases the same sensor is available in
either analog or digital form, where the latter one is the identical analog sensor
packaged with an A/D converter.
The output signal of digital sensors can have different forms. It can be a parallel
interface (for example 8 or 16 digital output lines), a serial interface (for example
following the RS232 standard) or a “synchronous serial” interface. The
expression “synchronous serial” means that the converted data value is read bit
by bit from the sensor. After setting the chip-enable line for the sensor, the CPU
sends pulses via the serial clock line and at the same time reads 1 bit of
information from the sensor’s single bit output line for every pulse (for example
on each rising edge). See Figure for an example of a sensor with a 6bit wide
output word.
Internship Report P a g e 27 | 45
15. Shaft Encoder in Robotics
Encoders are required as a fundamental feedback sensor for motor control.
There are several techniques for building an encoder. The most widely used ones
are either magnetic encoders or optical encoders. Magnetic encoders use a Hall-
effect sensor and a rotating disk on the motor shaft with a number of magnets
(for example 16) mounted in a circle. Every revolution of the motor shaft drives
the magnets past the Hall sensor and therefore results in 16 pulses or “ticks” on
the encoder line. Standard optical encoders use a sector disk with black and
white segments together with an LED and a photo-diode. The photo-diode
detects reflected light during a white segment, but not during a black segment.
So once again, if this disk has 16 white and 16 black segments, the sensor will
receive 16 pulses during one revolution.
Internship Report P a g e 28 | 45
o Measurement range expressed in volts (for example 0..5V) A/D
converters come in many variations.
The output format also varies. Typical are either a parallel interface (for example
up to 8 bits of accuracy) or a synchronous serial interface. The latter has the
advantage that it does not impose any limitations on the number of bits per
measurement, for example 10 or 12bits of accuracy.
Internship Report P a g e 29 | 45
within the corresponding distance. Measurements are repeated about 20 times
per second, which gives this sensor its typical clicking sound.
Sonar sensors have a number of disadvantages but are also a very powerful
sensor system, as can be seen in the vast number of published articles dealing
with them [Barshan, Ayrulu, Utete 2000], [Kuc 2001]. The most significant
problems of sonar sensors are reflections and interference. When the acoustic
signal is reflected, for example off a wall at a certain angle, then an obstacle
seems to be further away than the actual wall that reflected the signal.
Interference occurs when several sonar sensors are operated at once (among
the 24 sensors of one robot, or among several independent robots). Here, it can
happen that the acoustic signal from one sensor is being picked up by another
sensor, resulting in incorrectly assuming a closer than actual obstacle. Coded
sonar signals can be used to prevent this, for example using pseudo random
codes [Jörg, Berg 1998].
Internship Report P a g e 30 | 45
Infrared (IR) distance sensors do not follow the same principle as sonar sensors,
since the time-of-flight for a photon would be much too short to measure with a
simple and cheap sensor arrangement. Instead, these systems typically use a
pulsed infrared LED at about 40kHz together with a detection array.
Internship Report P a g e 31 | 45
19. Gyroscope, Accelerometer, Inclinometer in Robotics
Orientation sensors to determine a robot’s orientation in 3D space are required
for projects like tracked robots, balancing robots, walking robots, or autonomous
planes. A variety of sensors are available for this purpose, up to complex
modules that can determine an object’s orientation in all three axes. However,
we will concentrate here on simpler sensors, most of them only capable of
measuring a single dimension. Two or three sensors of the same model can be
combined for measuring two or all three axes of orientation. Sensor categories
are:
• Accelerometer
Measuring the acceleration along one axis
o Analog Devices ADXL05 (single axis, analog output)
o Analog Devices ADXL202 (dual axis, PWM output)
Accelerometer
All these simple sensors have a number of drawbacks and restrictions.
Most of them cannot handle jitter very well, which frequently occurs in driving or
especially walking robots. As a consequence, some software means have to be
taken for signal filtering. A promising approach is to combine two different
sensor types like a gyroscope and an inclinometer and perform sensor fusion in
software.
Internship Report P a g e 32 | 45
A number of different accelerometer models are available from Analog
Devices, measuring a single or two axes at once. Sensor output is either analog
or a PWM signal that needs to be measured and translated back into a binary
value by the CPU’s timing processing unit. The acceleration sensors we tested
were quite sensitive to positional noise (for example servo jitter in walking
robots). For this reason we used additional low-pass filters for the analog sensor
output or digital filtering for the digital sensor output.
Gyroscope
The gyroscope we selected from HiTec is just one representative of a
product range from several manufacturers of gyroscopes available for model
airplanes and helicopters. These modules are meant to be connected between
the receiver and a servo actuator, so they have a PWM input and a PWM output.
In normal operation, for example in a model helicopter, the PWM input signal
from the receiver is modified according to the measured rotation about the
gyroscope’s axis, and a PWM signal is produced at the sensor’s output, in order
to compensate for the angular rotation. The following sensor data processing
techniques have been applied:
1. Noise reduction by removal of outlier data values
2. Noise reduction by applying the moving-average method
3. Application of scaling factors to increment/decrement absolute angles
4. Re-calibration of gyroscope rest-average via sampling
5. Re-calibration of minimal and maximal rest-bound via sampling
Inclinometer
Inclinometers measure the absolute orientation angle within a specified range,
depending on the sensor model. The sensor output is also model-dependent,
Internship Report P a g e 33 | 45
with either analog signal output or PWM being available. Therefore, interfacing
to an embedded system is identical to accelerometers. Since inclinometers
measure the absolute orientation angle about an axis and not the derivative,
they seem to be much better suited for orientation measurement than a
gyroscope. However, our measurements with the Seika inclinometer showed that
they suffer a time lag when measuring and also are prone to oscillation when
subjected to positional noise, for example as caused by servo jitter.
Internship Report P a g e 34 | 45
22. Debounce to find the pushbutton
Internship Report P a g e 35 | 45
Internship Report P a g e 36 | 45
Internship Report P a g e 37 | 45
23. About the Company
Internship Report P a g e 38 | 45
Established in 2010 by a team of young expert software professionals, Kaashiv Infotech
Consistently delivering mission, our team has been delivering technically challenging
projects under tight timelines, while also providing exceptional customer service and
support to our clientele. This in turn has led to extremely positive long-term working
relationships all over. Our detailed project process was created to ensure our projects
Internship Report P a g e 39 | 45
o Kaashiv Infotech takes pride in its philosophy of ‘Customers First’ which
management.
Internship Report P a g e 40 | 45
We are one of the largest suppliers of automotive electrial parts in
units, relays, etc for many applications ranging from passenger cars,
Our Products
6.1 Mission
Internship Report P a g e 41 | 45
Provide cost effect high quality innovative solution & services, powered by state-
• Explore
• Innovate
• Improve
existing solutions and develop new products. Kaashiv Infotech is transparent and
Internship Report P a g e 42 | 45
Kaashiv Infotech respects and seeks to maintain the highest standards of fairness,
involvement.
quality.
Internship Report P a g e 43 | 45
Keep pace with change and continuously strive for innovation while keeping in
step with modern technology and methodology. Our core value centers on total
all over the India &abroad .Kaashiv Infotech was formed with a clear goal to
Internship Report P a g e 44 | 45
• Adequate communications infrastructure
Internship Report P a g e 45 | 45