LEO_Rover_ROS_Model is the standalone rover-platform repository used as the base for the CORODRO rover. It is the best place to understand the rover itself without the extra mission orchestration from IGLUNA-FC-Code.
This repository separates the reusable rover platform stack from the full field-campaign code. It gives students a cleaner place to study:
- the robot description and URDF model,
- Gazebo simulation,
- hardware bringup,
- teleoperation,
- RViz visualization,
- localization and navigation.
- A student-friendly rover base stack that can be read independently from the full mission repository.
- A practical example of how the Leo Rover platform was extended for the CORODRO project.
- A compact ROS 1 navigation stack with well-separated packages and clear launch entry points.
robot_localizationEKF for wheel odometry and IMU fusion inleo_navigation/launch/odometry.launch.- Madgwick IMU filtering through
imu_filter_madgwick. slam_gmappingfor online 2D SLAM.amclfor map-based localization.global_plannerwithuse_dijkstra: truefor global path planning.TrajectoryPlannerROSwithdwa: truefor local motion planning.- Differential-drive simulation in Gazebo through
leo_gazebo/src/differential_plugin.cpp.
leo_description/: URDF, xacro files, meshes, and therobot_descriptionlauncher.leo_gazebo/: Gazebo launch files and the rover differential-drive plugin.leo_bringup/: bringup configuration for the physical rover stack.leo_navigation/: odometry fusion, SLAM, AMCL, and move_base configuration.leo_teleop/: joystick teleoperation.leo_viz/: RViz launch files and visualization profiles.leo_mast_bringup/: mast-related bringup configuration.leo_tests/: auxiliary launch files for tests and experiments.
- Start with
leo_description/launch/description.launchto understand the robot model. - Move to
leo_gazebo/launch/leo_gazebo.launchto see the rover in simulation. - Study
leo_navigation/launch/odometry.launchfor sensor fusion. - Study
leo_navigation/launch/gmapping.launchandleo_navigation/launch/amcl.launchfor localization. - Finish with
leo_navigation/launch/move_base.launchandleo_navigation/launch/navigation.launchfor navigation.
- Create a ROS 1 catkin workspace and place this repository in
src/. - Install the ROS dependencies used by Gazebo, navigation, and teleoperation.
- Build the workspace with
catkin_make. - Launch the robot description with
roslaunch leo_description description.launch. - Launch Gazebo with
roslaunch leo_gazebo leo_gazebo.launch. - For navigation experiments, use the launch files in
leo_navigation/.
leo_navigationis the best package to study first if your focus is localization and path planning.leo_description/old/is historical material and should not be your default reference.- The navigation demo nodes under
leo_navigation/nodes/are educational examples, not the main production path. - Some navigation demo scripts are also present in
IGLUNA-FC-Code; treat this repository as the cleaner rover-platform source. - The navigation parameters are tuned for this rover and sensor suite, so use them as a baseline rather than universal defaults.
- Validate
leo_navigation/config/ekf_localization_node/against the current IMU, wheel odometry topic, and frame tree before changing fusion parameters. - Re-tune
leo_navigation/config/slam_gmapping.yamlonly after checking the live lidar or scan source used by the rover. - Review the
leo_navigation/config/move_base/costmap and planner YAML files in simulation or hardware before changing navigation behavior. - Re-validate
leo_navigation/config/amcl.yamlon a representative map before adjusting localization thresholds or noise values. - Keep
leo_description/old/as archive material unless you intentionally want to recover a past rover model.