Skip to content

HW 1: Introduction to Robot Operating System ROS2

Madi Babaiasl edited this page Sep 5, 2024 · 9 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 concise and to the point explanations with schematics and photos where necessary. This assignment will assess your understanding of ROS 2's communication mechanisms, tools, and concepts.

Part 1 (40 points):

(a) Explain what the Data Distribution Service (DDS) is in the context of ROS 2 (10 points).

(b) How does DDS facilitate efficient communication and data sharing among different nodes in a robotic system (15 points)? 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 (10 points). Note: draw schematics for each communication method.

(c) What is the advantage of using services in some of the packages for communication between nodes? Think about the synchronous communication nature (5 points).

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

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

Part 4 (20 points): 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 Canvas. Good luck!

Clone this wiki locally