Skip to content

HW 1: Introduction to Robot Operating System ROS2

Madi Babaiasl edited this page Sep 2, 2023 · 2 revisions

Instructions:

Answer the following questions based on the concepts and information presented in the "Prerequisite 1" lesson:

https://github.com/madibabaiasl/modern-robotics-I-course/wiki/Prerequisite-1:-Introduction-to-Robot-Operating-System-(ROS2)

Provide detailed explanations with schematics and photos where necessary. This assignment will assess your understanding of ROS 2's communication mechanisms, tools, and concepts.

Part 1:

(a) Explain what the Data Distribution Service (DDS) is in the context of ROS 2. (b) How does DDS facilitate efficient communication and data sharing among different nodes in a robotic system? Answer this based on the PincherX 100 robot arm's ROS 2 interface and illustrate how the nodes in different packages communicate with each other.

To efficiently answer (b):

  • Detail the interaction between publishers and subscribers through topics and describe the role of messages in this communication process and how they enable the exchange of data between nodes (when relevant to one of the packages). Do this for services, actions, and other forms of communication.
  • What is the advantage of using services in some of the packages for communication between nodes? Think about the synchronous communication nature.
  • Show the answer with a schematic if relevant.

Part 2: Discuss how the publisher-subscriber communication model, along with its use of topics, contributes to enhancing the scalability of robotic systems in ROS 2. Give an example of a robotics application where multiple nodes communicate through topics to achieve a scalable system. Draw a schematic if you can.

Part 3: Differentiate between ROS 2 actions and services in terms of communication and functionality. Provide examples of scenarios where using actions would be more appropriate than using services in robotics applications, highlighting cases where asynchronous behavior is crucial.

Part 4: Trossen Robotics used the DYNAMIXEL Workbench Toolbox from ROBOTIS to develop their interbotix_xs_driver package. This shows how packages can contribute to the modular organization and reusability of code in robotics development. Provide another example of how package development enhances collaboration and simplifies the creation of complex robotic systems.

Submission: Submit your answers via Email/Canvas in a PDF format downloaded from the Latex file (you can use the lab report source with relevant titles to the homework). Good luck!

Clone this wiki locally