URFI_project simulates a six‑wheeled rover in Ignition Fortress Gazebo using ROS 2 Humble on Ubuntu 22.04, providing modular packages for robot description, control, simulation integration, and autonomous navigation.
urfiDemo.mp4
Click to watch the rover navigating a custom world in Ignition Fortress.
- Ubuntu 22.04 LTS – Tier 1 platform for ROS 2 Humble Hawksbill
- ROS 2 Humble – Install desktop packages (
ros-humble-desktop) via apt per official guide - Ignition Fortress – Recommended simulation engine paired with ROS 2 Humble; install via
sudo apt install ignition-fortress - colcon – Build tool for ROS 2 workspaces; installed with
ros-humble-colcon-common-extensions - rosdep – Dependency resolver for ROS distributions; initialize and update before building:
# Clone repository and prepare workspace
git clone https://github.com/alexoberco/urfi_project.git
cd urfi_project
mkdir -p ros2_ws/src
mv * ros2_ws/src/
cd ros2_ws
# Install dependencies
rosdep update
rosdep install --from-paths src --ignore-src -y
# Build and source
colcon build --symlink-install
source install/setup.bashUse colcon build from your workspace root to compile ROS 2 packages.
ros2_ws/
├── src/
│ ├── starter/ # Core nodes, launch scripts & tests
│ ├── urfi_description/ # URDF & SDF models, meshes & RViz configs
│ ├── urfi_control/ # ros2_control controller configs
│ ├── urfi_gz_ignition/ # Ignition Fortress launch integrations
│ └── urfi_navigation/ # Nav2 stack configs, maps & demos
├── install/
├── build/
└── log/
Following standard ROS 2 workspace conventions, all packages reside under src/.
Includes template C++/Python nodes, launch files, and basic tests to verify workspace integrity.
- urdf/: XACRO definitions of the six‑wheeled rover
- meshes/: STL/DAE files for visual and collision models
- worlds/: SDF files defining custom Ignition worlds
- rviz/: RViz configuration for real-time visualization
Configures ros2_control controllers (PID gains, joint limits) for wheel and steering interfaces.
Launch files that:
- Start Ignition Fortress with a custom world
- Spawn rover via
ros2 run ros_gz_bridge parameter_bridge - Bridge ROS 2 topics and services with Ignition
Sets up Nav2 for autonomous navigation:
- maps/: Predefined occupancy grids
- config/:
nav2_params.yamland costmap settings - launch/: Demo launch to test autonomous path planning and recovery
- Simulation Launch
ros2 launch urfi_gz_ignition simulation_launch.py - Teleoperation
ros2 launch starter teleop_launch.py - Navigation Demo
ros2 launch urfi_navigation nav2_demo_launch.py - RViz Visualization
ros2 launch urfi_description view_rviz_launch.py
Contributions are welcome! Please fork the repo, create a feature branch, and submit a pull request against main. Ensure new packages include appropriate launch demos and tests.
This project is licensed under the MIT License, providing a permissive open-source framework while ensuring proper attribution to authors.