Professional Documents
Culture Documents
Build Autonomous Mobile Robot From Scratch Using Ros Simulation and Hardware Rajesh Subramanian Full Chapter
Build Autonomous Mobile Robot From Scratch Using Ros Simulation and Hardware Rajesh Subramanian Full Chapter
Jump start your path to discovery with the Apress Maker Innovations
series! From the basics of electricity and components through to the
most advanced options in robotics and Machine Learning, you’ll forge a
path to building ingenious hardware and controlling it with cutting-
edge software. All while gaining new skills and experience with
common toolsets you can take to new projects or even into a whole new
career.
The Apress Maker Innovations series offers projects-based learning,
while keeping theory and best processes front and center. So you get
hands-on experience while also learning the terms of the trade and how
entrepreneurs, inventors, and engineers think through creating and
executing hardware projects. You can learn to design circuits, program
AI, create IoT systems for your home or even city, and so much more!
Whether you’re a beginning hobbyist or a seasoned entrepreneur
working out of your basement or garage, you’ll scale up your skillset to
become a hardware design and engineering pro. And often using low-
cost and open-source software such as the Raspberry Pi, Arduino, PIC
microcontroller, and Robot Operating System (ROS). Programmers and
software engineers have great opportunities to learn, too, as many
projects and control environments are based in popular languages and
operating systems, such as Python and Linux.
If you want to build a robot, set up a smart home, tackle assembling
a weather-ready meteorology system, or create a brand-new circuit
using breadboards and circuit design software, this series has all that
and more! Written by creative and seasoned Makers, every book in the
series tackles both tested and leading-edge approaches and
technologies for bringing your visions and projects to life.
More information about this series at https://link.springer.com/
bookseries/17311.
Rajesh Subramanian
This work is subject to copyright. All rights are solely and exclusively
licensed by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in
any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.
The publisher, the authors, and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.
This Apress imprint is published by the registered company APress
Media, LLC, part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY
10004, U.S.A.
To nature, for gifting this wonderful life and a loving family
Introduction
In this book, you will start from scratch and build a variety of features
for autonomous mobile robots, both in simulation and hardware. This
book shows you how to simulate an autonomous mobile robot using
ROS and then work with its hardware implementation.
It starts by teaching the basic theoretical concepts, including
history, mathematics, electronics, mechanical aspects, 3D modeling, 3D
printing, Linux, and programming.
In the subsequent portions of the book, you learn about kinematics,
how to simulate and visualize a robot, interface Arduino with ROS,
teleoperate the robot, perform mapping, do autonomous navigation,
add other sensors, perform sensor fusion, match laser scans, create a
web interface, perform autodocking, and more. Not only do you learn
the theoretical parts, but you also review the hardware realization of
mobile robots.
Projects start by building a very basic two-wheeled mobile robot
and work up to complex features such as mapping, navigation, sensor
fusion, web interface, autodocking, etc. By the end of the book, you’ll
have incorporated important robot algorithms including SLAM, path
finding, localization, Kalman filters, and more!
Outline
This chapter covers the following topics:
History of robotics
Definition of a robot
Generations of robots
Basic mathematics for robotics
Kinematics of mobile robots
Basic electronics for robotics
Drive systems for mobile robots
Figure 1-1 A depiction of the robots in the island factory mentioned in R.U.R.
The word “robot,” coined in this play, is derived from the Czech
word “robota,” which means “forced labor.” Thenceforth, robots have
been portrayed in various platforms, including stories, comics,
cartoons, movies, and so on. Isaac Asimov, one of the greatest science
fiction writers, coined the word “robotics” in his story called “Liar!” in
1941. Soon after, in 1942, he wrote a short story called “Runaround” in
which the three “laws of robotics” were put forth. They state three rules
that must be followed by robots:
1. A robot cannot injure a human being or, through inaction, allow a
human being to come to harm.
Definition of a Robot
A robot is a device that can perform a certain task or set of tasks by
gathering information about its environment, developing a strategy,
and performing actions to achieve the goal. A robot can also adjust its
behavior to accomplish the task even in the case of unforeseen
circumstances (to a certain degree).
The three basic operations of a robot are described here and
presented in Figure 1-2:
Sense: Gather information about the working environment
Plan: Develop a strategy to achieve the goal
Act: Execute operations based on the plan
Generations of Robots
Based on the advancements in the capabilities and technologies, the
evolution of robots can be broadly categorized into four generations.
First Generation
The robots in this generation were basic mechanical arms used for
industrial purposes. They were used to performing dangerous,
strenuous, and repetitive tasks. Some of the tasks performed included
painting surfaces, welding metals, picking and placing massive objects,
handling hazardous materials, and so on. The robots had to be
constantly supervised to ensure accuracy. These robots were popular
during 1960-1980.
Second Generation
With the dawn of computers and computer programs, robots could be
controlled with pre-programmed instructions from a computer. The
robots in this generation used basic intelligence when performing
tasks. They could sense the environment using various sensors, like
pressure sensors, ultrasound sensors, lidars, cameras, and so on. A
computer would process the sensory inputs and decide the actions of
the robot accordingly. Even though they were controlled by computers,
they needed occasional supervision.
Third Generation
The advancements in artificial intelligence paved the way for the third
generation of robots. These robots are autonomous and require
minimal or no supervision. Present robots fall into this category,
including the Perseverance rover, Sophia, Atlas, and so on.
Transformations
Transformation is the process of defining the pose of an object with
respect to another frame of reference. For instance, a robot wants to
perform navigation in a room containing some obstacles. Let’s assume
that you have two frames of reference—the room frame (whose origin
is located in the southwest corner) and the robot frame (whose origin
is located in the center of mass). The position of the goal is specified
wrt (with respect to) the room frame. This allows the robot to compute
a global path from the starting point to the goal.
When the robot detects an obstacle, the pose of the obstacle is
obtained wrt the robot’s frame. Now, to compute a new path to avoid
the obstacle, you need to convert the obstacle’s pose from the robot
frame to the room frame. This conversion between various frames is
called coordinate transformation.
In the context of robotics, all the objects are considered rigid bodies
(i.e., their shapes and sizes remain constant) and the motion of objects
is rigid (i.e., the pose of objects changes without any alteration in their
shapes or sizes).
There are two types of frame transformations—translation and
rotation. If an object changes position, it is called translation and if an
object changes its orientation, it is called rotation.
2D Translation
Figure 1-4 Translation in 2D
Where:
F1
x = x position of the object wrt frame F1
F2
x = x position of the object wrt frame F2
xd = x distance between origins of frames F1 and F2
F1
y = y position of the object wrt frame F1
F2
y = y position of the object wrt frame F2
yd = y distance between origins of frames F1 and F2
For example, in Figure 1-4, you can see that the object is at position
(3,2) wrt frame F2. To perform translation from coordinate frame F2 to
F1, apply the formula as follows:
Where:
F2
x=3
xd = 4
F2
y=2
yd = 2
Therefore:
You can cross-check these (F1x, F1y) values by looking at Figure 1-4,
the position of object wrt frame F1.
Also, in matrix format, you can express translation as follows:
2D Rotation
Figure 1-5 Rotation in 2D
Where:
F1
x = x position of the object wrt frame F1
F2
x = x position of the object wrt frame F2
F1
y = y position of the object wrt frame F1
F2
y = y position of the object wrt frame F2
θ = angle between axes of frames F1 and F2
For example, in Figure 1-5, you can see that the object is at position
(3,2) wrt frame F2. To perform rotation from coordinate frame F2 to F1,
you can apply the formula as follows:
Where:
F2
x=3
F2
y=2
θ = 30
Therefore:
You can cross-check these (F1x, F1y) values by looking at Figure 1-5,
the position of the object wrt frame F1.
Also, in matrix format, you can express rotation (anticlockwise
direction) as follows:
Where:
F2
x=3
F2
y=2
θ = 30
xd = 4
yd = 3
Therefore:
You can cross-check these (F1x, F1y) values by looking at Figure 1-6,
which shows the position of object wrt frame F1.
Also, in matrix format, you can express translation and rotation
(anticlockwise direction) as follows:
Motor Controller
Motor controllers are used to control the operations of motors. The
torque provided by a motor is directly proportional to the current. The
SBMs and SBCs provide very low output current and may not be able to
drive high torque motors. So, it’s best to use a motor controller. There
are various types of motor drivers depending on the motors used, the
method of control, the feedback system, and the type of application.
Commonly used motors in robotics applications include DC motors,
servo motors, and stepper motors. The method of control refers to the
way in which the motor is controlled, that is, using PWM (pulse width
modulation), serial, i2c, analog voltage, and so on.
The feedback system denotes whether the controller uses position
feedback data (from a sensor). The controllers that utilize position
feedback are called closed-loop controllers (see Figure 1-12) and those
that does not use feedback are called open-loop. Closed-loop systems
are more robust and reliable, as they can verify (by using sensors) that
the motor has rotated by the required amount, whereas open-loop
controllers assume that the motor has rotated by the specified amount.
The type of application denotes whether you need to have two motors
controlled by a single driver, each motor controlled independently by
separate controllers, whether the motors need to carry a high payload,
and so on. Commonly used motor controllers in robotics are DC motor
controllers, servo motor controllers, and stepper motor controllers.
Motor
An electric motor is a device that converts electrical energy into
mechanical energy. An electric motor has two parts—a stator and a
rotor. The stator remains stationary and the rotor rotates to produce
motion. Motors are used to move or actuate various parts of a robot.
For instance, you can use motors to drive the wheels of a ground robot,
move the joint of a robotic arm, position the wings of an aerial robot,
and so on There are various types of motors, as explained in the
following sections.
AC Motors
As the name indicates, AC motors are powered using alternating
currents. The stator is made of coils of wound wires, which generate a
rotating magnetic field to spin the rotor. The rotor is generally a
permanent magnet or can also be an electromagnet. Typically, robots
use batteries as the power source, which provides direct current (DC).
So, AC motors are not used commonly in robotics applications, but are
frequently used in industrial settings.
Brushed DC Motors
DC motors use direct current to operate. In brushed DC motors, the
stator provides a constant magnetic field and the rotor generates an
alternating magnetic field. A stator is usually a permanent magnet for
small motors or an electromagnet in the case of large motors. The rotor
is typically an electromagnet that’s connected to a mechanical switch,
called the commutator. The commutator produces an alternating
current to periodically reverse the polarity of the rotor’s magnetic field
to generate a continuous rotation of the rotor. These motors are used in
robotics applications that require low speed and low acceleration. For
instance, if you want to drive the wheels of a simple lightweight robot,
you can use a brushed DC motor. These motors are subjected to wear
and tear due to the friction between the commutator and brush, but
they are cost-effective. See Figure 1-13.
Geared DC Motors
Geared DC motors utilize a brushed DC motor along with a gear
mechanism to convert the RPM of the motor into torque. With this
mechanism, you can attain higher torques and can better equip the
Another random document with
no related content on Scribd:
loan-office law, under the provincial government,[204] directed the
emission of ten times the original sum; to be applied, in aid of land-
improvements, in loans for the term of sixteen years; and repayable
in like manner, with an annual interest of six per centum.
“Sir,
“I have been honoured with your letter of the 7th, and beg you to
accept my sincere thanks, for the favor conferred on me, in the
Glasses—which are very fine; but more particularly, for the flattering
expressions which accompanied the present.
“Go. Washington.
It was at the close of this year, that the college of William and
Mary, in Virginia, complimented Mr. Rittenhouse with an honorary
degree of Master of Arts, by an unanimous vote of the rectors and
faculty of that institution. His diploma, which is a special one, and
wherein he is styled the Chief of Philosophers,[216] has a place in the
Appendix.
The college of William and Mary was founded in the joint reign of
the king and queen of those names, who endowed it with twenty
thousand acres of land, besides a small duty on certain exported
tobaccoes, granted by stat. 25 Ch. II: in addition to which, the
assembly of Virginia also gave to it, by temporary laws, a duty on
liquors imported, and on skins and furs exported. And from these
resources, its funds amounted, on a medium, to more than 3,000l.
Virginia currency, (or $10,000,) per annum. The Hon. Robert Boyle,
[217]
of England, had also made a liberal donation to this college, for
the purpose of instituting a professorship, called the Brafferton, (the
name of the English estate, purchased with the money granted by
him to the college,) for the purpose of compensating missionaries, to
instruct the Indian natives and to convert them to Christianity. After
the revolution, the constitution of the college of William and Mary
underwent a considerable change: three of the six original
professorships, that is to say, two of Divinity, and one of the Greek
and Latin languages, were abolished; and three others, namely, one
for Law and Police—one for Anatomy and Medicine—and a third for
Modern Languages, were substituted in their stead; the Brafferton, it
is presumed, has been diverted into other channels, if not wholly
neglected.
“Dear Sir,
“For some months past I had not the least apprehension of being
obliged to visit the Ohio, this spring; but our affairs have taken such
a turn, that at present it is probable I shall meet you, at the time and
place appointed. Capt. Hutchins has been sent for to New York, by
Congress, as the trustees of the university will not consent to Dr.
Ewing’s absence. One or other of us will certainly set off in a few
days, to meet you: our waggons are already gone.
“I ought long since to have informed you, that you were elected a
member of our Philosophical Society—I wish you would favour us
with a communication, on any subject you please. Pray let me hear
from you, before you leave Baltimore. Have you any account from
Virginia? I am, dear sir, yours with respect and sincerity.
“David Rittenhouse.
“My dearest H,
“I have not heard one word from Philadelphia, since I left you.
About a month ago I wrote to you from Union Town, and I promise
myself a letter from you by the first messenger from that place, who
is now daily expected. To-morrow Mr. Armstrong sets off for Hanna’s
Town, where he expects to meet brother Isaac Jacobs, so that I write
in confidence of my letter reaching you.
“Deer are incredibly plenty here—I was the first that caught a
young fawn, and hoped to have sent the beautiful little animal a
present to H****. We kept it about a week, and it became quite tame;
but our cows ran away, and it was starved for want of milk. Col. P.
called it F—— B——, and says H**** shall at least have the skin. We
have all been very healthy; my cough diminishes slowly, my old
complaint is less troublesome, and I have no other.
“I wish to write to B***** and H****; but you will not readily imagine
how little leisure I have: Tired of the exercise of the day, I rejoice at
the approach of night; and, after a cup of tea, generally lie down to
rest as soon as it is dark, unless we have observations to make; and
then we have generally half a mile to walk, through dark woods, from
the place of observation to our encampment: this, however, does not
happen above once in a fortnight.
Until you bring round the happy day, that will restore me again to the
dear woman and children I so much love.
“Give my love to my children, and the few friends that are really
concerned for my welfare. God bless you, and make you at least as
happy as I am; and then, I am sure, you will not complain. Your ever
affectionate
“D. Rittenhouse.
“My dearest H,
“I need not say how much I feel for you, on account of the
disagreeable situation in which you last wrote. The only advice, I
believe, which I thought it necessary to give you, at leaving you, was
to keep up your spirits and endeavour to bear the fatigues of the
office. What will you say, or what will you think, when I tell you, I
believe it scarcely possible for any thing to contribute so much to
reconcile me to your absence, as the aversion I have to the plagues
of that same office.
“You have heard the reports concerning the Indians. We are still
ignorant of the true state of matters; but, from every information we
can get, it seems very improbable that we shall cross the Ohio this
summer: on this side of the river, we do not apprehend the least
danger.
“We have, for three weeks past, had a much greater proportion of
dry weather; and in this country, when it does not rain, the sky is
always fair, of a beautiful blue, and the air serene. There has been
nothing like a storm, nor scarce a puff of wind, since we came here.
Though thunder, lightning, and rain, are so very frequent, they are
never attended with high winds, nor scarcely a perceptible motion of
the air. For a month past, we had a very decent woman to cook for
us, but some little family broils obliged us to pack her home again.
Our boys have, however, learnt from her to bake good bread, and to
cook much better than they did. I mention this, because you will be
pleased with any thing that can contribute to my comfort.
“David Rittenhouse.
“Mrs. Rittenhouse.”
“P. S. Having mentioned the fatigues of the day, I must assure you
that I find my strength fully equal to them: As to walking up the hills, I
never pretend to it, having always a horse to ride—Col. P. is every
thing I could wish; I mean, so far as is necessary to me.”
“Dear Sir,
“The elements of the new Planet have been pretty well determined
by several European astronomers. The following I have extracted
from the Almanack[232] for 1787.
“Dr. Halley’s Table of the equation of ♃’s orbit will do very well for
computing the place of Herschel’s planet, only subtracting 1/16 part of
the equation there found; the greatest equation of this planet being
5° 27′ 16″. So, if from the Log. to any degree of anomaly, in the Table
for Jupiter, we subtract 1/76 part of the excess of that Log. above the
least, and to the remainder add the constant Logarithm .5647750,
we shall have the Log. for ♅ sufficiently accurate. On these
principles, I have computed the Right Ascension of ♅, and find both
agree with my own observation, to a few seconds.
“Sir,
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
“David Rittenhouse.
November 9, 1789.
“Sir,