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
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
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
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
• 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
• 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