About the Author |
|
xi | |
About the Technical Reviewer |
|
xiii | |
|
Chapter 1 Getting Started with Ubuntu Linux for Robotics |
|
|
1 | (54) |
|
Getting Started with GNU/Linux |
|
|
1 | (2) |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
3 | (26) |
|
Recommended PC Requirements |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
5 | (1) |
|
Creating a VirtualBox Machine |
|
|
6 | (12) |
|
Installing Ubuntu on VirtualBox |
|
|
18 | (10) |
|
Installing Ubuntu on a PC |
|
|
28 | (1) |
|
Playing with the Ubuntu Graphical User Interface |
|
|
29 | (5) |
|
|
30 | (3) |
|
Useful Ubuntu Applications |
|
|
33 | (1) |
|
Getting Started with Shell Commands |
|
|
34 | (20) |
|
Terminal Commands Cheat Sheet |
|
|
35 | (19) |
|
|
54 | (1) |
|
Chapter 2 Fundamentals of C++ for Robotics Programming |
|
|
55 | (40) |
|
|
56 | (1) |
|
Timeline: The C++ Language |
|
|
56 | (1) |
|
|
56 | (13) |
|
Introduction to GCC and G++ Compilers |
|
|
57 | (1) |
|
Installing C/C++ Compiler |
|
|
57 | (1) |
|
|
58 | (1) |
|
Introduction to GNU Project Debugger (GDB) |
|
|
59 | (10) |
|
Learning OOP Concepts from Examples |
|
|
69 | (19) |
|
The Differences Between Classes and Structs |
|
|
69 | (4) |
|
|
73 | (2) |
|
|
75 | (1) |
|
|
76 | (6) |
|
|
82 | (2) |
|
|
84 | (1) |
|
|
85 | (3) |
|
C++ Standard Template Libraries |
|
|
88 | (1) |
|
|
88 | (6) |
|
Creating a Linux Makefile |
|
|
88 | (4) |
|
|
92 | (2) |
|
|
94 | (1) |
|
Chapter 3 Fundamentals of Python for Robotics Programming |
|
|
95 | (32) |
|
Getting Started with Python |
|
|
96 | (1) |
|
Timeline: The Python Language |
|
|
96 | (1) |
|
|
97 | (29) |
|
Introduction to Python Interpreter |
|
|
97 | (1) |
|
Installing Python on Ubuntu 16.04 LTS |
|
|
98 | (1) |
|
Verifying Python Installation |
|
|
98 | (1) |
|
|
99 | (4) |
|
Understanding Python Basics |
|
|
103 | (23) |
|
|
126 | (1) |
|
Chapter 4 Kick-Starting Robot Programming Using ROS |
|
|
127 | (44) |
|
What Is Robot Programming? |
|
|
127 | (5) |
|
Why Robot Programming Is Different |
|
|
129 | (3) |
|
|
132 | (38) |
|
|
135 | (1) |
|
Robot Programming Before and After ROS |
|
|
135 | (1) |
|
|
135 | (3) |
|
|
138 | (1) |
|
|
138 | (1) |
|
|
139 | (7) |
|
Robots and Sensors Supporting ROS |
|
|
146 | (2) |
|
Popular ROS Computing Platforms |
|
|
148 | (1) |
|
ROS Architecture and Concepts |
|
|
149 | (3) |
|
|
152 | (2) |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
155 | (5) |
|
ROS Demo: Hello World Example |
|
|
160 | (2) |
|
|
162 | (6) |
|
ROS GUI Tools: Rviz and Rqt |
|
|
168 | (2) |
|
|
170 | (1) |
|
Chapter 5 Programming with ROS |
|
|
171 | (66) |
|
|
171 | (1) |
|
Creating a ROS Workspace and Package |
|
|
172 | (8) |
|
|
176 | (1) |
|
|
177 | (1) |
|
|
178 | (2) |
|
Using ROS Client Libraries |
|
|
180 | (47) |
|
|
181 | (8) |
|
The Hello World Example Using ROS |
|
|
189 | (15) |
|
Programming turtlesim Using rospy |
|
|
204 | (17) |
|
Programming TurtleBot Simulation Using rospy |
|
|
221 | (6) |
|
Programming Embedded Boards Using ROS |
|
|
227 | (9) |
|
Interfacing Arduino with ROS |
|
|
228 | (6) |
|
Installing ROS on a Raspberry Pi |
|
|
234 | (2) |
|
|
236 | (1) |
|
Chapter 6 Robotics Project Using ROS |
|
|
237 | (38) |
|
Getting Started with Wheeled Robots |
|
|
237 | (1) |
|
Differential Drive Robot Kinematics |
|
|
238 | (4) |
|
|
242 | (10) |
|
|
243 | (6) |
|
Block Diagram of the Robot |
|
|
249 | (2) |
|
Assembling Robot Hardware |
|
|
251 | (1) |
|
Creating a 3D ROS Model Using URDF |
|
|
252 | (5) |
|
Programming Robot Firmware |
|
|
257 | (5) |
|
Programming Robot Using ROS |
|
|
262 | (10) |
|
Creating a Bluetooth-ROS Driver for the Robot |
|
|
263 | (5) |
|
|
268 | (1) |
|
The Twist Message to Motor Velocity Node |
|
|
269 | (1) |
|
|
270 | (1) |
|
|
270 | (2) |
|
|
272 | (2) |
|
|
274 | (1) |
Index |
|
275 | |