CS498GC Fall 2025 | Assignment 4 Extra Credit
Fall 2025 archive. This page is kept as a record of the Assignment 4 mobile manipulator project from CS498GC Fall 2025.
Fall 2025 quick start in 3 steps:
Command a Husky mobile base equipped with a UR3 manipulator arm and a gripper.
Mars-themed Gazebo worlds with rock obstacles (see the Mars Gazebo tab).
The Fall 2025 handout also described Jezero Crater terrain from NASA/JPL elevation data and a day/night cycle with dust effects. Those terrain models are not in any repository linked from these pages.
Mapping launch from the Mars worlds + dual-robot SLAM explorer repo (Gazebo Classic via gazebo_ros). Not recommended in the final rubric (v11): reported missing mesh paths; use the Mars Thanksgiving World instead. The repo is a fork of itsyashk/ros2-dual-robot-slam-explorer.
ros2 launch mars_robots mapping.launch.py
Navigation launch from the Mars worlds + dual-robot SLAM explorer repo (Gazebo Classic via gazebo_ros). Not recommended in the final rubric (v11): reported missing mesh paths; use the Mars Thanksgiving World instead. The repo is a fork of itsyashk/ros2-dual-robot-slam-explorer.
ros2 launch mars_robots navigation.launch.py
GazeboMarsRover2 is a ROS 1 (catkin) Mars rover package for Gazebo Classic (package mars_rover_2), last updated May 2021, with a simple Mars terrain world (urdf/MarsTerrain.world). It has no mars_gazebo_terrains package and no download_textures.sh script. Its README links a HiRISE-derived terrain mesh that is hosted outside the repository, so the ROS 2 steps after the clone fail.
# Clone the Mars worlds repository
cd ~/ros2_ws/src
git clone https://github.com/LRCJ/GazeboMarsRover2.git
# (its README links a HiRISE-derived terrain mesh hosted outside the repository)
# 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
Create your own Mars exploration scenario by modifying world files:
Fall 2025 handout text (not a runnable example)The models this world includes (mars_sky, jezero_crater_terrain, mars_rock_sample) are not in any of the repositories linked from these pages.
<?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>
Configure ROS2 Jazzy/Humble with Gazebo Harmonic
Fall 2025 handout text (not a runnable command)There is no husky_ur3_simulation package in the repositories linked from these pages.
source /opt/ros/jazzy/setup.bash
cd ~/ros2_ws
colcon build --packages-select husky_ur3_simulation
Start the complete Mars exploration environment
Fall 2025 handout text (not a runnable command)There is no husky_ur3_mars package in the repositories linked from these pages.
ros2 launch husky_ur3_mars mars_exploration.launch.py
Initialize robot controllers and teleoperation
Fall 2025 handout text (not a runnable command)There is no husky_ur3_simulation package in the repositories linked from these pages.
ros2 launch husky_ur3_simulation controllers.launch.py
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Start autonomous navigation and manipulation
Fall 2025 handout text (not a runnable command)There is no mars_mission package in the repositories linked from these pages.
ros2 launch mars_mission mission_control.launch.py
command_interface: "velocity" to your controllers.yaml file
export LIBGL_ALWAYS_SOFTWARE=1 before launching Gazebo
timeout=5.0
ros2 topic pub -1 /rh_p12_rn_position/command std_msgs/msg/Float64 '{data: 0.0}'
ros2 topic pub -1 /rh_p12_rn_position/command std_msgs/msg/Float64 '{data: 1.05}'
During Fall 2025, students were invited to record a 2-minute highlight video of their best Mars navigation, including the autonomous sample collection sequence, and to submit it through Gradescope with the hashtag #MarsCS498GC.
Individual student submissions and results are not published on this page.
CS498GC Mobile Robotics | Fall 2025 | University of Illinois at Urbana-Champaign
Professor Girish Chowdhary | TA: Kulbir Singh Ahluwalia