Skip to content

ENME480 · Reference

Resources

Setup guides for the toolchain, references for the math, and the handful of external docs worth bookmarking.

Course documents

Syllabus
Fall 2026 syllabus (PDF) — grading, policies, week-by-week outline
UR3e DH table
Denavit-Hartenberg parameters (PDF)
FK datasheet
Forward kinematics datasheet (PDF)
Camera notes
Perspective transform estimation (PDF)

Setup guides

Work through these in order the first time. Everything after Week 1 assumes they are done.

  • Ubuntu


    Installing 22.04, dual boot and VM options, partitioning, drivers.

    Ubuntu Setup

  • ROS 2


    Installing Humble, sourcing the environment, building a workspace.

    ROS Setup

  • Gazebo


    Launching the simulated UR3e cell and troubleshooting the usual failures.

    Gazebo Setup

  • Dev environment


    VS Code against the course Docker image, and a terminal setup that will not fight you.

    Dev Environment

Language and tooling

  • Python


    The subset used in lab: NumPy arrays, classes, callbacks, and the ROS 2 client library.

    Python Basics

  • Git


    Cloning lab code, branching, and getting out of the states you will end up in.

    Git Basics

  • Kinematics


    DH conventions, homogeneous transforms, the UR3e parameter table, FK and IK derivations.

    Kinematics Reference

External documentation

Source Use it for
ROS 2 Humble docs Concepts, tutorials, rclpy API
Gazebo docs Worlds, plugins, spawning models
NumPy reference Array and linear algebra operations
OpenCV Python tutorials ArUco detection, perspective warps
Universal Robots UR3e Hardware specifications and reach
Robotics Stack Exchange Where ROS Answers questions live now
UMD Robotics Minor The minor this course leads into

Course repositories

Repository Contents
ENME480/Lab-Code Lab handouts and starter packages
ENME480/enme480_project Final project package with redacted scripts
github.com/ENME480 Everything else

Commands worth memorizing

# ROS 2 — source before anything else, in every new terminal
source /opt/ros/humble/setup.bash
source ~/ros2_ws/install/setup.bash

# Inspect a running system
ros2 node list
ros2 topic list
ros2 topic echo /joint_states

# Build only the package you changed
cd ~/ros2_ws && colcon build --packages-select <pkg> --symlink-install

When something breaks after a rebuild

Re-source install/setup.bash. A stale environment explains most "my node disappeared" reports.