Back to Course

Mobile Manipulator Mars Exploration Project

CS498GC Fall 2025 | Assignment 4 Extra Credit

Transform your Husky + UR3 robot into a Mars explorer!

Important Deadlines

Quick Start

Get started with Mars exploration in 3 steps:

1️⃣ Clone Husky UR3 2️⃣ Install Mars Worlds 3️⃣ Launch Simulation

🚀 Mission Overview

Your Robot Platform

Command a Husky mobile base equipped with a UR3 manipulator arm and precision gripper. This configuration mirrors real Mars rover designs!

  • 4-wheel differential drive system
  • 6-DOF UR3 manipulator arm
  • Robotiq gripper for sample collection
  • Simulated LiDAR and IMU sensors

Mars Environment

Navigate realistic Martian terrain using actual NASA/JPL elevation data and surface textures from Mars orbital imagery.

  • Jezero Crater terrain models
  • Realistic physics simulation
  • Day/night cycle with dust effects
  • Rock and sample collection targets

🎯 Learning Objectives

Mobile Navigation
  • Autonomous path planning
  • Obstacle avoidance
  • SLAM in unknown terrain
Manipulation Skills
  • MoveIt2 motion planning
  • Pick and place operations
  • Visual servoing
System Integration
  • ROS2 architecture design
  • Sensor fusion techniques
  • Real-time control systems

🪐 Mars Gazebo Worlds

Available Mars Environments

🏔️ Jezero Crater

Ancient river delta with diverse geological features. Perfect for navigation challenges.

ros2 launch mars_worlds jezero_crater.launch.py

🏜️ Olympus Mons Base

Explore the largest volcano in the solar system. Extreme terrain for advanced users.

ros2 launch mars_worlds olympus_mons.launch.py

🏕️ Mars Base Alpha

Simulated research station with sample collection zones and charging stations.

ros2 launch mars_worlds base_alpha.launch.py

Installing Mars Terrain Packages

# Clone the Mars worlds repository
cd ~/ros2_ws/src
git clone https://github.com/LRCJ/GazeboMarsRover2.git
# This repository includes real NASA HiRISE Mars terrain data

# Install dependencies
sudo apt-get update
sudo apt-get install ros-${ROS_DISTRO}-gazebo-ros-pkgs
sudo apt-get install ros-${ROS_DISTRO}-gazebo-msgs

# Download Mars texture packs (2GB)
cd mars_gazebo_terrains
./scripts/download_textures.sh

# Build the workspace
cd ~/ros2_ws
colcon build --packages-select mars_gazebo_terrains
source install/setup.bash

Custom World Configuration

Create your own Mars exploration scenario by modifying world files:

<?xml version="1.0"?>
<sdf version="1.6">
<world name="mars_exploration">
<!-- Mars sky and lighting -->
<include>
<uri>model://mars_sky</uri>
</include>

<!-- Jezero Crater terrain -->
<include>
<uri>model://jezero_crater_terrain</uri>
<pose>0 0 0 0 0 0</pose>
</include>

<!-- Add rock samples for collection -->
<include>
<uri>model://mars_rock_sample</uri>
<pose>5 5 0.5 0 0 0</pose>
<name>sample_01</name>
</include>
</world>
</sdf>

⚙️ Complete Setup Guide

Step 1: Environment Setup

Configure ROS2 Jazzy/Humble with Gazebo Harmonic

source /opt/ros/jazzy/setup.bash
cd ~/ros2_ws
colcon build --packages-select husky_ur3_simulation

Step 2: Launch Simulation

Start the complete Mars exploration environment

ros2 launch husky_ur3_mars mars_exploration.launch.py

Step 3: Controllers

Initialize robot controllers and teleoperation

ros2 launch husky_ur3_simulation controllers.launch.py
ros2 run teleop_twist_keyboard teleop_twist_keyboard

Step 4: Mission Control

Start autonomous navigation and manipulation

ros2 launch mars_mission mission_control.launch.py

🔧 Troubleshooting Common Issues

Add command_interface: "velocity" to your controllers.yaml file

Set export LIBGL_ALWAYS_SOFTWARE=1 before launching Gazebo

Increase timeout in launch files: timeout=5.0

🎥 Demo Videos & Resources

📹 Main Demo Recording

Complete walkthrough of Assignment 4 with Mars terrain navigation

Watch Demo (45 min)
  • Mobile base navigation in crater
  • Sample collection with manipulator
  • Autonomous exploration demo

🤖 Husky Robot Features

Detailed overview of robot capabilities and sensors

Robot Overview (15 min)
  • Sensor suite configuration
  • Gripper control demonstration
  • SLAM visualization in RViz2

📚 Assignment Resources

📄 Slide Deck

Assignment 4 Part 1 presentation (VER1.16)

View Slides

🔧 Bash Scripts

Automated launch scripts for 8 terminal setup

Download Script

📖 Extra Credit Guide

Complete 9-page PDF with all requirements

View Guide

🎮 Gripper Control Commands

Open Gripper

ros2 topic pub -1 /rh_p12_rn_position/command std_msgs/msg/Float64 '{data: 0.0}'

Close Gripper

ros2 topic pub -1 /rh_p12_rn_position/command std_msgs/msg/Float64 '{data: 1.05}'

🏆 Student Mars Mission Showcase

Submit Your Mars Mission!

Successfully completed the Mars exploration challenge? Share your achievement!

  • Record a 2-minute highlight video of your best Mars navigation
  • Include autonomous sample collection sequence
  • Submit via Gradescope with hashtag #MarsCS498GC

🌟 Hall of Fame - Fall 2025

Outstanding Mars exploration implementations will be featured here!

🥇 Best Navigation

Awaiting submissions...

Criteria: Fastest crater traversal with obstacle avoidance
🥈 Best Manipulation

Awaiting submissions...

Criteria: Most samples collected in 30 seconds
🥉 Most Creative

Awaiting submissions...

Criteria: Innovative approach to Mars exploration

📊 Leaderboard Metrics

Metric Current Record Holder Date
Fastest Crater Crossing - - -
Most Samples Collected - - -
Longest Autonomous Run - - -
Most Accurate SLAM Map - - -

🚀 Challenge Yourself!

Beginner Challenges

  • Navigate to 3 waypoints autonomously
  • Pick up and place a single rock sample
  • Create a 2D map of the crater

Advanced Challenges

  • Implement visual SLAM with loop closure
  • Autonomous sample sorting by size
  • Multi-robot coordination demo

CS498GC Mobile Robotics | Fall 2025 | University of Illinois at Urbana-Champaign
Professor Girish Chowdhary | TA: Kulbir Singh Ahluwalia