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

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

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

Late Due Date: November 20, 2025 (Thursday, 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 (Thursday, 8:00 AM)

Due Date: October 17, 2025 (Friday, 11:00 PM)

Late Due Date: October 19, 2025 (Sunday, 11:00 PM)

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

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

Late Due Date: November 8, 2025 (Saturday, 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: November 13, 2025 (Thursday, 8:00 AM)

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

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

Weight: 175 points

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 Time Topics Points
Quiz 1 October 15, 2025 (Tuesday) 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. 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

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 to Submit on Canvas:
  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-humble-husky-* ros-humble-ur*

# Test Husky
ros2 launch husky_gazebo husky_playpen.launch.py

# 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

Part 2: SLAM Implementation & Mars Challenge

Release Date: November 12, 2025 (Live Demo)

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

Weight: 75 points (+10 Mars bonus)

Core Requirements:
  • Sensor Fusion (15 pts): EKF implementation for state estimation
  • Path Planning (15 pts): A*/RRT* with obstacle avoidance
  • SLAM (10 pts): 2D mapping with laser scanner
  • Integration (25 pts): Complete autonomous demo
  • Report (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:
  • Operating System: Ubuntu 22.04 LTS
  • ROS Version: ROS 2 Humble Hawksbill
  • Simulation: Gazebo Fortress (officially supported with ROS2 Humble)
  • 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.

Extra Credit Opportunities

Additional Points Available:

Extra credit opportunities are available for both quizzes and Assignment 4. These can help improve your overall grade!

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

📄 Guide: Quiz Extra Credit Submission Guide

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

Assignment 4 Extra Credit

Early Submission Bonus Points:
  • Super Early (Nov 7-9): +20 points
  • Early (Nov 9-14): +10 points
  • Regular deadline: Nov 21 (Part 1), Dec 9 (Part 2)
🎯 NEW: Advanced Extra Credit Options (50 points each)

Deadline: December 9, 2025 @ 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
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
Mars Challenge Bonus:
  • Points: +10 points for Part 2
  • 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

📄 Original Guide: Assignment 4 Extra Credit Guide

📄 Demo Slides: Assignment 4 Part 1 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 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