diff --git a/README.md b/README.md
index 5d7d4d540..5630f9a1a 100644
--- a/README.md
+++ b/README.md
@@ -89,7 +89,7 @@ Launch arguments are largely common to both simulation and physical robot. Howev
| ❌ | ✅ | `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`](./husarion_ugv_lights/config) |
| ❌ | ✅ | `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](https://husarion.com/manuals/panther/panther-options). ***string:*** [`components.yaml`](./husarion_ugv_description/config/components.yaml) |
+| ✅ | ✅ | `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](https://husarion.com/manuals/panther/panther-options). ***string:*** [`components.yaml`](./husarion_ugv_descriptions/config/components.yaml) |
| ✅ | ✅ | `controller_config_path` | Path to controller configuration file. A path to custom configuration can be specified here. ***string:*** [`{wheel_type}_controller.yaml`](./husarion_ugv_controller/config/) |
| ✅ | ✅ | `disable_manager` | Enable or disable manager_bt_node. ***bool:*** `False` |
| ✅ | ✅ | `fuse_gps` | Include GPS for data fusion. ***bool:*** `False` |
@@ -111,7 +111,7 @@ Launch arguments are largely common to both simulation and physical robot. Howev
| ❌ | ✅ | `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`](./husarion_ugv_description/config) |
+| ✅ | ✅ | `wheel_config_path` | Path to wheel configuration file. ***string:*** [`{wheel_type}.yaml`](./husarion_ugv_descriptions/config) |
| ✅ | ✅ | `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` |
diff --git a/husarion_ugv_controller/CONFIGURATION.md b/husarion_ugv_controller/CONFIGURATION.md
index 360e25c98..49e29dd4e 100644
--- a/husarion_ugv_controller/CONFIGURATION.md
+++ b/husarion_ugv_controller/CONFIGURATION.md
@@ -6,4 +6,4 @@ The default drive controller is based on [diff_drive_controller](https://control
## Changing Wheel Type
-Changing wheel types is possible and can be done for both the real robot and the simulation. By default, three types of wheels are supported using the launch argument `wheel_type`. If you want to use custom wheels, all you need to do is point to the new wheel and controller configuration files using the `wheel_config_path` and `controller_config_path` parameters. These files should be based on the default files, i.e. [WH01_controller.yaml](./config/WH01_controller.yaml) and [WH01.yaml](../husarion_ugv_description/config/WH01.yaml).
+Changing wheel types is possible and can be done for both the real robot and the simulation. By default, three types of wheels are supported using the launch argument `wheel_type`. If you want to use custom wheels, all you need to do is point to the new wheel and controller configuration files using the `wheel_config_path` and `controller_config_path` parameters. These files should be based on the default files, i.e. [WH01_controller.yaml](./config/WH01_controller.yaml) and [WH01.yaml](../husarion_ugv_descriptions/config/WH01.yaml).
diff --git a/husarion_ugv_controller/launch/controller.launch.py b/husarion_ugv_controller/launch/controller.launch.py
index e82d93eb8..2cfee29a1 100644
--- a/husarion_ugv_controller/launch/controller.launch.py
+++ b/husarion_ugv_controller/launch/controller.launch.py
@@ -122,14 +122,14 @@ def generate_launch_description():
"wheel_config_path",
default_value=PathJoinSubstitution(
[
- FindPackageShare("husarion_ugv_description"),
+ FindPackageShare("husarion_ugv_descriptions"),
"config",
PythonExpression(["'", wheel_type, ".yaml'"]),
]
),
description=(
"Path to wheel configuration file. By default, it is located in "
- "'husarion_ugv_description/config/{wheel_type}.yaml'. You can also specify the path "
+ "'husarion_ugv_descriptions/config/{wheel_type}.yaml'. You can also specify the path "
"to your custom wheel configuration file here. "
),
)
@@ -159,7 +159,7 @@ def generate_launch_description():
PathJoinSubstitution([FindExecutable(name="xacro")]),
" ",
PathJoinSubstitution(
- [FindPackageShare("husarion_ugv_description"), "urdf", urdf_file]
+ [FindPackageShare("husarion_ugv_descriptions"), "urdf", urdf_file]
),
" use_sim:=",
use_sim,
diff --git a/husarion_ugv_controller/package.xml b/husarion_ugv_controller/package.xml
index 0e0c4519c..33fb991db 100644
--- a/husarion_ugv_controller/package.xml
+++ b/husarion_ugv_controller/package.xml
@@ -18,7 +18,7 @@
controller_managerdiff_drive_controller
- husarion_ugv_description
+ husarion_ugv_descriptionshusarion_ugv_hardware_interfacesimu_sensor_broadcasterjoint_state_broadcaster
diff --git a/husarion_ugv_description/CMakeLists.txt b/husarion_ugv_description/CMakeLists.txt
index 9f7e7d4a7..8881ede9e 100644
--- a/husarion_ugv_description/CMakeLists.txt
+++ b/husarion_ugv_description/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.10.2)
-project(husarion_ugv_description)
+project(husarion_ugv_descriptions)
find_package(ament_cmake REQUIRED)
diff --git a/husarion_ugv_description/README.md b/husarion_ugv_description/README.md
index 9cf7a1e03..976e4ca41 100644
--- a/husarion_ugv_description/README.md
+++ b/husarion_ugv_description/README.md
@@ -1,4 +1,4 @@
-# husarion_ugv_description
+# husarion_ugv_descriptions
The package contains URDF files responsible for creating a representation of the robot by specifying the relationships and types of connections (joints) between individual links. It also contains information about the robot's mesh.
diff --git a/husarion_ugv_description/config/WH01.yaml b/husarion_ugv_description/config/WH01.yaml
index e5bbdd1c1..57ae5c43e 100644
--- a/husarion_ugv_description/config/WH01.yaml
+++ b/husarion_ugv_description/config/WH01.yaml
@@ -4,6 +4,6 @@ wheel_separation: 0.697
mass: 3.0
inertia: { ixx: 0.022510, iyy: 0.034850, izz: 0.022510 }
inertia_y_offset: 0.0
-mesh_package: husarion_ugv_description
+mesh_package: husarion_ugv_descriptions
folder_path: meshes/WH01
mecanum: False
diff --git a/husarion_ugv_description/config/WH02.yaml b/husarion_ugv_description/config/WH02.yaml
index 60ff7a594..fbfeb99e9 100644
--- a/husarion_ugv_description/config/WH02.yaml
+++ b/husarion_ugv_description/config/WH02.yaml
@@ -4,6 +4,6 @@ wheel_separation: 0.6785
mass: 2.4
inertia: { ixx: 0.010050, iyy: 0.016496, izz: 0.010068 }
inertia_y_offset: 0.0
-mesh_package: husarion_ugv_description
+mesh_package: husarion_ugv_descriptions
folder_path: meshes/WH02
mecanum: True
diff --git a/husarion_ugv_description/config/WH04.yaml b/husarion_ugv_description/config/WH04.yaml
index 45fb0d6ae..6d82ba8f1 100644
--- a/husarion_ugv_description/config/WH04.yaml
+++ b/husarion_ugv_description/config/WH04.yaml
@@ -4,6 +4,6 @@ wheel_separation: 0.616
mass: 0.85
inertia: { ixx: 0.003099, iyy: 0.005849, izz: 0.003101 }
inertia_y_offset: 0.0
-mesh_package: husarion_ugv_description
+mesh_package: husarion_ugv_descriptions
folder_path: meshes/WH04
mecanum: False
diff --git a/husarion_ugv_description/config/WH05.yaml b/husarion_ugv_description/config/WH05.yaml
index 3cae8f1d5..1b477154a 100644
--- a/husarion_ugv_description/config/WH05.yaml
+++ b/husarion_ugv_description/config/WH05.yaml
@@ -5,6 +5,6 @@ wheel_separation: 0.45
mass: 2.5
inertia: { ixx: 0.014738, iyy: 0.0261, izz: 0.014738 }
inertia_y_offset: 0.0
-mesh_package: husarion_ugv_description
+mesh_package: husarion_ugv_descriptions
folder_path: meshes/WH05
mecanum: False
diff --git a/husarion_ugv_description/launch/load_urdf.launch.py b/husarion_ugv_description/launch/load_urdf.launch.py
index 9347553fb..df5f61e31 100644
--- a/husarion_ugv_description/launch/load_urdf.launch.py
+++ b/husarion_ugv_description/launch/load_urdf.launch.py
@@ -56,7 +56,7 @@ def generate_launch_description():
declare_components_config_path_arg = DeclareLaunchArgument(
"components_config_path",
default_value=PathJoinSubstitution(
- [FindPackageShare("husarion_ugv_description"), "config", "components.yaml"]
+ [FindPackageShare("husarion_ugv_descriptions"), "config", "components.yaml"]
),
description=(
"Specify file which contains components. These components will be included in URDF."
@@ -112,14 +112,14 @@ def generate_launch_description():
"wheel_config_path",
default_value=PathJoinSubstitution(
[
- FindPackageShare("husarion_ugv_description"),
+ FindPackageShare("husarion_ugv_descriptions"),
"config",
PythonExpression(["'", wheel_type, ".yaml'"]),
]
),
description=(
"Path to wheel configuration file. By default, it is located in "
- "'husarion_ugv_description/config/{wheel_type}.yaml'. You can also specify the path "
+ "'husarion_ugv_descriptions/config/{wheel_type}.yaml'. You can also specify the path "
"to your custom wheel configuration file here. "
),
)
@@ -149,7 +149,7 @@ def generate_launch_description():
PathJoinSubstitution([FindExecutable(name="xacro")]),
" ",
PathJoinSubstitution(
- [FindPackageShare("husarion_ugv_description"), "urdf", urdf_file]
+ [FindPackageShare("husarion_ugv_descriptions"), "urdf", urdf_file]
),
" use_sim:=",
use_sim,
diff --git a/husarion_ugv_description/launch/overwrite_robot_description.launch.py b/husarion_ugv_description/launch/overwrite_robot_description.launch.py
index 810b0ec0e..455065a24 100644
--- a/husarion_ugv_description/launch/overwrite_robot_description.launch.py
+++ b/husarion_ugv_description/launch/overwrite_robot_description.launch.py
@@ -47,7 +47,7 @@ def generate_launch_description():
declare_components_config_path_arg = DeclareLaunchArgument(
"components_config_path",
default_value=PathJoinSubstitution(
- [FindPackageShare("husarion_ugv_description"), "config", "components.yaml"]
+ [FindPackageShare("husarion_ugv_descriptions"), "config", "components.yaml"]
),
description=(
"Specify file which contains components. These components will be included in URDF."
@@ -103,14 +103,14 @@ def generate_launch_description():
"wheel_config_path",
default_value=PathJoinSubstitution(
[
- FindPackageShare("husarion_ugv_description"),
+ FindPackageShare("husarion_ugv_descriptions"),
"config",
PythonExpression(["'", wheel_type, ".yaml'"]),
]
),
description=(
"Path to wheel configuration file. By default, it is located in "
- "'husarion_ugv_description/config/{wheel_type}.yaml'. You can also specify the path "
+ "'husarion_ugv_descriptions/config/{wheel_type}.yaml'. You can also specify the path "
"to your custom wheel configuration file here. "
),
)
@@ -140,7 +140,7 @@ def generate_launch_description():
PathJoinSubstitution([FindExecutable(name="xacro")]),
" ",
PathJoinSubstitution(
- [FindPackageShare("husarion_ugv_description"), "urdf", urdf_file]
+ [FindPackageShare("husarion_ugv_descriptions"), "urdf", urdf_file]
),
" use_sim:=",
use_sim,
diff --git a/husarion_ugv_description/launch/rviz.launch.py b/husarion_ugv_description/launch/rviz.launch.py
index 1fd0b0bc9..054802d30 100644
--- a/husarion_ugv_description/launch/rviz.launch.py
+++ b/husarion_ugv_description/launch/rviz.launch.py
@@ -41,7 +41,7 @@ def generate_launch_description():
declare_rviz_config_arg = DeclareLaunchArgument(
"rviz_config",
default_value=PathJoinSubstitution(
- [FindPackageShare("husarion_ugv_description"), "rviz", "husarion_ugv.rviz"]
+ [FindPackageShare("husarion_ugv_descriptions"), "rviz", "husarion_ugv.rviz"]
),
description="RViz configuration file.",
)
diff --git a/husarion_ugv_description/package.xml b/husarion_ugv_description/package.xml
index 5712cdfdd..9d2e9de82 100644
--- a/husarion_ugv_description/package.xml
+++ b/husarion_ugv_description/package.xml
@@ -1,7 +1,7 @@
- husarion_ugv_description
+ husarion_ugv_descriptions2.1.2The package contains URDF and mesh files for Husarion UGVHusarion
diff --git a/husarion_ugv_description/urdf/lynx.urdf.xacro b/husarion_ugv_description/urdf/lynx.urdf.xacro
index a5aba292b..eb102ca5e 100644
--- a/husarion_ugv_description/urdf/lynx.urdf.xacro
+++ b/husarion_ugv_description/urdf/lynx.urdf.xacro
@@ -6,7 +6,7 @@
+ default="$(find husarion_ugv_descriptions)/config/WH05.yaml" />
-
+
-
+
diff --git a/husarion_ugv_description/urdf/lynx/body.urdf.xacro b/husarion_ugv_description/urdf/lynx/body.urdf.xacro
index 1d3395434..b715a7b18 100644
--- a/husarion_ugv_description/urdf/lynx/body.urdf.xacro
+++ b/husarion_ugv_description/urdf/lynx/body.urdf.xacro
@@ -16,7 +16,7 @@
-
+
@@ -24,7 +24,7 @@
-
+
@@ -48,14 +48,14 @@
-
+
@@ -77,14 +77,14 @@
-
+
diff --git a/husarion_ugv_description/urdf/lynx/lynx_macro.urdf.xacro b/husarion_ugv_description/urdf/lynx/lynx_macro.urdf.xacro
index c126d80c6..5cc44a5da 100644
--- a/husarion_ugv_description/urdf/lynx/lynx_macro.urdf.xacro
+++ b/husarion_ugv_description/urdf/lynx/lynx_macro.urdf.xacro
@@ -17,9 +17,9 @@
-
-
-
+
+
+
+ default="$(find husarion_ugv_descriptions)/config/WH01.yaml" />
-
+
-
+
diff --git a/husarion_ugv_description/urdf/panther/body.urdf.xacro b/husarion_ugv_description/urdf/panther/body.urdf.xacro
index 5a05a6be8..8d81120d0 100644
--- a/husarion_ugv_description/urdf/panther/body.urdf.xacro
+++ b/husarion_ugv_description/urdf/panther/body.urdf.xacro
@@ -18,14 +18,14 @@
-
+
-
+
diff --git a/husarion_ugv_description/urdf/panther/panther_macro.urdf.xacro b/husarion_ugv_description/urdf/panther/panther_macro.urdf.xacro
index 697758e15..33d8f8578 100644
--- a/husarion_ugv_description/urdf/panther/panther_macro.urdf.xacro
+++ b/husarion_ugv_description/urdf/panther/panther_macro.urdf.xacro
@@ -22,9 +22,9 @@
-
-
-
+
+
+ controller_manager
husarion_gz_worldshusarion_ugv_controller
- husarion_ugv_description
+ husarion_ugv_descriptionshusarion_ugv_lightshusarion_ugv_localizationhusarion_ugv_manager
diff --git a/husarion_ugv_hardware_interfaces/README.md b/husarion_ugv_hardware_interfaces/README.md
index 3b6ec176c..a211256ec 100644
--- a/husarion_ugv_hardware_interfaces/README.md
+++ b/husarion_ugv_hardware_interfaces/README.md
@@ -4,7 +4,7 @@ Package that implements SystemInterface from ros2_control for Husarion UGV.
## ROS Nodes
-This package doesn't contain any standalone nodes, only plugins that are loaded by the resource manager. To use this hardware interface, add it to your URDF. You can check how to do it in [panther_macro.urdf.xacro](../husarion_ugv_description/urdf/panther/panther_macro.urdf.xacro) or [lynx_macro.urdf.xacro](../husarion_ugv_description/urdf/lynx/lynx_macro.urdf.xacro).
+This package doesn't contain any standalone nodes, only plugins that are loaded by the resource manager. To use this hardware interface, add it to your URDF. You can check how to do it in [panther_macro.urdf.xacro](../husarion_ugv_descriptions/urdf/panther/panther_macro.urdf.xacro) or [lynx_macro.urdf.xacro](../husarion_ugv_descriptions/urdf/lynx/lynx_macro.urdf.xacro).
### UGVSystem (PantherSystem | LynxSystem)
@@ -30,7 +30,7 @@ Plugins for Panther and Lynx are based on an abstraction called UGVSystem. Most
#### Parameters
-Required parameters are defined when including the interface in the URDF (you can check out [panther_macro.urdf.xacro](../husarion_ugv_description/urdf/panther/panther_macro.urdf.xacro) or [lynx_macro.urdf.xacro](../husarion_ugv_description/urdf/lynx/lynx_macro.urdf.xacro)).
+Required parameters are defined when including the interface in the URDF (you can check out [panther_macro.urdf.xacro](../husarion_ugv_descriptions/urdf/panther/panther_macro.urdf.xacro) or [lynx_macro.urdf.xacro](../husarion_ugv_descriptions/urdf/lynx/lynx_macro.urdf.xacro)).
Physical properties
@@ -72,7 +72,7 @@ Plugin responsible for communicating with IMU and filtering data using Madgwick
#### Parameters
-Required parameters are defined when including the interface in the URDF (you can check out [panther_macro.urdf.xacro](../husarion_ugv_description/urdf/panther/panther_macro.urdf.xacro) or [lynx_macro.urdf.xacro](../husarion_ugv_description/urdf/lynx/lynx_macro.urdf.xacro)).
+Required parameters are defined when including the interface in the URDF (you can check out [panther_macro.urdf.xacro](../husarion_ugv_descriptions/urdf/panther/panther_macro.urdf.xacro) or [lynx_macro.urdf.xacro](../husarion_ugv_descriptions/urdf/lynx/lynx_macro.urdf.xacro)).
Physical properties