0% found this document useful (0 votes)
16 views18 pages

ROS Course L1

The document outlines a ROS mini-course consisting of two workshops and a mini-project focused on autonomous inspection. It provides an overview of ROS as a robotics middleware, its features, components, and tools, along with a homework assignment to develop a chat application based on ROS. Additionally, it advises on installation options for ROS and potential pitfalls with virtual machines.

Uploaded by

LINZE LI
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views18 pages

ROS Course L1

The document outlines a ROS mini-course consisting of two workshops and a mini-project focused on autonomous inspection. It provides an overview of ROS as a robotics middleware, its features, components, and tools, along with a homework assignment to develop a chat application based on ROS. Additionally, it advises on installation options for ROS and potential pitfalls with virtual machines.

Uploaded by

LINZE LI
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

ROS Workshop 1 - MF 2058

Overview of the ROS mini-course:


1. Workshop 1 – 22 Jan 2024, kl 15-17
• ROS fundamentals lecture
• ROS tutorials
2. Homework assignment: Chat based on ROS
3. Workshop 2 – 1 Feb 2024, kl. 9.15-12
• GIT essentials
• Intro to mini-project
4. Mini-project: Autonomous Inspection
Project
• Design review - 12 Feb 2024
• Final demo event (aka "AIP Competition"- 29 Feb
What is ROS?
Not really an operating system like e.g., Linux
1. Robotics Middleware – A framework for communication between different processes (ROS nodes)
2. A collection of software tools based on the middleware (visualization, logging replay etc.)
3. Capabilities – ready-to-use open source algorithms for e.g., localization planning etc and drivers for
various sensors and actuators.
4. Large, growing global ecosystem – becoming global standard for robotics software
Features of ROS
• Enables use of multiple programming
languages (Python and C/C++ are most
common, but interfaces exist for
Matlab/Simulink, Julia, and many others)
• Easy deployment on multiple machines on a
network.
• Enables efficient reuse of software (easy-ish
integration of open source code)
• Toolkit to organize complex robot software
(e.g build tools, visualization, logging/replay,
simulation etc. - more on this later)
• Accessible learning resources from huge
online community
When is ROS useful?
When is ROS useful?
High complexity robotics
project
• Many types of functionalities
needed
• Many people working on the
software

• Here, a robotics middleware


is necessary for efficient
development
When is ROS useful?
Low complexity robotics project
• Few key functionalities
• Few people working on the
software

• Here, a robotics middleware


is NOT necessary for efficient
development
Components of a ROS network
• Node – process that performs computation
• Topic - named communication bus (publish/subscribe)
• Service - request / reply interaction
• Parameter Server – shared variable dictionary
Tools
• Catkin – build tool (build all nodes in organized manner)

Catkin Workspace

Package 1 Package 2

Node 1 Node 1

Node 2 Node 2
Tools
Command line tools

A few important examples (full list of available commands at wiki.ros.org)


• rosrun – run a node
• rosnode list – show a list of nodes on the network
• rostopic list – show a list of topics on the network
• rostopic echo – print contents of messages on a topic
• roslaunch – run multiple nodes in single terminal. Example:
Tools
Node graph, visual representation of:
• Nodes
• Topics
• Rates (of topics)
• Delays (of topics)
Tools Rviz – real time 3d visualization
Tools
• TF – tools to keep track of coordinate
systems
Tools RQT – graphical user interface for ROS
Tools
• Rosbag
- Logging/Replay
Tools
• Gazebo
- Physics based
simulation
environment
Assignment – Chat based on ROS

Tutorials List: (also available on the


• The task is to develop a chat based on ROS, were multiple users (clients) can assignment description)
communicate instantly with each other.
From the ROS tutorials
• There should be at least two clients and they should be able to instantly communicate (http://wiki.ros.org/ROS/Tutorials), you
with each other. will need the tutorials 1, 2, 3, 4, 5, 6, 8,
• There is no need for a graphical interface, a terminal for each of the clients will do the job. and either 11 (C++) or 12 (Python)

• Each client should be a different ROS node. They can be different instances of the same
node, or completely different nodes, but they can not be part of the same “program”
outputting to two terminals.
• Each client should be running on a different computer (Inside the same network).
• Optional extension: Can you make it so that the number of participants can be arbitrarily
large, without having to change the system every time you add a new client?
Now: Questions, ROS Tutorials and optional
VMs
Tutorials List: (also available on the
• As a complement to the computers allocated, you do have the opportunity to install Ubuntu
assignment description)
and ROS on your personal computers. But be aware of these pitfalls:
o Virtual machines are probably ok for the tutorials, but tend to work poorly with the more resource intensive ROS tools From the ROS tutorials
(e.g, Gazebo, Rviz). Also, the teaching team will most likely not be able to help you if something is wrong with your VM (http://wiki.ros.org/ROS/Tutorials), you
setup. will need the tutorials 1, 2, 3, 4, 5, 6, 8,
o A native installation is always better in this regard (e.g. dual boot), but be careful (backup your computer before) and and either 11 (C++) or 12 (Python)
make sure you follow the instructions carefully. If you get it wrong you may end up wiping your computer.

You might also like