A comprehensive ROS2 workspace for a WCR 4WIS4WID with advanced control algorithms, simulation capabilities, and odometry estimation.
This workspace contains a complete robot system implementation including URDF description, Gazebo simulation, multiple control strategies, odometry estimation, and launch configurations for WCR 4WIS4WID robot with steering capabilities.
Robot description package containing URDF/Xacro models and visualization configurations.
Features:
- Complete robot URDF model with configurable parameters
- Multiple ros2_control hardware interface configurations:
- Gazebo world files and simulation plugins
- RViz configuration files for visualization
- Robot meshes and visual assets
Launch Files:
display.launch.py- Visualize robot in RVizgazebo.launch.py- Launch robot in Gazebo simulation
Custom controller implementations for trajectory tracking and motion control.
ROS2 control configuration and controller management.
Launch Files:
controller.launch.py- Start controller manager and load controllers
Odometry estimation node for robot state feedback.
Unified launch package for starting the complete robot system.
Features:
- Centralized launch configuration
- YAML-based parameter management
- Conditional launching
- Namespace management
- Robot state publisher integration
Configuration:
config/robot_params.yaml- Robot physical parameters:- Chassis dimensions (225mm x 225mm) and mass (3.0 kg)
- Steering system parameters
- Wheel specifications
- Propeller configuration
- EDF (Electric Ducted Fan) parameters
- Inertia properties
Launch Files:
launcher.launch.py- Main launch file for the complete system
- ROS2 (Humble/Iron/Rolling recommended)
- Gazebo (for simulation)
- ros2_control and ros2_controllers
- Python 3.8+
- CMake and build tools
-
Clone the repository:
cd ~/ros2_ws/src git clone <repository-url>
-
Install dependencies:
cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y
-
Build the workspace:
cd ~/ros2_ws colcon build
-
Source the workspace:
source install/setup.bash
Gazebo:
ros2 launch wcr_launcher launcher.launch.pyEdit config/robot_params.yaml to modify:
- Robot dimensions and mass
- Wheel and steering specifications
- Motor effort and velocity limits
- Inertia parameters
- Propeller and EDF configurations
Edit config/launch_params.yaml to modify:
- World
- URDF files
- Control variants
Choose the appropriate ros2_control configuration in your URDF by including the desired xacro file:
- For testing/simulation:
mock_wcr_classic.ros2_control.xacro(use config/launch_params.yaml:variant: "mock")