Reader small image

You're reading from  Artificial Intelligence for Robotics - Second Edition

Product typeBook
Published inMar 2024
PublisherPackt
ISBN-139781805129592
Edition2nd Edition
Concepts
Right arrow
Author (1)
Francis X. Govers III
Francis X. Govers III
author image
Francis X. Govers III

Francis X. Govers III is an Associate Technical Fellow for Autonomy at Bell Textron, and chairman of the Textron Autonomy Council. He is the designer of over 30 unmanned vehicles and robots for land, sea, air, and space, including RAMSEE, the autonomous security guard robot. Francis helped lead the design of the International Space Station, the F-35 JSF Fighter, the US Army Future Combat Systems, and telemetry systems for NASCAR and IndyCar. He is an engineer, pilot, author, musician, artist, and maker. He received five outstanding achievement awards from NASA and recognition from Scientific American for World Changing Ideas. He has a Master of Science degree from Brandeis University and is a veteran of the US Air Force.
Read more about Francis X. Govers III

Right arrow

Appendix

Robotic Operating System (ROS) was a framework designed to enable the development of software for complex robots and was developed by a company called Willow Garage, specifically for the control of the PR2 robot. The PR2 was a human-sized robot with two 7-degree of freedom (7DOF) arms and an entire array of sensors. Controlling this very complex robot required the interaction of a multitude of sensors, motors, and communications. The ROS framework allowed the development of robot components to be done independently. While not an operation system in the traditional sense of the word, it is a Modular Open Source Architecture (MOSA).

The primary tool of ROS is a robust publish-subscribe service that makes talking between processes — that is, Inter-Process Communications (IPC) — easy and flexible. It also standardized a lot of the interfaces between sensors, motors, and controls for robots.

We will be using ROS 2 throughout this book. ROS 2 is a new version...

Introducing MOSA

ROS is an example of a MOSA. Why is this important? Imagine if every electrical appliance in your house had its own plug, a different voltage, and a different wire. It would make life very difficult for you. But all your electrical plugs are the same shape and put out the same voltage. They are standardized interfaces that allow you to plug many different types of appliances into them. A MOSA acts like that for software, standardizing interfaces and allowing plug-and-play compatibility.

The following are its advantages:

  • A MOSA system architecture allows modularity – the ability to create software in sections or modules that can be developed, debugged, and operated independently. Before ROS, I created one major executable that ran everything on my robot. The problem with this is, first of all, that I could not take advantage of the multi-core nature of my Single Board Computer (SBC), which was the robot’s brain. I had all my code in one thread...

A brief overview of ROS 2

As mentioned earlier, ROS 2 is the latest version of ROS, a widely used framework for developing robot applications. I’ve been using ROS for some time now and appreciate how much simpler it makes the integration of various components, sensors, and capabilities into my robots. I resisted moving to ROS for some time, but now that I have invested the time to learn what it can do, I can’t imagine developing a robot without it.

In this section, we will discuss some concepts that are foundational for our understanding of ROS 2, how to install ROS 2, and some basic commands that we can use with it.

Note

Please use whatever is the latest version of ROS 2.

Understanding the basic concepts

ROS 2 works a bit differently than other programming paradigms. ROS is based on a publish/subscribe mechanism that allows different programs or processes to pass information from one to another without having to know in advance who is receiving the data...

Software requirements for the robot

In this section, we will discuss the software requirements for the robot and how to install them on the robot’s CPU.

Installing ROS 2

The version of ROS 2 I installed on Albert currently is Foxy. Please feel free to use the latest version of ROS 2. Jetson tends to run behind Ubuntu upgrades and is several releases behind. We use the Jetson Nano because it has the required power and the Graphics Processing Units (GPUs) to run neural network software. My version of the Nano is running Ubuntu 20.04, but you should also be able to get it working with Ubuntu version 18.04.

I used the standard ROS 2 installation script that can be found at https://github.com/jetsonhacks/installROS2. This is a script that contains all of the steps found on the regular ROS 2 installation page at https://docs.ros.org/en/foxy/Installation/Alternatives/Ubuntu-Development-Setup.html.

Note that we are doing an Install from Source setup since many of the programs...

Introducing the hardware for the robot

I designed Albert the Robot to perform one manual task – picking up toys. As such, I chose a set of motors, a speaker, and a robot arm as effectors, and a camera and microphone as sensors. Here is a labeled diagram of what Albert looks like:

Figure 12.1 – Albert the Robot

Figure 12.1 – Albert the Robot

In the following sections, we will look at how I put Albert together.

Effectors – base, motors, and wheels

The robot base is a two-layer aluminum allow frame that I purchased at https://www.amazon.com/gp/product/B093WDD9N5. This base uses Mecanum wheels, which have the unique ability to move the chassis not just forward and back, but sideways and at any angle. For video game fans, this sideways movement is sometimes called strafing. You will note that the wheels have smaller rollers mounted at 45-degree angles. These convert various inputs into multiple directions. Moving all four motors forward, not surprisingly, results...

Robot safety tips

Let’s quickly look at some safety tips related to working around robots:

  • We are using fairly high-current batteries and drive systems. Be very careful with wiring and look out for shorts, where the positive and negative wires are touching. It is not a bad idea to put a fuse between the battery and the power supply of about 10 Amps to protect against accidental shorts.
  • Be careful when the robot is operating. It may suddenly change direction or get stuck. I have a policy of not sitting down, having my hands in my pockets, or using a cell phone when the robot’s motor drives are activated. You need to be paying attention.
  • Beware of the pinch points in the robot arm – you can get a finger caught in them quite easily (as I have learned). Don’t put your fingers inside the joints with the power turned on.
  • Have a checklist for setting up the robot, starting all the software, and turning on the hardware. This will stop you worrying...
lock icon
The rest of the chapter is locked
You have been reading a chapter from
Artificial Intelligence for Robotics - Second Edition
Published in: Mar 2024Publisher: PacktISBN-13: 9781805129592
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime

Author (1)

author image
Francis X. Govers III

Francis X. Govers III is an Associate Technical Fellow for Autonomy at Bell Textron, and chairman of the Textron Autonomy Council. He is the designer of over 30 unmanned vehicles and robots for land, sea, air, and space, including RAMSEE, the autonomous security guard robot. Francis helped lead the design of the International Space Station, the F-35 JSF Fighter, the US Army Future Combat Systems, and telemetry systems for NASCAR and IndyCar. He is an engineer, pilot, author, musician, artist, and maker. He received five outstanding achievement awards from NASA and recognition from Scientific American for World Changing Ideas. He has a Master of Science degree from Brandeis University and is a veteran of the US Air Force.
Read more about Francis X. Govers III