Robot Operating System (ROS) for Absolute Beginners -  Lentin Joseph

Robot Operating System (ROS) for Absolute Beginners (eBook)

Robotics Programming Made Easy
eBook Download: PDF
2018 | 1st ed.
XIII, 282 Seiten
Apress (Verlag)
978-1-4842-3405-1 (ISBN)
Systemvoraussetzungen
56,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Learn how to get started with robotics programming using Robot Operation System (ROS). Targeted for absolute beginners in ROS, Linux, and Python, this short guide shows you how to build your own robotics projects.

ROS is an open-source and flexible framework for writing robotics software. With a hands-on approach and sample projects, Robot Operating System for Absolute Beginners will enable you to begin your first robot project. You will learn the basic concepts of working with ROS and begin coding with ROS APIs in both C++ and Python.

What You'll Learn
  • Install ROS
  • Review fundamental ROS concepts
  • Work with frequently used commands in ROS
  • Build a mobile robot from scratch using ROS

Who This Book Is For

Absolute beginners with little to no programming experience looking to learn robotics programming.


Lentin Joseph is an author, entrepreneur, electronics engineer, robotics enthusiast, machine vision expert, embedded programmer, and the founder and CEO of Qbotics Labs from India. He completed his bachelor's degree in electronics and communication engineering at the Federal Institute of Science and Technology (FISAT), Kerala. After graduating, Lentin worked for three years at a start-up company focusing on robotics and image processing. During that time he learned to work with various robotics software platforms such as Robot Operating System (ROS), V-REP, and Actin (a robotic simulation tool) and image processing libraries such as OpenCV, OpenNI, and PCL. He also has experience with 3D robot design and embedded programming on Arduino and Tiva Launchpad. 

He recently started a new company called Qbotics Labs, which mainly focuses on research into building some great products in domains such as robotics and machine vision.

Learn how to get started with robotics programming using Robot Operation System (ROS). Targeted for absolute beginners in ROS, Linux, and Python, this short guide shows you how to build your own robotics projects.ROS is an open-source and flexible framework for writing robotics software. With a hands-on approach and sample projects, Robot Operating System for Absolute Beginners will enable you to begin your first robot project. You will learn the basic concepts of working with ROS and begin coding with ROS APIs in both C++ and Python.What You'll LearnInstall ROSReview fundamental ROS conceptsWork with frequently used commands in ROSBuild a mobile robot from scratch using ROSWho This Book Is ForAbsolute beginners with little to no programming experience looking to learn robotics programming.

Lentin Joseph is an author, entrepreneur, electronics engineer, robotics enthusiast, machine vision expert, embedded programmer, and the founder and CEO of Qbotics Labs from India. He completed his bachelor's degree in electronics and communication engineering at the Federal Institute of Science and Technology (FISAT), Kerala. After graduating, Lentin worked for three years at a start-up company focusing on robotics and image processing. During that time he learned to work with various robotics software platforms such as Robot Operating System (ROS), V-REP, and Actin (a robotic simulation tool) and image processing libraries such as OpenCV, OpenNI, and PCL. He also has experience with 3D robot design and embedded programming on Arduino and Tiva Launchpad. He recently started a new company called Qbotics Labs, which mainly focuses on research into building some great products in domains such as robotics and machine vision.

Table of Contents 5
About the Author 10
About the Technical Reviewer 11
Chapter 1: Getting Started with Ubuntu Linux for Robotics 12
Getting Started with GNU/Linux 12
What Is Ubuntu? 13
Why Ubuntu for Robotics? 14
Installing Ubuntu 14
Recommended PC Requirements 15
Downloading Ubuntu 15
Installing VirtualBox 16
Creating a VirtualBox Machine 17
Step 1: Adding a New Virtual Machine 17
Step 2: Naming the Guest Operating System 18
Step 3: Allocating RAM for the Guest OS 19
Step 4: Creating a Virtual Hard Disk 20
Step 5: Configuring the Type of Virtual Disk 21
Step 6: Choosing Ubuntu DVD Image 23
Step 7: Starting Virtual Machine 28
Installing Ubuntu on VirtualBox 29
Installing Ubuntu on a PC 39
Playing with the Ubuntu Graphical User Interface 40
The Ubuntu File System 41
Useful Ubuntu Applications 44
Getting Started with Shell Commands 45
Terminal Commands Cheat Sheet 46
man: Manual Pages for Shell Commands 46
ls: List Directory Content 47
cd: Change Directory 48
pwd: Current Terminal Path 48
mkdir: Create a Folder 49
rm: Delete a File 49
rmdir: Delete a Folder 50
mv: Move a File from One Place to Another 51
cp: Copy a File from One Path to Another 52
dmesg: Display a Kernel Message 52
lspci: List of PCI Devices in the System 53
lsusb: List of USB Devices in the System 54
sudo: Run a Command in Administrative Mode 54
ps: List the Running Process 55
kill: Kill a Process 56
apt-get: Install a Package in Ubuntu 57
dpkg -i: Install a Package in Ubuntu 60
reboot: Reboot the System 61
poweroff: Switch off the System 62
htop: Terminal Process View 62
nano: Text Editor in Terminal 63
Summary 65
Chapter 2: Fundamentals of C++ for Robotics Programming 66
Getting Started with C++ 67
Timeline: The C++ Language 67
C/C++ in Ubuntu Linux 67
Introduction to GCC and G++ Compilers 68
Installing C/C++ Compiler 68
Verifying Installation 69
Introduction to GNU Project Debugger (GDB) 70
Installing GDB in Ubuntu Linux 70
Verifying Installation 71
Writing Your First Code 71
Explaining Code 73
Compiling Your Code 74
Debugging Your Code 76
Learning OOP Concepts from Examples 80
The Differences Between Classes and Structs 80
C++ Classes and Objects 84
Class Access Modifier 86
C++ Inheritance 87
C++ Files and Streams 93
Namespaces in C++ 95
C++ Exception Handling 96
C++ Standard Template Libraries 99
Building a C++ Project 99
Creating a Linux Makefile 99
Creating a CMake File 103
Summary 105
Chapter 3: Fundamentals of Python for Robotics Programming 106
Getting Started with Python 107
Timeline: The Python Language 107
Python in Ubuntu Linux 108
Introduction to Python Interpreter 108
Installing Python on Ubuntu 16.04 LTS 109
Verifying Python Installation 109
Writing Your First Code 110
Running Python Code 113
Understanding Python Basics 114
What’s New in Python? 115
Static and Dynamic Typing 115
Code Indentation 115
Semicolons 116
Python Variables 116
Python Input and Conditional statement 118
Python: Loops 120
Python: Functions 123
Python: Handling Exception 125
Python: Classes 126
Python: Files 128
Python: Modules 130
Python: Handling Serial Ports 132
Installing PySerial in Ubuntu 16.04 132
Python: Scientific Computing and Visualization 135
Python: Machine Learning and Deep Learning 135
Python: Computer Vision 136
Python: Robotics 136
Python: IDEs 136
Summary 137
Chapter 4: Kick-Starting Robot Programming Using ROS 138
What Is Robot Programming? 138
Why Robot Programming Is Different 140
Getting Started with ROS 143
The ROS Equation 146
Robot Programming Before and After ROS 146
The History of ROS 146
Before and After ROS 149
Why Use ROS? 149
Installing ROS 150
Robots and Sensors Supporting ROS 157
Popular ROS Computing Platforms 159
ROS Architecture and Concepts 160
The ROS File System 163
ROS Computation Concepts 165
The ROS Community 166
ROS Command Tools 166
ROS Demo: Hello World Example 171
ROS Demo: turtlesim 173
Moving the Turtle 176
Moving the Turtle in a Square 178
ROS GUI Tools: Rviz and Rqt 179
Summary 181
Chapter 5: Programming with ROS 182
Programming Using ROS 182
Creating a ROS Workspace and Package 183
ROS Build System 187
ROS Catkin Workspace 188
src Folder 188
build Folder 188
devel Folder 188
install Folder 189
Creating a ROS Package 189
Using ROS Client Libraries 191
roscpp and rospy 192
Header Files and ROS Modules 192
Initializing a ROS Node 194
Printing Messages in a ROS Node 194
Creating a Node Handle 195
Creating a ROS Message Definition 195
Publishing a Topic in ROS Node 196
Subscribing a Topic in ROS Node 197
Writing the Callback Function in ROS Node 198
The ROS Spin Function in ROS Node 199
The ROS Sleep Function in ROS Node 199
Setting and Getting a ROS Parameter 199
The Hello World Example Using ROS 200
Creating a hello_world Package 200
Creating a ROS C++ Node 203
Editing the CMakeLists.txt File 205
Building C++ Nodes 206
Executing C++ Nodes 207
Creating Python Nodes 209
Executing Python Nodes 211
Creating Launch Files 211
Visualizing a Computing Graph 214
Programming turtlesim Using rospy 215
Moving turtlesim 215
Printing the Robot’s Position 220
Moving the Robot with Position Feedback 224
Reset and Change the Background Color 228
Programming TurtleBot Simulation Using rospy 232
Installing TurtleBot 2 Packages 233
Launching the TurtleBot Simulation 233
Moving a Fixed Distance Using a Python Node 235
Finding Obstacles 238
Programming Embedded Boards Using ROS 238
Interfacing Arduino with ROS 239
Installing ROS on a Raspberry Pi 245
Burning an Ubuntu Mate Image to a Micro SD Card 246
Booting to Ubuntu 247
Installing ROS on a Raspberry Pi 247
Summary 247
Chapter 6: Robotics Project Using ROS 248
Getting Started with Wheeled Robots 248
Differential Drive Robot Kinematics 249
Building Robot Hardware 253
Buying Robot Components 254
Robot Chassis 254
Additional Motors and Wheels 255
Motor Driver 256
Magnetic Quadrature Encoder 256
Microcontroller Board 258
Bluetooth Breakout 259
Ultrasonic Sensor 259
Block Diagram of the Robot 260
Assembling Robot Hardware 262
Creating a 3D ROS Model Using URDF 263
Programming Robot Firmware 268
Programming Robot Using ROS 273
Creating a Bluetooth-ROS Driver for the Robot 274
The Teleop Node 279
The Twist Message to Motor Velocity Node 280
The Odometry Node 281
The Dead-Reckoning Node 281
Final Run 283
Summary 285
Erratum 286
Index 287

Erscheint lt. Verlag 24.5.2018
Zusatzinfo XIII, 282 p. 213 illus.
Verlagsort Berkeley
Sprache englisch
Themenwelt Informatik Theorie / Studium Künstliche Intelligenz / Robotik
Informatik Weitere Themen Hardware
Schlagworte C++ • hands on projects • Linux • Python • Robotics Operating Systems • Robotics Programming • ROS • ROS Basics • ROS Mobile Robot • Ubuntu
ISBN-10 1-4842-3405-7 / 1484234057
ISBN-13 978-1-4842-3405-1 / 9781484234051
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 14,6 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
der Praxis-Guide für Künstliche Intelligenz in Unternehmen - Chancen …

von Thomas R. Köhler; Julia Finkeissen

eBook Download (2024)
Campus Verlag
38,99
Wie du KI richtig nutzt - schreiben, recherchieren, Bilder erstellen, …

von Rainer Hattenhauer

eBook Download (2023)
Rheinwerk Computing (Verlag)
24,90