This paper presents the development and integration of a new "Robot Operating System 2 (ROS2)" course serving the BS Robotics Engineering and MS Mechatronics and Robotics Engineering programs at XXX University (XXX). Robot Operating System (ROS) is an open-source middleware framework designed for robotics development, providing a flexible and modular approach to creating complex robotic systems. Despite its name, ROS is not a traditional operating system but rather a set of software tools, libraries, and conventions that run on top of existing operating systems, offering key features such as hardware abstraction, distributed computing, and message passing between processes. ROS utilizes a graph-based architecture where individual processes (nodes) communicate with each other, enabling the creation of scalable and reusable robotic applications across a wide variety of platforms. For students, mastering ROS2 can significantly enhance their career prospects, as it is widely used in industry and academia, with companies employing programmers with ROS2 skills for cutting-edge applications like self-driving cars, drones, and AI-powered robotics.
The course covers fundamental topics such as ROS2 architecture, ROS2 programming in Python and C++, and advanced topics in robot control, navigation, and simulation. The course introduces simulation tools including Gazebo and TurtleBot and interfacing with MATLAB and Simulink. Finally, ROS2 tools such as rviz, rqt, and ros2cli are used for visualization and debugging. The curriculum emphasizes hands-on labs and projects, utilizing both simulations and real-world robotic systems to provide practical experience. This approach allows students to apply theoretical concepts to real-world scenarios, enhancing their problem-solving skills and technical proficiency. The course's interdisciplinary nature fosters collaboration between mechanical engineering, computer science, and electrical engineering students, mirroring industry practices.
Student preparation differs between programs and must be considered within the course design. At XXXX, BS Robotics Engineering students take three introductory computer science courses along with courses in discrete math, data structures, and embedded systems. With the ROS2 course counting as a senior-level technical elective, the BS Robotics Engineering students are very experienced with robotics programming in C/C++/C#. By comparison, MS Mechatronics and Robotics Engineering students are primarily graduates of BS Mechanical Engineering programs and have limited experience with C++ or Python.
Student experience with ROS2 enhances industry relevance and career preparation, develops essential technical skills, and accelerates learning and project development. Students gain experience in creating scalable robotics software, integrating diverse components, and developing real-time systems for critical applications. This comprehensive approach to robotics education not only enhances employability but also prepares students to tackle complex challenges in the rapidly evolving field of robotics, positioning them for success in their future careers and enabling them to contribute to advancements in the field.
Learning objectives, course structure, and examples of student work will be included in the draft paper.
http://orcid.org/0000-0002-3297-6636
Lawrence Technological University
[biography]
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.