Slide 1

Slide 1 text

Introduction to + Breandan Considine

Slide 2

Slide 2 text

@PHDComics What is ROS? • ROS is a SDK for developing distributed robotic applications • Provides OS-like features: • Hardware abstraction • Low-level device control • Message passing between processes • Package management • Comprised of a number of nodes, which communicate with each other using a pub-sub messaging model

Slide 3

Slide 3 text

ROS Packages • Software in ROS is organized into packages • Packages may contain, ROS Nodes, Libraries (independent of ROS), Datasets, configuration files • Anything that provides useful modular functionality • Dependencies • ros_core, rqt_graph, rqt_plot, rviz… • Defined by a package.xml file

Slide 4

Slide 4 text

ROS Nodes • Nodes are processes in ROS • More fine-grained than packages: • Sensor readings • Motor outputs • Localization • Path planning • Image view • Can be implemented in with any ROS client library • Nodes communicate with each other by passing messages

Slide 5

Slide 5 text

ROS Topics • Messages in ROS are routed via a pub-sub model • Nodes communicate by publishing and subscribing to topics • Name of the topic uniquely identifies the channel • Generally, publishers and subscribers are oblivious to each other’s existence • ROS Services are another communication model that use request-reply semantics

Slide 6

Slide 6 text

ROS Parameters • A Parameter Server is a shared, multivariable dictionary that is accessible via a network • Nodes use this server to store and retrieve parameters at runtime • ROS has the rosparam tool to work with the Parameter Server. The supported parameters are as follows: -rosparam list: This lists all the parameters in the server -rosparam get parameter: This gets the value of a parameter -rosparam set parameter value: This sets the value of a parameter

Slide 7

Slide 7 text

ROS Command line tools • rostopic: get information about topics • rospack: Used to get information or find packages in the system. • rosparam: Used to get and set parameters on the parameter server • roscreate-pkg: Use this command to create a new package • rosmake: This command is used to compile a package • rosdep: This command installs system dependencies of a package • rxdeps: Used if you want to see the package dependencies as a graph

Slide 8

Slide 8 text

ROS Communications Model

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

What is a container? • Deploying applications can be challenging • Need to ensure compatibility across devices, operating systems • Package management, dependency resolution • Reproducibility comes in many flavors • Welcome to the wonderful world of containers! • Essentially just a fancy chroot • File system and network isolation • Version control • Copy-on-write

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

http://duckietown.dev.land/build/duckieos/