Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ros2 chapter #15

Merged
merged 25 commits into from
Jun 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
5ea3fe3
Gnarly conversion, will comeback and cleanup.
kscottz Jun 5, 2020
5e50223
Merge branch 'master' of github.com:osrf/ros2multirobotbook into ros2…
kscottz Jun 5, 2020
e060b23
Added in second lesson, still needs fixing from pandoc
kscottz Jun 5, 2020
18cbd2e
Adding in image files from previous lectures.
kscottz Jun 5, 2020
28c7a88
Edited source rst then ran pandoc on lesson 3, keeps lists / formatin…
kscottz Jun 5, 2020
3f9adfd
Reprocessed the C++ lesson so formatting is relatively correct, moved…
kscottz Jun 6, 2020
925da6f
split ros2 chapter into multiple files
Jun 8, 2020
b84ed34
Introduction section of ros2
kscottz Jun 8, 2020
6e66faf
Rejiggering sections.
kscottz Jun 8, 2020
3254f41
Official and un-official resources.
kscottz Jun 9, 2020
204acdb
First section draft complete.
kscottz Jun 10, 2020
8e86761
move chapter intro into ros2.md
Jun 10, 2020
63b9ee8
first chunk of content
Jun 11, 2020
98c08ec
Added more words
Jun 11, 2020
37e725c
Section intro ros2 run, ros2 topic
kscottz Jun 12, 2020
d5d9ea4
More on topics. Think I found a bug.
kscottz Jun 13, 2020
c1c40c8
finished design patterns
Jun 16, 2020
503948c
Merge branch 'master' of github.com:osrf/ros2multirobotbook into ros2…
kscottz Jun 16, 2020
4b314f4
Merge branch 'ros2_chapter' of github.com:osrf/ros2multirobotbook int…
kscottz Jun 16, 2020
56fed17
move fodder into separate file to facilitate review
Jun 16, 2020
383237c
split chapter 2 into sub-chapters
Jun 16, 2020
f36641c
CLI topics, services, actions.
kscottz Jun 17, 2020
3c66373
Gnarly merge from pull
kscottz Jun 17, 2020
c6dbbf0
a few trivial edits
codebot Jun 17, 2020
4949088
Fix what I suspect was bad copy and paste
Jun 17, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

- [Introduction](./intro.md)
- [ROS 2](./ros2.md)
- [ROS Resources](./ros2_tools_resources.md)
- [ROS Concepts and Design Patterns](./ros2_design_patterns.md)
- [The ROS Command Line Interface](./ros2_cli.md)
- [The ROS API](./ros2_api.md)
- [Traffic Editor](./traffic-editor.md)
- [Simulation](./simulation.md)
- [RMF Core](./rmf-core.md)
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/four_turtles.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/jfk.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/larry.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/node_info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/reset_service.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/ros_graph_example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/rqt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/rqt_graph.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/rqt_start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/turtle_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/turtle_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/turtlesim_square.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/turtlesim_start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 52 additions & 2 deletions src/ros2.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,53 @@
# ROS 2
# An Introduction to ROS 2

Herein we shall discuss Deep Thoughts about ROS 2
In this chapter we will cover the basics of Robot Operating System (ROS) and
give you all the tools you need to build, debug, and understand robotic
applications. This chapter is laid out from the most general concepts, necessary
for decision makers to make sound decisions, to specific API references needed
by engineers to develop new robotic applications. Somewhere in between high
level concepts, and low level API commands lives the knowledge necessary for
those maintaining and supporting multi-robot deployments in the field.

A good analogy to learning about ROS is the process of learning about motor
vehicles. At the practical, day-to-day level, most people will learn how to
start a vehicle and safely use it on a motorway. For these individuals, learning
about the high level concepts behind ROS, along with application-specific
commands is probably sufficient. Those who enjoy driving often choose to learn
how to repair and maintain their vehicle. If this is your interest level we
recommend learning the basics of the ROS command line interface. This will allow
you to "check the oil" of your robotic systems and make sure everything is
functioning correctly. Finally, if you are the type that would like to swap out
the engine of your vehicle with something more powerful, or potentially build a
wholly new vehicle from scratch, then the ROS API is the set of tools that will
make this possible. Generally speaking, automotive engineers don't appear into
the world fully formed, and the same is true for roboticists. It is advisable to
work through each phase of understanding as you develop your skills with ROS.

Following from our analogy above the process of learning how to use robotic
systems built on ROS can be divided roughly into four parts. This chapter works
through these four parts of the process, using ROS 2. Subsequent chapters then
build upon this knowledge and discuss the subtleties of specific
applications. The four parts of this chapter are as follows.

* Meta-discussion of the tools and resources available to help you in the
learning process.

* A high level discussion to the design patterns use in ROS. These patterns are
roughly analogous to the subsystems you would find in a vehicle (engine,
brakes, safety, climate control, etc).

* A treatment of the command line interface (CLI) for ROS. The CLI is a set of
programs for starting, inspecting, controlling, and monitoring a ROS
robot. You can think of this topic as teaching you how check a robot's oil,
and read the instrument panel.

* An introduction to the ROS application programming interface. This section
will show you how to create your own applications and modify existing software
for your specific application.

While this books aims to cover the basics it should be made clear that ROS, like
almost all software is a moving target. Technology moves quickly, and while
print media is helpful and delivering high fidelity instruction, that
instruction can become rapidly outdated. For this reason we start this chapter
with a meta-discussion of ROS resources that can be used to help you in your
learning process.
5 changes: 5 additions & 0 deletions src/ros2_api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# The ROS API

This section will show you how to create your own applications and modify
existing software for your specific application.

Loading