ENPM605 — Python Applications for Robotics ============================================ Course Description ------------------ ENPM605 focuses on leveraging Python programming for robotics applications, providing students with the skills to design, implement, and debug Python programs for robotic systems. This course introduces students to Python as a versatile programming language for automating, controlling, and analyzing robotic processes. Through hands-on projects and real-world examples, students will learn to integrate Python-based tools into various aspects of robotics, including perception and control. The course emphasizes the use of Python in robotic software frameworks such as the Robot Operating System (ROS 2), enabling students to develop modular and scalable robotic solutions. Students will also explore advanced topics such as robotic sensor integration, task automation, behavior trees, and simulation-based development using Gazebo Harmonic. Key topics covered include: - Python programming essentials for robotics - Modern Python tooling: type hints, pytest, uv/poetry for dependency management - Working with ROS 2 Jazzy Jalisco including lifecycle nodes - Simulation environments: Gazebo Harmonic - Integration of robotic sensors and actuators using Python - Transforms and coordinate frames with TF2 - Navigation with Nav2 and application-level behavior trees using py_trees - Best practices in Python coding, debugging, and modularity for robotic systems Learning Outcomes ----------------- After successfully completing this course, you will be able to: - Write and debug Python scripts for controlling robotic systems. - Integrate Python with ROS 2 for robot communication and task coordination. - Interface with robotic sensors and actuators using Python libraries. - Build and configure simulation environments using Gazebo Harmonic. - Implement application-level behavior trees that coordinate Nav2 navigation actions. - Configure and use the Nav2 navigation stack. - Analyze and visualize robotic performance data. .. toctree:: :hidden: :maxdepth: 3 :titlesonly: changelog/changelog lectures/index assignments/index simulation/simulation glossary/glossary