Skip to product information
Let's create and code a robot software that you can study independently using ROS2.
Let's create and code a robot software that you can study independently using ROS2.
Description
Book Introduction
This book is for those who know about the existence of a tool called ROS and want to study it, but have not yet started studying it, or have tried various examples but cannot get a feel for it.
Based on my experience as a lecturer for many years, I wrote this book as if I were telling a story in a way that readers can easily understand.
The goal of this book is to help readers quickly understand the principles and usage of ROS so they can do what they want.

I'm not saying that this one book is enough.
What I, as the author, want to say to my readers is, "Wouldn't it be easier to learn this way?"
In a field of mathematics, it would be important to have a book that covers everything, but I don't think it's possible to approach the ROS ecosystem, where an incalculable number of people participate and share various packages, in that way.
Additionally, we have a very excellent ROS evangelist named Dr. Pyo Yun-seok, and through his books and materials, we can learn about the basic operating principles of ROS2.
So I've written this book in the way I like to approach it in my classes.
- From the author's words

  • You can preview some of the book's contents.
    Preview

index
·preface
·The target audience for this book
· Entering

Settings
1.
Terminal
1.1 The need for a terminal with split screen
1.2 Trying out the basic terminal
1.3 Terminator
1.4 Tilix
2.
Editor
2.1 Installing Sublime Text
2.2 Trying Sublime Text
3. Install ROS
3.1 Find the ROS Galactic version installation page
3.2 Set Locale
3.3 Setup Sources
3.3 Install ROS2 packages
3.4 Verifying ROS2 Installation
4.
finish

Getting familiar with the terminal, bashrc, and Linux
1.
Purpose of this chapter
2.
Basic folder-related commands in Ubuntu
2.1 Let's create a folder - mkdir
2.2 Move the folder to the folder you want to install - cd
2.3 Delete command = rm
3.
bashrc
3.1 Shell
3.2 .bashrc
3.3 Enter commands in .bashrc
4.
Setting alias in .bashrc
4.1 Setting up aliases
4.2 Setting the galactic setting as an alias
4.3 Also specify source ~/.bashrc as an alias
5. ROS2 domain settings
6.
finish

Learning basic ROS2 commands
1.
Purpose of this chapter
2.
Installing and Running Turtlesim
3.
Re-emphasizing the setup.bash environment
4. ROS Node
5. ROS Service
5.1 Service Concept
5.2 ros2 service list
5.3 ros2 service type
5.4 Service Definition
5.5 Introduction to Mobile Robots
5.6 How to call a service service call
5.7 namespace
5.8 spawn
6. ROS Topic
6.1 Topic Concept
6.2 ros2 topic list
6.3 ros2 topic type
6.4 ros2 topic info
6.5 Checking the message type to use the topic
6.6 Subscribing to a topic in the terminal
6.7 Try issuing a driving command topic
6.8 rqt_graph showing the flow of topics
7. ROS Action
7.1 Run node turtle_teleop_key
7.2 ros2 action list
7.3 ros2 action send_goal
8.
finish

Handling ROS2 Topics with Python
1.
Purpose of this chapter
2.
Installation and Preparation
3.
Simple usage of Jupyter and Python basics
3.1 Basic Use of Jupyter
3.2 Markdown Document
4.
Subscribing to Topics with Python
4.1 Preparing to subscribe to a topic with Jupyter
4.2 A word of caution before getting into coding
4.3 Importing modules required for subscription
4.4 Python Import Method
4.5 Initializing rclpy and creating nodes
4.6 Writing a callback function to be executed in Subscription
4.7 Creating a Topic Subscriber
4.8 Things to keep in mind when using Jupyter
4.9 Limit the number of topics you receive
5.
Publishing Topics with Python
5.1 Preparing to publish topics with Jupyter
5.2 Initializing rclpy and messages for topic publishing
5.3 Declaring Twist as the data type of the cmd_vel topic
5.4 Simple Publishing of the cmd_vel Topic with Python
5.5 Publishing a topic using a timer in ROS
6.
Types of nodes
7.
finish

Handling Service Clients with Python
1.
Purpose of this chapter
2.
Using the ROS Service Client with Python
2.1 Preparing for Learning and Creating Nodes for the Service Client
2.2 Creating a Service Client Requesting a Service
2.3 Preparing the service definition for use in Python
2.4 Try a simple service call
2.5 Trying wait_for_service
2.6 Checking the status of the service client execution
3.
finish

Understanding Python Classes for ROS2 Learning
1.
Purpose of this chapter
2.
Preparation and just drawing the sin function
2.1 Preparing a blank document
2.2 Preparing to use matplotlib and importing it
2.3 Preparing the domain
2.4 Finding the sin function
2.5 Drawing a graph
2.6 Implementing with function def
3.
Drawing the sin function as a class
3.1 First, let's register a variable in the class.
3.2 Complete the class for drawing trigonometric functions
4.
Class Inherritance
5.
Method Overriding
6.
Using super() in a class
7.
finish

Creating packages and covering topics
1.
Purpose of this chapter
2.
Installation and Preparation
3.
Creating a package for the first time
3.1 Let's just create a package.
3.2 Building a Package and Setting Up a Workspace
4.
Add a Topic Subscriber node
4.1 Adding a new subscriber file
4.2 Description of the my_subscriber.py file
4.3 Running the newly added node
5.
Add a Topic Publisher node
5.1 Description of the my_publisher.py file
5.2 If you want to clear the build information of the workspace
5.3 Running my_publisher
6.
finish

Create message definitions and handle them in topics and services
1.
Purpose of this chapter
2.
Message Definition
2.1 Creating a separate package for message definitions
2.2 Creating a message definition msg definition
2.3 Building a package with the newly defined msg
3.
Subscribe to two topics and publish to one topic.
3.1 Let's start with the pose topic driven part published by turtlesim.
3.2 Let's use the newly defined CmdAndPoseVel.
3.3 Subscribe to the cmd_vel topic
3.4 Let's publish the results of subscribing to two topics.
4.
Let me create a service definition.
4.1 Creating and Building a Service Definition
4.2 Let's create a service server
4.3 Let's create client code inside the service server code.
4.4 The problem of arranging multiple turtles in a circle
4.5 Implementing a service server that deploys multiple turtles
4.6 Let's introduce several turtles.
5.
finish

Getting used to the action
1.
Purpose of this chapter
2.
Creating an action definition
2.1 Preparing to Create an Action Definition
2.2 Creating an Action Definition
2.3 Building an Action Definition
3.
A brief look at the concept with a simple action server.
3.1 Action server that simply displays results
3.2 Adding feedback to the action server
4. ROS2 Multi-Threading Basics
5.
Create an action server that moves a specified distance
5.1 Full code
5.2 main: Applying multithreading
5.3 TurtleSub_Action: Subscribe to the pose topic
5.4 DistTurtleServer: Move a user-specified distance
6.
A quick look at the Action Server
7.
finish

Handling parameters
1.
Purpose of this chapter
2.
Try using parameters with terminal commands
2.1 Practice Environment
2.2 ros2 param list
2.3 ros2 param get
2.4 ros2 param set
2.5 ros2 param dump
2.6 ros2 param load
3.
Parameters accessed through code
3.1 First, let's declare the parameters.
3.2 How to use parameters in code
3.3 Notice that parameters are changing
4.
finish

Several tools for debugging and observation
1.
Purpose of the village head
2.
log
2.1 Checking logs using rqt_console
2.2 Creating your own log messages
3.rqt
3.1 rqt_graph
3.2 rqt_plot
3.3 topic monitor
3.4 topic publisher
4.
rosbag
5. ROSLAUNCH
5.1 roslaunch basics
5.2 Specifying parameters
6.
finish

In conclusion

Detailed image
Detailed Image 1

Publisher's Review
I have been studying and developing robots for a very long time.
I started out as a student and worked on everything from small-scale educational robots to the development of laparoscopic surgical robots that cost hundreds of millions of won.
There are many areas I'm interested in, but it hasn't been easy to get involved in actual development.
But somehow, I ended up challenging myself with various projects, including an educational robot that uses block coding, a robot for bomb disposal, a skate robot (a type of balancing robot that helps people move by maintaining balance), a 3D printer, and even a deep learning-based project.
Whether I'm developing or using a robot, the friend who always helps me implement functions conveniently is ROS (Robot Operating System).
Of course, I didn't use ROS from the beginning.
I first learned about ROS around 2012, but it wasn't until a few years later that I actually started studying and using it, and even then, several years later, that I developed robotics software using ROS. After using ROS, I found myself thinking, "Wow! If only I had used this wonderful tool sooner! It would have been so much easier."

Recently, I've been participating in various educational programs to spread the word about robotics and deep learning.
We also strive to provide excellent books and materials to students in various locations.
Then, I thought that I would like to learn the functions of robots and provide some help to those who want to learn ROS for robot development.
Rather than talking about the grand history of ROS, its philosophy, or its architecture, I wanted to talk about how to use ROS really well.

I thought I should teach everything I could about robot development, including ROS, block coding, control theory, robotics, digital filters, and deep learning.
I don't know if it will be one book per field or in a different format, but I plan to tell the stories one by one.

The first book I'm going to start with is ROS2 Galactic.
I don't think it matters whether ROS version is 1 or 2.
I think that it is more important to quickly find the functions you need and how to apply them than which tool you use.
Phrases like 'perfect organization' or 'this one book is all you need' don't fit my book.
I don't think I have the ability to organize more material in more depth than what's available on the Internet.
As I mentioned earlier, I want to point out that I'm thinking about ways for readers to quickly learn the tools.

This book will first focus on the basics of ROS usage, but before that, we'll briefly cover Linux usage. ROS works very well on Ubuntu (a Linux-based OS), so familiarity with Ubuntu is essential.
We will also cover how to describe robots with URDF, how to simulate them in Gazebo, and how to use Arduino with ROS in the next two volumes.
Currently, a useful tool called ROS is in a transitional phase from ROS1 to ROS2, as the ROS2 version came out a few years ago.
There is a lot of debate in the internet community about ROS1 vs. ROS2, but I think it is a meaningless debate.
Because you have to know how to handle everything.
Here, I will talk about ROS based on Ubuntu 20.04.
The reason is simple.
Because the last Ubuntu version that supports both ROS1 and ROS2 is 20.04.

By the time this book is published, Ubuntu will likely have been updated to version 22.04.
But that doesn't matter either.
Because there are still many people developing with ROS1 Kinetic version on Ubuntu 16.04.
What matters is not the version, but understanding how to use it.
There will definitely be a new ROS2 version coming out for Ubuntu 22.04, but the basics won't change, so you don't have to worry about it too much.
GOODS SPECIFICS
- Publication date: September 6, 2022
- Pages, weight, size: 433 pages | 714g | 185*257*15mm
- ISBN13: 9791191198041
- ISBN10: 1191198049

You may also like

카테고리