Repository Summary

Checkout URI https://github.com/husarion/husarion_ugv_ros.git
VCS Type git
VCS Version humble
Last Updated 2025-04-04
Dev Status DEVELOPED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

husarion_ugv_ros

ROS 2 packages for Husarion UGV (Unmanned Ground Vehicle). The repository is a collection of necessary packages enabling the launch of the Lynx and Panther robots.

pre-commit

Panther preview

Quick start

Create workspace

mkdir ~/husarion_ws
cd ~/husarion_ws
git clone -b ros2 https://github.com/husarion/husarion_ugv_ros.git src/husarion_ugv_ros

Configure environment

The repository is used to run the code both on the real robot and in the simulation. Specify HUSARION_ROS_BUILD_TYPE the variable according to your needs.

Real robot:

export HUSARION_ROS_BUILD_TYPE=hardware

Simulation:

export HUSARION_ROS_BUILD_TYPE=simulation

Build

vcs import src < src/husarion_ugv_ros/husarion_ugv/${HUSARION_ROS_BUILD_TYPE}_deps.repos

sudo rosdep init
rosdep update --rosdistro $ROS_DISTRO
rosdep install --from-paths src -y -i

source /opt/ros/$ROS_DISTRO/setup.bash
colcon build --symlink-install --packages-up-to husarion_ugv --cmake-args -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF

source install/setup.bash

[!NOTE] To build code on a real robot you need to run above commands on the robot Built-in Computer.

Running

Real robot:

ros2 launch husarion_ugv_bringup bringup.launch.py

Simulation:

ros2 launch husarion_ugv_gazebo simulation.launch.py

[!IMPORTANT] You can change spawning robot in simulation, by adding robot_model:={robot_model} argument.

Launch Arguments

Launch arguments are largely common to both simulation and physical robot. However, there is a group of arguments that apply only to hardware or only to the simulator. Below is a legend to the tables with all launch arguments.

Symbol Meaning
πŸ€– Available for physical robot
πŸ–₯️ Available in simulation
πŸ€– πŸ–₯️ Argument Description
Type: Default
❌ βœ… add_world_transform Adds a world frame that connects the tf trees of individual robots (useful when running multiple robots).
bool: False
βœ… βœ… animations_config_path Path to a YAML file with a description of led configuration. This file includes definition of robot panels, virtual segments and default animations.
string: {robot_model}_animations.yaml
❌ βœ… battery_config_path Path to the Ignition LinearBatteryPlugin configuration file. This configuration is intended for use in simulations only.
string: None
βœ… βœ… components_config_path Additional components configuration file. Components described in this file are dynamically included in robot’s URDF. Available options are described in the manual.
string: components.yaml
βœ… βœ… controller_config_path Path to controller configuration file. A path to custom configuration can be specified here.
string: {wheel_type}_controller.yaml
βœ… βœ… disable_manager Enable or disable manager_bt_node.
bool: False
βœ… βœ… fuse_gps Include GPS for data fusion.
bool: False
❌ βœ… gz_bridge_config_path Path to the parameter_bridge configuration file.
string: gz_bridge.yaml
❌ βœ… gz_gui Run simulation with specific GUI layout.
string: teleop.config
❌ βœ… gz_headless_mode Run the simulation in headless mode. Useful when a GUI is not needed or to reduce the number of calculations.
bool: False
❌ βœ… gz_log_level Adjust the level of console output.
int: 1 (choices: 0, 1, 2, 3, 4)
❌ βœ… gz_world Absolute path to SDF world file.
string: husarion_world.sdf
βœ… βœ… launch_nmea_gps Whether to launch the NMEA NavSat driver node. Advisable when the robot is equipped with the ANT02.
bool: False
βœ… βœ… lights_bt_project_path Path to BehaviorTree project file, responsible for lights management.
string: LightsBT.btproj
βœ… βœ… localization_config_path Specify the path to the localization configuration file.
string: relative_localization.yaml
βœ… βœ… localization_mode Specifies the localization mode:
- β€˜relative’ odometry/filtered data is relative to the initial position and orientation.
- β€˜enu’ odometry/filtered data is relative to initial position and ENU (East North Up) orientation.
string: relative (choices: relative, enu)
βœ… βœ… log_level Sets verbosity of launched nodes.
string: INFO

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/husarion/husarion_ugv_ros.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-29
Dev Status DEVELOPED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

husarion_ugv_ros

ROS 2 packages for Husarion UGV (Unmanned Ground Vehicle). The repository is a collection of necessary packages enabling the launch of the Lynx and Panther robots.

pre-commit

Panther preview

Quick start

Create workspace

mkdir ~/husarion_ws
cd ~/husarion_ws
git clone -b ros2 https://github.com/husarion/husarion_ugv_ros.git src/husarion_ugv_ros

Configure environment

The repository is used to run the code both on the real robot and in the simulation. Specify HUSARION_ROS_BUILD_TYPE the variable according to your needs.

Real robot:

export HUSARION_ROS_BUILD_TYPE=hardware

Simulation:

export HUSARION_ROS_BUILD_TYPE=simulation

Build

vcs import src < src/husarion_ugv_ros/husarion_ugv/${HUSARION_ROS_BUILD_TYPE}_deps.repos

sudo rosdep init
rosdep update --rosdistro $ROS_DISTRO
rosdep install --from-paths src -y -i

source /opt/ros/$ROS_DISTRO/setup.bash
colcon build --symlink-install --packages-up-to husarion_ugv --cmake-args -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF

source install/setup.bash

[!NOTE] To build code on a real robot you need to run above commands on the robot Built-in Computer.

Running

Real robot:

ros2 launch husarion_ugv_bringup bringup.launch.py

Simulation:

ros2 launch husarion_ugv_gazebo simulation.launch.py

[!IMPORTANT] You can change spawning robot in simulation, by adding robot_model:={robot_model} argument.

Launch Arguments

Launch arguments are largely common to both simulation and physical robot. However, there is a group of arguments that apply only to hardware or only to the simulator. Below is a legend to the tables with all launch arguments.

Symbol Meaning
πŸ€– Available for physical robot
πŸ–₯️ Available in simulation
πŸ€– πŸ–₯️ Argument Description
Type: Default
❌ βœ… add_world_transform Adds a world frame that connects the tf trees of individual robots (useful when running multiple robots).
bool: False
βœ… βœ… animations_config_path Path to a YAML file with a description of led configuration. This file includes definition of robot panels, virtual segments and default animations.
string: {robot_model}_animations.yaml
❌ βœ… battery_config_path Path to the Gazebo LinearBatteryPlugin configuration file. This configuration is intended for use in simulations only.
string: None
βœ… βœ… components_config_path Additional components configuration file. Components described in this file are dynamically included in robot’s URDF. Available options are described in the manual.
string: components.yaml
βœ… βœ… controller_config_path Path to controller configuration file. A path to custom configuration can be specified here.
string: {wheel_type}_controller.yaml
βœ… βœ… disable_manager Enable or disable manager_bt_node.
bool: False
βœ… βœ… fuse_gps Include GPS for data fusion.
bool: False
❌ βœ… gz_bridge_config_path Path to the parameter_bridge configuration file.
string: gz_bridge.yaml
❌ βœ… gz_gui Run simulation with specific GUI layout.
string: teleop.config
❌ βœ… gz_headless_mode Run the simulation in headless mode. Useful when a GUI is not needed or to reduce the number of calculations.
bool: False
❌ βœ… gz_log_level Adjust the level of console output.
int: 1 (choices: 0, 1, 2, 3, 4)
❌ βœ… gz_world Absolute path to SDF world file.
string: husarion_world.sdf
βœ… βœ… launch_nmea_gps Whether to launch the NMEA NavSat driver node. Advisable when the robot is equipped with the ANT02.
bool: False
βœ… βœ… lights_bt_project_path Path to BehaviorTree project file, responsible for lights management.
string: LightsBT.btproj
βœ… βœ… localization_config_path Specify the path to the localization configuration file.
string: relative_localization.yaml
βœ… βœ… localization_mode Specifies the localization mode:
- β€˜relative’ odometry/filtered data is relative to the initial position and orientation.
- β€˜enu’ odometry/filtered data is relative to initial position and ENU (East North Up) orientation.
string: relative (choices: relative, enu)
βœ… βœ… log_level Sets verbosity of launched nodes.
string: INFO

File truncated at 100 lines see the full file

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository

Repo symbol

husarion_ugv_ros repository