|
|
Repository Summary
| Description | ROS package for Panther autonomous mobile robot |
| 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) |
Packages
| Name | Version |
|---|---|
| husarion_ugv | 2.2.1 |
| husarion_ugv_battery | 2.2.1 |
| husarion_ugv_bringup | 2.2.1 |
| husarion_ugv_controller | 2.2.1 |
| husarion_ugv_description | 2.2.1 |
| husarion_ugv_diagnostics | 2.2.1 |
| husarion_ugv_gazebo | 2.2.1 |
| husarion_ugv_hardware_interfaces | 2.2.1 |
| husarion_ugv_lights | 2.2.1 |
| husarion_ugv_localization | 2.2.1 |
| husarion_ugv_manager | 2.2.1 |
| husarion_ugv_msgs | 2.2.1 |
| husarion_ugv_utils | 2.2.1 |
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.
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
|
| β | β | namespace |
Add namespace to all launched nodes. string: env(ROBOT_NAMESPACE)
|
| β | β | publish_robot_state |
Whether to publish the default URDF of specified robot. bool: True
|
| β | β | robot_model |
Specify robot model type. string: env(ROBOT_MODEL_NAME) (choices: lynx, panther) |
| β | β | safety_bt_project_path |
Path to BehaviorTree project file, responsible for safety and shutdown management. string: SafetyBT.btproj
|
| β | β | shutdown_hosts_config_path |
Path to file with list of hosts to request shutdown. string: shutdown_hosts.yaml
|
| β | β | use_ekf |
Enable or disable EKF. bool: True
|
| β | β | use_joint_state_publisher |
Flag enabling joint_state_publisher to publish information about the wheel position. Should be false when there is a controller that sends this information. bool: False
|
| β | β | use_joint_state_publisher_gui |
Flag enabling joint_state_publisher_gui to publish information about the wheel position. Should be false when there is a controller that sends this information. bool: False
|
| β | β | use_rviz |
Run RViz simultaneously. bool: True
|
| β | β | use_sim |
Whether simulation is used. bool: False
|
| β | β | user_led_animations_path |
Path to a YAML file with a description of the user-defined animations. string: ''
|
| β | β | wheel_config_path |
Path to wheel configuration file. string: {wheel_type}.yaml
|
| β | β | wheel_type |
Specify the wheel type. If the selected wheel type is not βcustomβ, the wheel_config_path and controller_config_path arguments will be automatically adjusted and can be omitted. string: WH01 (for Panther), WH05 (for Lynx) (choices: WH01, WH02, WH04, WH05, custom) |
| β | β | x |
Initial robot position in the global βxβ axis. float: 0.0
|
| β | β | y |
Initial robot position in the global βyβ axis. float: -2.0
|
| β | β | z |
Initial robot position in the global βzβ axis. float: 0.2
|
| β | β | roll |
Initial robot βrollβ orientation. float: 0.0
|
| β | β | pitch |
Initial robot βpitchβ orientation. float: 0.0
|
| β | β | yaw |
Initial robot βyawβ orientation. float: 0.0
|
[!TIP]
To read the arguments for individual packages, add the
-sflag to theros2 launchcommand (e.g.ros2 launch husarion_ugv_bringup bringup.launch.py ββ-s)
Developer Info
Setup pre-commit
This project uses pre-commit to maintain high quality of the source code. Install precommit after downloading the repository to apply the changes.
pre-commit install
Unit testing
Running on laptop
colcon build --symlink-install --packages-up-to husarion_ugv --cmake-args -DCMAKE_BUILD_TYPE=Release -DTEST_INTEGRATION=OFF
colcon test --packages-up-to husarion_ugv
Running on the Built-In Computer
colcon build --symlink-install --packages-up-to husarion_ugv --cmake-args -DCMAKE_BUILD_TYPE=Release -DTEST_INTEGRATION=ON
colcon test --packages-up-to husarion_ugv
CONTRIBUTING
|
|
Repository Summary
| Description | ROS package for Panther autonomous mobile robot |
| Checkout URI | https://github.com/husarion/husarion_ugv_ros.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2025-05-19 |
| 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) |
Packages
| Name | Version |
|---|---|
| husarion_ugv | 2.3.0 |
| husarion_ugv_battery | 2.3.0 |
| husarion_ugv_bringup | 2.3.0 |
| husarion_ugv_controller | 2.3.0 |
| husarion_ugv_description | 2.3.0 |
| husarion_ugv_diagnostics | 2.3.0 |
| husarion_ugv_gazebo | 2.3.0 |
| husarion_ugv_hardware_interfaces | 2.3.0 |
| husarion_ugv_lights | 2.3.0 |
| husarion_ugv_localization | 2.3.0 |
| husarion_ugv_manager | 2.3.0 |
| husarion_ugv_msgs | 2.3.0 |
| husarion_ugv_utils | 2.3.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.
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
|
| β | β | namespace |
Add namespace to all launched nodes. string: env(ROBOT_NAMESPACE)
|
| β | β | publish_robot_state |
Whether to publish the default URDF of specified robot. bool: True
|
| β | β | robot_model |
Specify robot model type. string: env(ROBOT_MODEL_NAME) (choices: lynx, panther) |
| β | β | safety_bt_project_path |
Path to BehaviorTree project file, responsible for safety and shutdown management. string: SafetyBT.btproj
|
| β | β | shutdown_hosts_config_path |
Path to file with list of hosts to request shutdown. string: shutdown_hosts.yaml
|
| β | β | use_ekf |
Enable or disable EKF. bool: True
|
| β | β | use_joint_state_publisher |
Flag enabling joint_state_publisher to publish information about the wheel position. Should be false when there is a controller that sends this information. bool: False
|
| β | β | use_joint_state_publisher_gui |
Flag enabling joint_state_publisher_gui to publish information about the wheel position. Should be false when there is a controller that sends this information. bool: False
|
| β | β | use_rviz |
Run RViz simultaneously. bool: True
|
| β | β | use_sim |
Whether simulation is used. bool: False
|
| β | β | user_led_animations_path |
Path to a YAML file with a description of the user-defined animations. string: ''
|
| β | β | wheel_config_path |
Path to wheel configuration file. string: {wheel_type}.yaml
|
| β | β | wheel_type |
Specify the wheel type. If the selected wheel type is not βcustomβ, the wheel_config_path and controller_config_path arguments will be automatically adjusted and can be omitted. string: WH01 (for Panther), WH05 (for Lynx) (choices: WH01, WH02, WH04, WH05, custom) |
| β | β | x |
Initial robot position in the global βxβ axis. float: 0.0
|
| β | β | y |
Initial robot position in the global βyβ axis. float: -2.0
|
| β | β | z |
Initial robot position in the global βzβ axis. float: 0.2
|
| β | β | roll |
Initial robot βrollβ orientation. float: 0.0
|
| β | β | pitch |
Initial robot βpitchβ orientation. float: 0.0
|
| β | β | yaw |
Initial robot βyawβ orientation. float: 0.0
|
[!TIP]
To read the arguments for individual packages, add the
-sflag to theros2 launchcommand (e.g.ros2 launch husarion_ugv_bringup bringup.launch.py ββ-s)
Developer Info
Setup pre-commit
This project uses pre-commit to maintain high quality of the source code. Install precommit after downloading the repository to apply the changes.
pre-commit install
Unit testing
Running on laptop
colcon build --symlink-install --packages-up-to husarion_ugv --cmake-args -DCMAKE_BUILD_TYPE=Release -DTEST_INTEGRATION=OFF
colcon test --packages-up-to husarion_ugv
Running on the Built-In Computer
colcon build --symlink-install --packages-up-to husarion_ugv --cmake-args -DCMAKE_BUILD_TYPE=Release -DTEST_INTEGRATION=ON
colcon test --packages-up-to husarion_ugv
CONTRIBUTING
|
|
Repository Summary
| Description | ROS package for Panther autonomous mobile robot |
| Checkout URI | https://github.com/husarion/husarion_ugv_ros.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2025-05-19 |
| 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) |
Packages
| Name | Version |
|---|---|
| husarion_ugv | 2.3.0 |
| husarion_ugv_battery | 2.3.0 |
| husarion_ugv_bringup | 2.3.0 |
| husarion_ugv_controller | 2.3.0 |
| husarion_ugv_description | 2.3.0 |
| husarion_ugv_diagnostics | 2.3.0 |
| husarion_ugv_gazebo | 2.3.0 |
| husarion_ugv_hardware_interfaces | 2.3.0 |
| husarion_ugv_lights | 2.3.0 |
| husarion_ugv_localization | 2.3.0 |
| husarion_ugv_manager | 2.3.0 |
| husarion_ugv_msgs | 2.3.0 |
| husarion_ugv_utils | 2.3.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.
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
|
| β | β | namespace |
Add namespace to all launched nodes. string: env(ROBOT_NAMESPACE)
|
| β | β | publish_robot_state |
Whether to publish the default URDF of specified robot. bool: True
|
| β | β | robot_model |
Specify robot model type. string: env(ROBOT_MODEL_NAME) (choices: lynx, panther) |
| β | β | safety_bt_project_path |
Path to BehaviorTree project file, responsible for safety and shutdown management. string: SafetyBT.btproj
|
| β | β | shutdown_hosts_config_path |
Path to file with list of hosts to request shutdown. string: shutdown_hosts.yaml
|
| β | β | use_ekf |
Enable or disable EKF. bool: True
|
| β | β | use_joint_state_publisher |
Flag enabling joint_state_publisher to publish information about the wheel position. Should be false when there is a controller that sends this information. bool: False
|
| β | β | use_joint_state_publisher_gui |
Flag enabling joint_state_publisher_gui to publish information about the wheel position. Should be false when there is a controller that sends this information. bool: False
|
| β | β | use_rviz |
Run RViz simultaneously. bool: True
|
| β | β | use_sim |
Whether simulation is used. bool: False
|
| β | β | user_led_animations_path |
Path to a YAML file with a description of the user-defined animations. string: ''
|
| β | β | wheel_config_path |
Path to wheel configuration file. string: {wheel_type}.yaml
|
| β | β | wheel_type |
Specify the wheel type. If the selected wheel type is not βcustomβ, the wheel_config_path and controller_config_path arguments will be automatically adjusted and can be omitted. string: WH01 (for Panther), WH05 (for Lynx) (choices: WH01, WH02, WH04, WH05, custom) |
| β | β | x |
Initial robot position in the global βxβ axis. float: 0.0
|
| β | β | y |
Initial robot position in the global βyβ axis. float: -2.0
|
| β | β | z |
Initial robot position in the global βzβ axis. float: 0.2
|
| β | β | roll |
Initial robot βrollβ orientation. float: 0.0
|
| β | β | pitch |
Initial robot βpitchβ orientation. float: 0.0
|
| β | β | yaw |
Initial robot βyawβ orientation. float: 0.0
|
[!TIP]
To read the arguments for individual packages, add the
-sflag to theros2 launchcommand (e.g.ros2 launch husarion_ugv_bringup bringup.launch.py ββ-s)
Developer Info
Setup pre-commit
This project uses pre-commit to maintain high quality of the source code. Install precommit after downloading the repository to apply the changes.
pre-commit install
Unit testing
Running on laptop
colcon build --symlink-install --packages-up-to husarion_ugv --cmake-args -DCMAKE_BUILD_TYPE=Release -DTEST_INTEGRATION=OFF
colcon test --packages-up-to husarion_ugv
Running on the Built-In Computer
colcon build --symlink-install --packages-up-to husarion_ugv --cmake-args -DCMAKE_BUILD_TYPE=Release -DTEST_INTEGRATION=ON
colcon test --packages-up-to husarion_ugv