ROS Flashcards
What is ROS?
Robot Operating System is a flexible framework for writing robot software.
Better definition:
An open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management. It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers.
ROS nodes
Nodes are processes (programs) where computation is done.
- Each node can interact with other nodes, thanks to the ROS network managed by the ROS Master
- A complex system may have many nodes, each node controls different functions of the system
- It is better to have many nodes that provide only a single functionality, rather than having a large node that makes everything in the system
ROS master
The ROS master stores information about the network because it sets up connections between the nodes (p2p connections).
- Nodes register themselves with the Master on startup
- Nodes ask the Master where to find other nodes. After that, nodes establish peer-to-peer communication with each other
Nodes communication
Nodes communicate with each other through messages.
- Each message must have a name to be routed by the ROS network, this name is called topic
- When a node is sending data, we say that the node is publishing a topic
- Nodes can receive topics from other nodes simply by subscribing to the topic
ROS services
Services give the possibility of interacting more strictly within nodes.
ROS actions
The actionlib package provides tools to create servers that execute long-running goals that can be preempted.
Components: goal, feedback, result
ROS features
- rviz
- rqt_graph
- Gazebo
- MoveIt!
rviz
rviz (short for “ROS visualization”) is a 3D visualization software tool for robots, sensors, and algorithms. It enables you to see the robot’s perception of its world (real or simulated).
The purpose of rviz is to enable you to visualize the state of a robot. It uses sensor data to try to create an accurate depiction of what is going on in the robot’s environment.
rqt_graph
rqt_graph provides a GUI plugin for visualizing the ROS computation graph.
Gazebo
Gazebo is a 3D robot simulator. Its objective is to simulate a robot, giving you a close substitute to how your robot would behave in a real-world physical environment. It can compute the impact of forces (such as gravity).
MoveIt!
MoveIt is the robotic manipulation platform for ROS, and incorporates the latest advances in motion planning, manipulation, 3D perception, kinematics, control, and navigation.