Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Learning Robotics using Python
Learning Robotics using Python

Learning Robotics using Python: Bring robotics projects to life with Python! Discover how to harness everything from Blender to ROS and OpenCV with one of our most popular robotics books.

eBook
€8.99 €29.99
Paperback
€36.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Learning Robotics using Python

Chapter 1. Introduction to Robotics

If you read an introductory chapter in any technical book, you may have noticed that it pretty much always follows the same structure. It begins by describing how awesome the topic is, what a good decision it is to start reading the book, and how you should keep on reading because there are many exciting things awaiting you in its further chapters.

This chapter is no such chapter. It starts with the following quote:

Robotics is an art.

Although, such a strong statement does probably deserve some explanation, we believe that after you finish reading this book (and building your own robots!), no further explanation will be needed.

So if robotics is an art, how does one learn it? To put it differently, what are the differences between learning to play a musical instrument, learning to paint, learning to write, and learning robotics? We believe that there are not too many of them. Just as musicians need to play on their instruments, painters need to produce paintings, and writers need to write their texts, roboticists (the term we use to describe people who build robotics) need to build their robots. Just as musicians, painters, and writers need to learn the jargon used in their trades, roboticists need to familiarize themselves with a few basic terms that they might run into while reading tutorials, researching scientific literature, and talking to other robotics enthusiasts. Also, just as any artist needs to know at least a little bit about the history of their respective art, so does any good roboticist need to know a thing or two about the history of robotics. That's why in this chapter, we will cover:

  • What is a robot?
  • Where do robots come from?
  • What can we find in a robot?
  • How do we build robots?

What is a robot?

Rather than defining what a robot is right away, let's pause for a moment and discuss whether we need to answer a question like this after all. Everybody knows that a robot is some sort of a machine that can move around and depending on what movie you saw or which book you read, it can either help humans in their day-to-day life or mean the end of humanity.

It's clear that there is some controversy and lots of misunderstandings about robots and their role in the past, present, and the future. In order to better understand the situation, let's first examine closely the term "robot" itself. Then, we will try to define it a bit more formally to prevent any misunderstanding or controversy.

History of the term robot

The term "robot" was used for the first time by Karel Čapek, a Czech writer in his play Rossum's Universal Robots (R.U.R) that he wrote in 1920, to denote an artificial human made out of synthetic organic matter. These robots (roboti in Czech) were made in factories and their purpose was to replace human workers. While they were very efficient and executed orders they were given perfectly, they lacked any emotion. It seemed that humans would not need to work at all because robots seemed to be happy to work for them. This changed after a while and a robot revolt resulted in extinction of the human race.

R.U.R is quite dark and disturbing, but it does not leave the future hopeless. It was considered quite a success back in the day and we certainly do recommend you to read it. As its copyright had already expired in many countries at the time of writing this book, it should not be a problem to find a version online, which is in the public domain.

 

"When he (Young Rossum) took a look at human anatomy he saw immediately that it was too complex and that a good engineer could simplify it. So he undertook to redesign anatomy, experimenting with what would lend itself to omission or simplification. Robots have a phenomenal memory. If you were to read them a twenty-volume encyclopedia they could repeat the contents in order, but they never think up anything original. They'd make fine university professors."

 
 --Karel Capek, R.U.R. (Rossum's Universal Robots), 1920

While many attribute the term robot to Karel Čapek as he wrote the play in which it appeared for the first time, there are sources suggesting that it was actually Čapek's brother Josef who came up with the term (it seems that there was an article in Czech daily print written by Karel Čapek himself, in which he wants to set the record straight by telling this story). Karel wanted to use the term laboři (from Latin labor, work), but he did not like it. It seemed too artificial to him, so he asked his brother for advice. Josef suggested roboti and that was what Karel used in the end.

History of the term robot

Now that we know when the term robot was used for the first time and who actually created it, let's find out where does it come from. The explanation that many use is that it comes from the Czech words robota and robotník, which literally means "work" and "worker" respectively. However, the word robota also means "work" or "serf labor" in Slovak. Also, we should take into account that some sources suggest that by the time Karel was writing R.U.R, he and his brother often visited his father in a small Slovak spa town called Trenčianske Teplice. Therefore, it might very well be that the term robot was inspired by the usage of the word "robota" in Slovak language, which is coincidentally, the native language of one of the authors of this book.

Whether the term robot comes from Czech or Slovak, the word robota might be a matter of national pride, but it does not concern us too much. In both cases, the literal meaning is "work", "labor", or "hard work" and it was the purpose of the Čapek's robots. However, robots have evolved dramatically over the past hundred years. To say that they are all about doing hard work would probably be an understatement.

So, let's try to define the notion of a robot as we perceive it today.

Modern definition of a robot

When we try to find a precise definition of some term, our first stop is usually some sort of encyclopedia or a dictionary. Let's try to do this for the term robot.

Our first stop will be Encyclopedia Britannica. Its definition of a robot is as follows:

"Any automatically operated machine that replaces human effort, though it might not resemble human beings in appearance or preform functions in a humanlike manner."

This is quite a nice definition, but there are quite a few problems with it.

First of all, it's a bit too broad. By this definition, a washing machine should also be considered a robot. It does operate automatically (well, most of them do), it does replace human effort (although not by changing the same tasks a human would do), and it certainly does not resemble a human.

Secondly, it's quite difficult to imagine what a robot actually is after reading this definition. With such a broad definition, there are way too many things that can be considered a robot and this definition does not provide us with any specific features.

It turns out that while Encyclopedia Britannica's definition of a robot does not fit our needs well enough, it's actually one of the best ones that one can find. For example, The Free Dictionary defines a robot as "A mechanical device that sometimes resembles a human and is capable of performing a variety of often complex human tasks on command or by being programmed in advance." This is even worse than what we had and it seems that a washing machine should still be considered a robot.

The inherent problem with these definitions is that they try to capture vast amount of machines that we call robots these days. The result is that it's very difficult, if not impossible, to come up with a definition that will be comprehensive enough and not include a washing machine at the same time. John Engelberger, founder of the world's first robotics company and industrial robotics (as we know it today) once famously said, "I can't define a robot, but I know one when I see one."

So, is it even possible to define a robot? Maybe not in general. However, if we limit ourselves just to the scope of this book, there may be a definition that will suit our needs well enough. In her very nice introductory book on the subject of robotics called The Robotics Primer (which we also highly recommend), Maja J. Mataric uses the following definition:

"A robot is an autonomous system which exists in the physical world, can sense its environment, and can act on it to achieve some goals."

At first sight, it might not seem like a vast improvement over what we have so far, but let's dissect it part by part to see whether it meets our needs.

The first part says, "A robot is an autonomous system". By autonomous, we mean that a robot makes decisions on its own—it's not controlled by a human. This already seems to be an improvement as it weeds out any machine that's controlled by someone (such as our famous washing machine). Robots that we will talk about throughout this book may sometimes have some sort of a remote function, which allows a human to control it remotely, but this functionality is usually built-in as sort of a safety measure so that if something goes wrong and the robot's autonomous systems fails to behave as we would expect them to, it's still possible to get the robot to safety and diagnose its problems afterwards. However, the main goal still stays the same, that is, to build robots that can take some direction from humans and are able to act and function on their own.

However, just being an autonomous system will certainly not be enough for a robot in this book. For instance, we can find many computer programs that we can call autonomous systems (they are not controlled by an individual and make decisions on their own) and yet we do not consider them to be robots.

To get around this obstacle, we need the other part of the sentence that says, "which exists in the physical world".

Given the recent advances in the fields of artificial intelligence and machine learning, there is no shortage of computer systems that act on their own and perform some work for us, which is what robots should be for. As a quite notorious example, let's consider spam filters. These are computer programs that read every e-mail that reaches your e-mail address and decides whether you may want to read it (and that the e-mail is indeed legitimate) or whether it's yet another example of an unwanted e-mail.

There is no doubt that such a system is helpful (if you disagree, try to read some of the e-mails in your Spam folder—I am pretty sure it will be a boring read). It's estimated that over 60 percent of all e-mail traffic in 2014 can be attributed to spam e-mails. Being able to automatically filter them can save us a lot of reading time. Also, as there is a no human involved in the decision process (although, we can help it by marking an e-mail as spam), we can call such a system as autonomous. Still, we will not call it a true robot. Rather, we call them "software robots" or just "bots" (the fact that their name is shorter may come from the fact that they are short of the physical parts of true robots).

While software robots are definitely an interesting group on its own, it's the physical world in which robots operate that makes the process of creating them so exciting and difficult at the same time. When creating a software robot, you can count on the fact that the environment it will run in (usually the operating system) will be quite stable (as in, not too many things may change unexpectedly). However, when you are creating a real robot, you can never be sure.

This is why a real robot needs to know what is happening in the environment in which it operates. Also, this is why the next part of the definition says, "can sense its environment".

Sensing what is happening around a real robot is arguably its most important feature. To sense their surrounding environments, robots usually have sensors. These are devices that measure physical characteristics of the environment and provide this information back to the robot so that it can, for instance, react to sudden changes of temperature, humidity, or pressure. This is quite a big difference from software robots. While they just get the information they need in order to operate somewhat magically, real robots need to have a subsystem or subsystems that take care of obtaining this information. If we look at the differences between robots and humans, we will not find many (in our very high-level view, of course). We can think of sensoring subsystems as artificial replacements for human organs that provide this sort of information to the brain.

One important consequence of this definition is that anything that does not sense its environment cannot be called a robot. This includes any devices that just "drive blind" or move in a random fashion because they do not have any information from the environment to base their behavior on.

Any roboticist will tell you that robots are very exciting machines. Many will also argue that what makes them so exciting is actually their ability to interact with the outside world (which is to move or otherwise change the environment they are in). Without this, they are just another static machine that might be useful, but rather unexciting.

Our definition of a robot reflects this in its last part when it says, "can act on it to achieve some goals".

Acting on the environment might sound like a very complex task for a robot, but in this case, it just means changing the world in some (even very slight) way. We call these parts of robots that perform this as effectors. If we look at our robot vs human comparison, effectors are the artificial equivalents of hands, legs, and other body parts that allow it to move. Effectors make use of some lower-level systems such as motors or muscles that actually carry out the movement. We call them actuators. Although, the artificial ones may seem to function similar to the biological ones, a closer look will reveal that they are actually quite different.

You may have noticed that this part is not only about acting on the robot's environment, but also about achieving some goals. While many hobby roboticists build robots just for the fun of it, most robots are built in order to carry out (or, should we rather say, to help with) some tasks, such as moving heavy parts in a factory or locating victims in areas affected by natural disasters.

As we said before, a system or a machine that behaves randomly and does not use information from its environment cannot really be considered a robot. However, how can it use these information somehow? The easiest thing to do is to do something useful, which we can rephrase as trying to reach some goal that we consider useful, which in turn brings us back to our definition. A goal of a robot does not necessarily need to be something as complex and ambitious as "hard labor for human". It can easily be something simple, such as "do not bump into obstacles" or "turn the light switch on".

Now, as we have at least a slight idea of what a robot is, we can move on to briefly discuss where robots come from, in other words, the history of robotics.

Where do robots come from?

As the title suggests, this part of the chapter should be about the history of robots. We already know a few quite important facts, such as the term robot was coined by a Czech author Karel Čapek in 1920. As it turns out, there are many more interesting events that happened over the years, other than this one. In order to keep things organized, let's start from the beginning.

It's quite difficult to pinpoint a precise date in history, which we can mark as the date of birth of the first robot. For one, we have established quite a restrictive definition of a robot previously; thus, we will have to wait until the 20th century to actually see a robot in the proper sense of the word. Until then, let's at least discuss the honorable mentions.

The first one that comes close to a robot is a mechanical bird called "The Pigeon". This was postulated by a Greek mathematician Archytas of Tarentum in the 4th century BC and was supposed to be propelled by steam. It cannot not be considered a robot by our definition (not being able to sense its environment already disqualifies it), but it comes pretty close for its age. Over the following centuries, there were many attempts to create automatic machines, such as clocks measuring time using the flow of water, life-sized mechanical figures, or even first programmable humanoid robots (it was actually a boat with four automatic musicians on it). The problem with all these is that they are very disputable as there is very little (or none) historically trustworthy information available about these machines.

It would have stayed like this for quite some time if it was not for Leonardo Da Vinci's notebooks that were rediscovered in 1950s. They contain a complete drawing of a 1945 humanoid (a fancy word for a mechanical device that resemble humans), which looks like an armored knight. It seems that it was designed so that it could sit up, wave its arms, move its head, and most importantly, amuse royalty. In the 18th century, following the amusement line, Jacques de Vaucanson created three automata: a flute player that could play twelve songs, a tambourine player, and the most famous one, "The Digesting Duck". This duck was capable of moving, quacking, flapping wings, or even eating and digesting food (not in a way you will probably think—it just released matter stored in a hidden compartment). It was an example of "moving anatomy"—modeling human or animal anatomy using mechanics.

Our list will not be complete if we omitted these robot-like devices that came about in the following century. Many of them were radio-controlled, such as Nikola Tesla's boat, which he showcased at Madison Square Garden in New York. You could command it to go forward, stop, turn left or right, turn its lights on or off, and even submerge. All of this did not seem too impressive at that time because the press reports attributed it to "mind control".

At this point, we have once again reached the time when the term robot was used for the first time. As we said many times before, it was in 1920 when Karel Čapek used it in his play, R.U.R. Two decades later, another very important term was coined. Issac Asimov used the term robotics for the first time in his story "Runaround" in 1942. Asimov wrote many other stories about robots and is considered to be a prominent sci-fi author of his time.

However, in the world of robotics, he is known for his three laws of robotics:

  • First law: A robot may not injure a human being or through inaction allow a human being to come to harm.
  • Second Law: A robot must obey the orders given to it by human beings, except where such orders would conflict with the first law.
  • Third law: A robot must protect its own existence, as long as such protection does not conflict with the first or second law.

After a while, he added a zeroth law:

  • Zeroth law: A robot may not harm humanity or by inaction allow humanity to come to harm.

These laws somehow reflect the feelings people had about machines they called robots at that time. Seeing enslavement by some sort of intelligent machine as a real possibility, these laws were supposed to be some sort of guiding principles one should at least keep in mind, if not directly follow, when designing a new intelligent machine. Also, while many were afraid of the robot apocalypse, time has shown that it's still yet to come. In order for it to take place, machines will need to get some sort of intelligence, some ability to think, and act based on their thoughts. Also, while we can see that over the course of history, the mechanical side of robots went through some development, the intelligence simply was not there yet.

This was part of the reason why in the summer of 1956, a group of very wise gentlemen (which included Marvin Minsky, John McCarthy, Herbert Simon, and Allan Newell) were later called to be the founding fathers of the newly founded field of Artificial Intelligence. It was at this very event where they got together to discuss creating intelligence in machines (thus, the term artificial intelligence).

Although, their goals were very ambitious (some sources even mention that their idea was to build this whole machine intelligence during that summer), it took quite a while until some interesting results could be presented.

One such example is Shakey, a robot built by the Stanford Research Institute (SRI) in 1966. It was the first robot (in our modern sense of the word) capable to reason its own actions. The robots built before this usually had all the actions they could execute preprogrammed. On the other hand, Shakey was able to analyze a more complex command and split it into smaller problems on his own. The following image of Shakey is taken from https://en.wikipedia.org/wiki/File:ShakeyLivesHere.jpg:

Where do robots come from?

Shakey, resting in the Computer History Museum in Mountain View, California

His hardware was quite advanced too. He had collision detectors, sonar range finders, and a television camera. He operated in a small closed environment of rooms, which were usually filled with obstacles of many kinds. In order to navigate around these obstacles, it was necessary to find a way around these obstacles while not bumping into something. Shakey did it in a very straightforward way.

At first, he carefully planned his moves around these obstacles and slowly (the technology was not as advanced back then) tried to move around them. Of course, getting from a stable position to movement wouldn't be possible without some shakey moves. The problem was that Shakey's movements were mostly of this shakey nature, so he could not be called anything other than Shakey.

The lessons learned by the researchers who were trying to teach Shakey how to navigate in his environment turned out to be very important. It comes as no surprise that one of the results of the research on Shakey is the A* search algorithm (an algorithm that can very efficiently find the best path between two goals). This is considered to be one of the most fundamental building blocks not only in the field of robotics or artificial intelligence, but also in the field of computer science as a whole.

Our discussion on the history of robotics can go on and on for a very long time. Although one can definitely write a book on this topic (as it's a very interesting one), it's not this book; we shall try to get back to the question we tried to answer, which was: where do robots come from?

In a nutshell, robots evolved from the very basic mechanical automation through remotely-controlled objects to devices or systems that can act (or even adapt) on their own in order to achieve some goal. If this sounds way too complicated, do not worry. The truth is that to build your own robot, you do not really need to deeply understand any of this. The vast majority of robots you will encounter are built from simple parts that are not difficult to understand when you see the big picture.

So, let's figure out how we will build our own robot. Let's find out what are the robots made of.

What can we find in a robot?

In the very first part of this chapter, we tried to come up with a good (modern) definition of a robot. It turns out that the definition we came up with does not only describe a robot as we know it (or would like to know it), but also gives us some great pointers as to what parts can we most definitely find in (or on) a robot. Let's see our definition again:

"A robot is an autonomous system which exists in the physical world, can sense its environment, and can act on it to achieve some goals."

So, what will these most important parts be? Here is what we think should be on this list.

The physical body

It will be hard for a robot to exist in the physical world without a physical body. While this obviously has its advantages (having a real world robot you can play with is much more exciting than having a computer simulation), there is also some price to be paid. For instance, a physical robot can only be at one place at a time, cannot really change its shape, and its functions are quite limited by how its body looks. As its environment will be the physical world, it's safe to assume that the robot will not be the only object in it. This already poses some challenges, such as making sure that the robot won't run into some wall, object, human, or even another robot. Also, in order to do this, the robot needs to be able, as the definition says, to sense its environment.

Sensors

We already discussed in quite some depth about how important a robot's sensors are because without them, he would be just lost. A good question to ask might be, "So, what does a robot actually sense?". As in many other places (in science and technology), it depends on what the robot's purpose and goal in a given environment is, the design of the robot, and the amount of power it consumes, and so on. A good robot designer and programmer tries to take all these dependencies into account so that in the end, the final robot can have the right amount of information about its environment to fulfill its purpose and reach its goals.

One important notion with regards to sensing is that of a state. A state of a robot basically means a description of all its parameters at any given time. For instance, if we consider a robot to have some sound sensors (thanks to which it could measure the noise level in its environment), but no way of figuring out how much battery power does it have left, we can call its state partially-observable. On the other hand, if it had a sensor for every output of the robot and every physical characteristic of the environment the robot resides in, we can call such a state fully observable.

Now that we know the state of the robot in the environment, our robot needs something that can be used to leave some effect on its environment. Something like an effector.

Effectors

We already touched (albeit briefly) on the topic of effectors when we were trying to decipher parts of our definition of a robot, so we already know that effectors let the robot do physical things and the small subparts of them, actuators, are actually those that do the heavy lifting.

What we did not mention was that, historically, there are two main activities effectors can help with: locomotion and manipulation.

In general, locomotion means moving around: going from point A to point B. This is of great interest in a subfield of robotics, which is called mobile robotics. This area of research is concerned with all sorts of robots that move in the air, underwater, or just on the ground.

By manipulation, we mean a process of moving an object from one place to another. This process is of huge interest to manipulator robotics, which is concerned mostly with all sorts of robotic arms that in the vast majority of cases, are used in industry.

Just for the sake of completeness, what are the different effectors our robots can make use of? Among the most basic ones, it will definitely be motors of all sorts along with some wheels that will allow the robot to move around.

Once we have data from the environment, we can also act on it. There is just one piece missing here: the link between them.

Controllers

After all, we finally came to the conclusion of this whole system. If it was not for controllers, a robot could never ever be fully autonomous. This is to use data from sensors to decide what to do next and then execute some actions using effectors. This may look like a simple description, but in the end, it turns out that controllers are quite difficult to get right, especially when you are playing with them for the first time.

For most mobile robots and vast majority of hobby robots, controllers are usually microprocessors that are programmed in some low-level programming language. It's also not uncommon for a robot to use multiple controllers. However, while it definitely helps to have a backup controller ready in case your main one brakes down and great to have a modular system in which everything is its own module (and has its own controller), you do not get this for free. The price you have to pay is the communication between controllers, which requires a good deal of expertise.

Now that we have all the building blocks for a robot ready, we should at least briefly discuss the ways in which they can be organized. This might not seem important, but it turns out that having a good design up front can save us a lot of effort, energy, and resources. So, let's dive into how we can put a robot together architecturally.

How do we build a robot?

If we try to look at the parts of a robot from the previous part of this chapter in an abstract fashion, there are essentially three processes taking place: sensing (done by sensors), acting (done by effectors), and then planning (if there is any, it's done by controllers). Depending on how we put these three processes together (as they are the building blocks they are also called primitives), we can get different architectures with different properties. Let's at least say something about the three very basic architectures (also called paradigms).

Reactive control

Reactive control is probably the simplest architecture (or paradigm) one can put together with the primitives described previously. In this paradigm, as we can see in the following figure, there is no planning process involved. There is a direct connection between sensing and acting, which means that as soon as some sensory data comes in, the effectors act on the environment in some predefined way:

Reactive control

Just as the reflexes in your body do not send the information about something happening all the way up to the brain (which would be quite slow), but rather just to the nearest spinal cord so that the response could be fast, a reactively-controlled robot will not have any complex computation, but fast, precomputed actions that will be stored somewhere.

Hierarchical (deliberative) control

Suppose you were programming a chess playing robot with the rules of ordinary chess, it would be your robot's turn, then your robot's opponent's, and so on. It's obvious that in a setting like this, your robot does not really need to be extremely fast. However, it will be great if it did some planning about the future so that it can anticipate the future opponent's turns and then adjust its strategy, based on the opponent's current turn.

A set up like this will be perfect for hierarchical (or deliberative) control paradigm. As you can see in the following figure, the loop of planning, acting, and sensing is closed. Thus, the system can actively move towards its goal, whatever that might be:

Hierarchical (deliberative) control

Hybrid control

So far, we discussed control paradigms that was either fast but not very flexible, or smart but quite slow. What we will really need in many cases is something in between. Also, this is precisely what a hybrid control paradigm tries to offer.

How can we use this in a real-life robot? Suppose we want to build a robotic waiter that would serve drinks in a coffee shop (coincidentally, that is what most of this book is about). Such a waiter would definitely need to have its own internal representation of the coffee shop (where are the tables and chairs located, and so on). Once it's given a task of delivering a cup of coffee to a given customer, it will have to plan its path and then move alongside that path. As we can expect this coffee shop to be quite a good one, there maybe other guests inside too. We cannot let our robot bump into any chair or a table, let alone colliding with a customer randomly while it's trying to deliver coffee. For this, we need a well tuned reactive controller.

The following figure shows the schematics of the hybrid control paradigm. We can see that the robot at first plans its task, but breaks it down it into series of actions that can be executed by the reactive paradigm. One interesting thing to note here is the fact that the sensory data is available to aid the planning (as it needs to do some planning) and the acting (as it does the reactive control) parts of the system:

Hybrid control

That's about it! Now, you know what a robot is, what makes it a robot, where it came from, the parts needed to create a robot, and how you can architecturally put it together. It's about time you build one yourself!

Summary

In this chapter, you learned what a robot actually is and where this term came from. We did our best to define a robot as an autonomous machine that exists in a physical world, can sense its environment, and can act on it to achieve some goals. We also went through a brief history of the field of robotics and discovered that many interesting machines were built prior to the era of real robots (from our definition). Later on, we discussed the basic building blocks of a robot, that is, effectors, sensors, and controllers, which can be combined in numerous ways. Finally, we dug a bit deeper into the architecture of control systems that are useful to keep in mind when designing a robot.

In the next chapter, we will finally see some real robots along with a real programming language.

Left arrow icon Right arrow icon
Download code icon Download Code

Description

If you are an engineer, a researcher, or a hobbyist, and you are interested in robotics and want to build your own robot, this book is for you. Readers are assumed to be new to robotics but should have experience with Python.

Who is this book for?

If you are an engineer, a researcher, or a hobbyist, and you are interested in robotics and want to build your own robot, this book is for you. Readers are assumed to be new to robotics but should have experience with Python.

What you will learn

  • Understand the core concepts and terminologies of robotics
  • Create 2D and 3D drawings of robots using freeware such as LibreCAD and Blender
  • Simulate your robot using ROS and Gazebo
  • Build robot hardware from the requirements
  • Explore a diverse range of actuators and its interfacing
  • Interface various robotic sensors to robots
  • Set up and program OpenCV, OpenNI, and PCL to process 2D/3D visual data
  • Learn speech processing and synthesis using Python
  • Apply artificial intelligence to robots using Python
  • Build a robot control GUI using Qt and Python
  • Calibration and testing of robot
Estimated delivery fee Deliver to Netherlands

Premium delivery 7 - 10 business days

€17.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : May 27, 2015
Length: 330 pages
Edition : 1st
Language : English
ISBN-13 : 9781783287536
Category :
Languages :
Concepts :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to Netherlands

Premium delivery 7 - 10 business days

€17.95
(Includes tracking information)

Product Details

Publication date : May 27, 2015
Length: 330 pages
Edition : 1st
Language : English
ISBN-13 : 9781783287536
Category :
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 124.97
Learning ROS for Robotics Programming Second Edition
€41.99
Learning Robotics using Python
€36.99
Mastering ROS for Robotics Programming
€45.99
Total 124.97 Stars icon
Banner background image

Table of Contents

13 Chapters
1. Introduction to Robotics Chevron down icon Chevron up icon
2. Mechanical Design of a Service Robot Chevron down icon Chevron up icon
3. Working with Robot Simulation Using ROS and Gazebo Chevron down icon Chevron up icon
4. Designing ChefBot Hardware Chevron down icon Chevron up icon
5. Working with Robotic Actuators and Wheel Encoders Chevron down icon Chevron up icon
6. Working with Robotic Sensors Chevron down icon Chevron up icon
7. Programming Vision Sensors Using Python and ROS Chevron down icon Chevron up icon
8. Working with Speech Recognition and Synthesis Using Python and ROS Chevron down icon Chevron up icon
9. Applying Artificial Intelligence to ChefBot Using Python Chevron down icon Chevron up icon
10. Integration of ChefBot Hardware and Interfacing it into ROS, Using Python Chevron down icon Chevron up icon
11. Designing a GUI for a Robot Using Qt and Python Chevron down icon Chevron up icon
12. The Calibration and Testing of ChefBot Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.3
(16 Ratings)
5 star 62.5%
4 star 18.8%
3 star 6.3%
2 star 6.3%
1 star 6.3%
Filter icon Filter
Top Reviews

Filter reviews by




Pranshu Tople Dec 22, 2017
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Awesome Book for all students, engineers, hobbyist & researchers. It teaches excellently, step by step of making a Turtlebot like robot that too very cheap at Home/DIY. If u are interested in Robotics or Python, you should go through this book atleast once. Hats of to Lentin Joseph for writing such awesome book.
Amazon Verified review Amazon
Achu Wilson Jun 06, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is one of the best books for learning robotics practically. The highlight of this book is that it deals with all the realms of robotics, mechanical CAD design, electronics circuit design, embedded firmware development, high level image and speech processing, autonomous navigation using AI techniques ,and much more. It also gives an intro to using ROS for a beginner. a MUST READ BOOK.
Amazon Verified review Amazon
William Schreiber Sep 12, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The title of this book is misleading. Yes, there is python in the book and the examples are written in python, but the book is really about how to take existing technology and build an advanced robot at a price most hobbyists could probably afford. Most of us build a line follower, a light avoider, a robot that bounces off walls and then randomly turns etc, but moving to that next step of building a robot that knows where it is and can find its way back (SLAM algorithm) is something else most builders never get to since it is a hard nut to crack. He gives a blue print for an advanced robot which can be built for well under a $1000 and uses ROS (robot operating system), PCL, a Kinect, IMU, ultrasonic sensor ARM processor etc.He takes all the pieces that are out there and shows you how to integrate them all into an advanced robot. It wasn't what I expected from the book but I was pleasantly surprised since it was exactly what I need to get myself to that advanced robot I really want to build.Warning, that the directions may be out of date (it is predicated on an older version of ROS) and you will need to use the internet and/or other resources to do all of the things he documents. It is still worth every penny
Amazon Verified review Amazon
Eduardo Veras May 04, 2016
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Very informative and easy to follow.
Amazon Verified review Amazon
AMAL MATHEW Oct 19, 2017
Full star icon Full star icon Full star icon Full star icon Full star icon 5
nice book to begin with ROS
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela