Assignments

Fall 2025 archive. CS498GC Mobile Robotics ran in Fall 2025 (Prof. Girish Chowdhary; TA Kulbir Singh Ahluwalia). Deadlines, office hours and course links on this page are from that semester and are kept as a reference.
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

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

Problem Set 1

Release Date: September 3, 2025 (Wednesday, 11:00 PM)

Due Date: September 19, 2025 (Friday, 11:00 PM)

Late Due Date: September 21, 2025 (Sunday, 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 5, 2025 (Sunday, 8:00 AM)

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

Late Due Date: October 23, 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: October 29, 2025 (Wednesday, 8:00 AM)

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

Late Due Date: November 22, 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

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: September 26, 2025 (Friday, 8:00 AM)

Due Date: October 18, 2025 (Saturday, Gradescope deadline 5:00 AM)

Late Due Date: October 20, 2025 (Monday, Gradescope deadline 5:00 AM)

Weight: 150 points

Components:
  • Coding exercise 1 - Code implementation
  • Coding exercise 1 - Report
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: October 20, 2025 (Monday, 12:00 AM on Gradescope)

Due Date: November 9, 2025 (Sunday, 11:59 PM)

Late Due Date: November 9, 2025 (Sunday, 11:59 PM; no late window)

Weight: 150 points (100 code + 50 report)

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: November 7, 2025 (Friday, 8:00 AM)

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

Late Due Date: December 9, 2025 (Tuesday, 11:00 PM; no late window)

Weight: 200 points (150 code + 50 report on Gradescope)

Components:
  • Coding exercise 3 code - EKF implementation
  • Coding exercise 3 report - Analysis and results
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

Quiz Date Format Topics Points
Quiz 1 October 15, 2025 (Wednesday) Canvas (20 marks) + Written (30 marks) Modules 1-3: Intro, Math Fundamentals, Robot Dynamics 50
Quiz 2 November 21, 2025 (Friday) - Online 24 hours Canvas Modules 4-5: Motion Control, Sensor Fusion 75
Quiz 3 December 8, 2025 (Monday) - Online 24 hours Canvas 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 (the TA reference runs posted later used Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic). 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: 25 points

Objective:

Deploy Husky robot with UR3 manipulator in Gazebo using ROS2 Humble

Mobile Manipulator System Configuration (13 DOF total):
  • End Effector: 1-DOF parallel gripper (open/close)
  • Manipulator Arm: 6-DOF (UR3 with 6 revolute joints)
  • Mobile Base: 6-DOF representation in SE(3) - position (x, y, z) and orientation (quaternion: qw, qx, qy, qz)
  • Note: Husky has differential drive kinematics with 3 controllable DOF (planar motion)
Deliverables Submitted on Gradescope:
  1. Rosbag Recording: 30-second recording of all topics from Husky base and UR3 arm
  2. Screen Recording: 30-second video showing mobile manipulator in ROS2 Humble, Gazebo, RViz
    • 10 seconds: Teleoperation of mobile manipulator
    • 20 seconds: End effector gripper actuation (open/close)
Required Resources:
Quick Test Commands:
# Install packages
sudo apt install ros-${ROS_DISTRO}-ros-gz ros-${ROS_DISTRO}-slam-toolbox ros-${ROS_DISTRO}-navigation2 ros-${ROS_DISTRO}-nav2-bringup

# Test Husky+UR3
# (TA reference setup, not public: husky_ur3_gazebo comes from the TA's ROS 2 Jazzy workspace; the public husky_ur3_simulator is ROS 1 Noetic)
ros2 launch husky_ur3_gazebo simulation.launch.py world:=empty.sdf

# Test UR3
ros2 launch ur_description view_ur.launch.py ur_type:=ur3

# Diagnostics
ros2 doctor --report
Technical Challenges to Expect:
  • Dependency conflicts between 20+ ROS packages
  • NVIDIA driver compatibility issues
  • Environment sourcing in new terminals
  • Python version mismatches

Reference Implementation: ROS1 to ROS2 adaptation

Husky+UR3 Repository: Husky + UR3 Mobile Manipulator Simulator

TA Reference Runs (DGX Spark, ROS 2 Jazzy + Gazebo Harmonic, recorded July 2026):

TA reference runs, not student submissions

TA reference run, Part A: the Husky and UR3 drive forward, then turn in place, in Gazebo Harmonic Part A: Husky + UR3 scripted base drive, forward then an in-place turn (sped up)
TA reference run, Part B: the SLAM Toolbox occupancy grid grows from the first scan to the final map Part B: SLAM Toolbox occupancy map growing (rendered from the run's rosbag)

All TA reference runs, with captions and key numbers: SLAM-ing Mars page.

Part B: SLAM Implementation & Mars Challenge

Release Date: October 29, 2025 (Wednesday; opened on Gradescope at 4:45 PM)

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

Weight: 75 points (+10 Mars Challenge bonus)

(original Fall 2025 figures, superseded by rubric v11 of December 8, 2025: optional extra credit with up to +35 bonus points; the two v11 builds list 175 points due Dec 15 and 75 points due Dec 10)

Core Requirements:
  • Sensor Fusion / EKF (15 pts): EKF implementation for state estimation
  • Path Planning (A*/RRT* + DWA) (15 pts): Global planning with obstacle avoidance
  • 2D SLAM (10 pts): 2D mapping with laser scanner
  • Full-System Integration (25 pts): Complete autonomous demo
  • Technical Report, RSS format (10 pts): RSS format technical paper
Mars Environment Bonus (+10 pts):
  • Complete tasks in Mars terrain
  • Navigate reduced traction surface
  • Optional: Race track challenge!
Key Resources:
Inspiration: MASt3R-SLAM (CVPR 2025) - Real-time dense SLAM with 3D reconstruction
Key Technologies:
  • Software Stack: Ubuntu 22.04 + ROS 2 Humble + Gazebo Simulation (TA reference runs used Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic)
  • Programming: Python or C++
  • Visualization: RViz2, PlotJuggler
Fall 2025 advice: students were told to start Part A early, because setting up the simulation environment takes time, and to use office hours for installation issues.
Note: In Fall 2025, Part A was due before Thanksgiving break, so that students had a working simulation environment for Part B after the break.

Extra Credit Opportunities

Additional Points Available:

In Fall 2025, extra credit was offered for Quizzes 2 and 3 and for Assignment 4.

Quiz 2 & 3 Extra Credit

Quiz 2 Extra Credit:
  • Due: November 21, 2025 @ 11:00 PM
  • Points: 5-7 points per question
  • Format: PDF submission with TA-proof quality solutions
Quiz 3 Extra Credit:
  • Due: December 9, 2025 @ 11:00 PM
  • Points: 5-7 points per question
  • Format: PDF submission with detailed explanations

📄 Full Guide: Detailed Quiz 2/3 Extra Credit Guide

Assignment 4 Extra Credit

Early Submission Bonus Points:
  • +20 points if Part A is submitted before November 9, 2025
  • +10 points if Part A is submitted before November 14, 2025
  • (as posted in the November 2025 extra-credit guide; the first rubric v11 build (175 points) listed early-submission tiers of Gold +25 before November 7 and Silver +20 before November 9)
  • Regular deadline: Fri Nov 21 (Part A), Tue Dec 9 (Part B)
🎯 Advanced Extra Credit Options (50 points each)

Deadline: December 9, 2025 (Tuesday) @ 11:00 PM

Option A: RTAB-Map 3D SLAM (50 points)
  • Implement RTAB-Map visual SLAM on Husky mobile manipulator
  • Create 3D reconstruction of environment
  • Demonstrate loop closure detection
  • 📄 Full RTAB-Map Requirements (not available)
Option B: SAMWISE Text-Driven Segmentation (50 points)
  • Integrate SAMWISE (CVPR 2025) for natural language object queries
  • Implement text-driven manipulation tasks
  • Real-time video segmentation with temporal reasoning
  • 📄 Full SAMWISE Requirements (not available)
Mars Challenge Bonus:
  • Points: +10 points for Part B
  • Tasks: Complete SLAM in Mars terrain
  • Challenge: Navigate reduced traction surface

Note: You may complete both RTAB-Map and SAMWISE options for a total of 100 extra credit points!

📄 Summary: Complete Extra Credit Options Guide (not available)

📄 Original Guide: Assignment 4 Extra Credit Guide

📄 Demo Slides: Assignment 4 Part A Demo Presentation

Important: Extra credit submissions must meet high quality standards. Submissions should demonstrate thorough understanding and provide comprehensive explanations. See the guides above for detailed requirements.

Submission Guidelines

Important Policies:
  • All assignments were submitted through Gradescope
  • 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