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.