Assignments

Important: All assignments must be submitted via Gradescope. Late policy: One and only one deliverable can be turned in late by 2 days. For every other deliverable, and past the 2 days for the first late deliverable, 20% penalty per day.

Problem Sets (30% of grade)

Problem sets consist of theoretical problems and programming exercises to reinforce concepts covered in lectures.

Problem Set 1

Release Date: September 21, 2025 (Sunday, 7:00 AM)

Due Date: October 7, 2025 (Tuesday, 11:00 PM)

Late Due Date: October 9, 2025 (Thursday, 11:00 PM)

Weight: 10% of total grade (100 points)

Components:
  • Problem_set1_writing - Theoretical problems and derivations
  • Problem_set1_code - Programming implementation
Topics Covered:
  • Coordinate transformations and rotation matrices
  • Quaternion operations
  • Robot kinematics
  • Basic ROS2 programming

Problem Set 2

Release Date: October 27, 2025 (Monday, 7:00 AM)

Due Date: November 11, 2025 (Tuesday, 11:00 PM)

Late Due Date: November 13, 2025 (Thursday, 11:00 PM)

Weight: 10% of total grade (100 points)

Topics Covered:
  • Probabilistic robotics fundamentals
  • Bayesian filtering
  • Kalman filter derivations
  • Sensor modeling

Problem Set 3

Release Date: November 24, 2025 (Monday, 7:00 AM)

Due Date: December 11, 2025 (Thursday, 11:00 PM)

Late Due Date: December 13, 2025 (Saturday, 11:00 PM)

Weight: 10% of total grade (100 points)

Topics Covered:
  • SLAM algorithms
  • Path planning
  • Advanced filtering techniques
  • Multi-sensor fusion

Coding Exercises (50% of grade)

Coding exercises are hands-on programming assignments where you will implement key algorithms for mobile robotics using ROS2. These assignments involve processing real sensor data and implementing state estimation algorithms.

Coding Exercise 1: Wheel Odometry and ROS2 Basics

Release Date: October 8, 2025 (Wednesday, 4:00 PM)

Due Date: October 28, 2025 (Tuesday, 11:00 PM)

Late Due Date: October 30, 2025 (Thursday, 11:00 PM)

Weight: 150 points

Components:
  • Coding exercise 1 - Code implementation (4:00 PM release)
  • Coding exercise 1 - Report (7:00 PM release)
Objectives:
  • Implement wheel odometry computation from encoder data
  • Create ROS2 nodes for publishing odometry messages
  • Handle coordinate transformations using tf2
  • Visualize robot trajectory in RViz2
Deliverables:
  • Python implementation of odometry node
  • Output trajectory files for autograding
  • Technical report explaining your approach and results

Coding Exercise 2: IMU Integration and Sensor Fusion

Release Date: November 15, 2025 (Saturday, 9:00 PM)

Due Date: December 2, 2025 (Tuesday, 11:00 PM)

Late Due Date: December 4, 2025 (Thursday, 11:00 PM)

Weight: 175 points

Components:
  • coding exercise 2_code - Implementation
  • coding exercise 2_report - Technical report
Objectives:
  • Process IMU data (accelerometer and gyroscope)
  • Implement complementary filter for orientation estimation
  • Fuse wheel odometry with IMU measurements
  • Handle sensor noise and drift
Deliverables:
  • ROS2 node for IMU processing and fusion
  • Comparison of different fusion approaches
  • Analysis report with performance metrics

Coding Exercise 3: Extended Kalman Filter for GPS-IMU-Odometry Fusion

Release Date: December 12, 2025 (Friday, 4:00 PM / 5:00 PM)

Due Date: December 30, 2025 (Tuesday, 11:00 PM)

Late Due Date: January 1, 2026 (Thursday, 11:00 PM)

Weight: 175 points

Components:
  • Coding exercise 3 code - EKF implementation (4:00 PM release)
  • Coding exercise 3 report - Analysis and results (5:00 PM release)
Objectives:
  • Implement Extended Kalman Filter (EKF)
  • Fuse GPS, IMU, and wheel odometry data
  • Handle asynchronous sensor measurements
  • Tune process and measurement noise parameters
  • Evaluate localization accuracy
Deliverables:
  • Complete EKF implementation in ROS2
  • Trajectory comparison with ground truth
  • Comprehensive report with covariance analysis
  • Performance evaluation metrics
Note: This is the most challenging assignment of the course. Start early and utilize office hours!

Quizzes (20% of grade)

Quiz Date Time Topics Points
Quiz 1 October 10, 2025 (Friday) In class Modules 1-3: Intro, Math Fundamentals, Robot Dynamics 50
Quiz 2 November 7, 2025 (Friday) In class Modules 4-5: Motion Control, Sensor Fusion 75
Quiz 3 December 5, 2025 (Friday) In class Module 6: Localization, Mapping, SLAM 75

Assignment 4: Semester-Long Simulation Project

Assignment 4: ROS2 and Gazebo Simulation Project (All Students)

Duration: Semester-long project split into two parts

Weight: 100 points (required for both 3 and 4 credit sections)

Project Overview:

All students will implement what they learn in CS498GC Mobile Robotics using Ubuntu 22.04, ROS 2 Humble, and Gazebo Simulation. This semester-long project allows you to apply course concepts in a practical simulation environment.

Part A: Simulation Setup & Basic Implementation

Release Date: September 3, 2025 (Wednesday)

Due Date: November 21, 2025 (Friday, 11:00 PM)

Weight: 50 points

Objectives:
  • Set up Ubuntu 22.04 and ROS 2 Humble on local device
  • Configure Gazebo simulation environment
  • Implement basic robot model and sensors
  • Create ROS2 nodes for basic navigation
  • Implement coordinate transformations from Modules 1-2
Deliverables:
  • Working simulation environment setup
  • Basic robot URDF/SDF model
  • Initial navigation implementation
  • Setup documentation and screenshots
Part B: Advanced Implementation & Integration

Release Date: November 24, 2025 (Monday)

Due Date: December 16, 2025 (Tuesday, 11:00 PM)

Weight: 50 points

Objectives:
  • Implement sensor fusion algorithms from Module 5
  • Add IMU, GPS, and wheel encoder simulation
  • Implement EKF for state estimation
  • Create path planning and control algorithms
  • Integrate SLAM capabilities from Module 7
Deliverables:
  • Complete ROS2 package with all implementations
  • Gazebo world with navigation challenges
  • Technical report (8-10 pages) with results
  • Video demonstration of full system
  • GitHub repository with documentation
Key Technologies:
  • Operating System: Ubuntu 22.04 LTS
  • ROS Version: ROS 2 Humble Hawksbill
  • Simulation: Gazebo Classic or Ignition Gazebo
  • Programming: Python or C++
  • Visualization: RViz2, PlotJuggler
Important: Start Part A early! Setting up the simulation environment can take time. Use office hours for help with installation issues.
Note: Part A must be completed before Thanksgiving break. This ensures you have a working simulation environment for Part B implementation after the break.

Submission Guidelines

Important Policies:
  • All assignments must be submitted through Gradescope (Entry Code: KDP5G8)
  • Code submissions should include all necessary files to reproduce results
  • Reports should be in PDF format with clear explanations and figures
  • Late Policy: One assignment can be 2 days late without penalty. After that, 20% per day
  • Academic integrity: All work must be your own. Cite any external resources used