diff --git a/ROS_API.md b/ROS_API.md
index 322e025d4..6a2be282c 100644
--- a/ROS_API.md
+++ b/ROS_API.md
@@ -46,7 +46,7 @@ Below is information about the physical robot API. For the simulation, topics an
| 🤖🖥️ | `controller_manager` | The Controller Manager performs two main functions. First, it manages controllers and their required interfaces, handling tasks like loading, activating, deactivating, and unloading. Second, it interacts with hardware components, ensuring access to their interfaces. This node manages the: `imu_broadcaster`, `joint_state_broadcaster`, `drive_controller`.
*[controller_manager/controller_manager](https://github.com/ros-controls/ros2_control/blob/master/controller_manager)* |
| 🤖🖥️ | `drive_controller` | Manages mobile robots with a differential or mecanum drive depending on the configuration. It converts velocity commands for the robot body into wheel commands for the base. It also calculates odometry from hardware feedback and shares it.
*[diff_drive_controller/diff_drive_controller](https://github.com/ros-controls/ros2_controllers/tree/master/diff_drive_controller) or [mecanum_drive_controller/mecanum_drive_controller](https://github.com/husarion/husarion_controllers/tree/main/mecanum_drive_controller)* |
| 🤖🖥️ | `ekf_filter` | The Extended Kalman Filter node is designed to fuse odometry data from various sources, including wheel encoders, IMU, and GPS.
*[robot_localization/ekf_filter](https://github.com/cra-ros-pkg/robot_localization)* |
-| 🤖 | `hardware_controller` | Plugin responsible for communicating with engine controllers via the CAN bus and providing E-Stop functionalities.
*[husarion_ugv_hardware_interfaces/{robot_model}System](./husarion_ugv_hardware_interfaces/src/panther_system/)* |
+| 🤖 | `hardware_controller` | Plugin responsible for communicating with engine controllers via the CAN bus and providing E-Stop functionalities.
*[husarion_ugv_hardware_interfaces/{robot_model}System](./husarion_ugv_hardware_interfaces/src/robot_system/)* |
| 🤖 | `gps` | Node responsible for parsing NMEA strings and publishing standard ROS NavSat message types.
*[nmea_navsat_driver/nmea_navsat_driver](https://github.com/ros-drivers/nmea_navsat_driver/tree/ros2/src/libnmea_navsat_driver)* |
| 🖥️ | `gz_ros2_control` | Responsible for integrating the ros2_control controller architecture with the Gazebo simulator.
[gz_ros2_control/gz_ros2_control](https://github.com/ros-controls/gz_ros2_control/tree/master/gz_ros2_control/src) |
| 🖥️ | `gz_estop_gui` | The node is part of the Gazebo GUI plugin, enabling easy E-stop state modifications directly within the simulation.
[husarion_ugv_gazebo/EStop](./husarion_ugv_gazebo/src/gui/e_stop.cpp) |
diff --git a/husarion_ugv_hardware_interfaces/CMakeLists.txt b/husarion_ugv_hardware_interfaces/CMakeLists.txt
index 547cd4f50..66d2aeff8 100644
--- a/husarion_ugv_hardware_interfaces/CMakeLists.txt
+++ b/husarion_ugv_hardware_interfaces/CMakeLists.txt
@@ -53,20 +53,20 @@ pkg_check_modules(LIBGPIOD REQUIRED IMPORTED_TARGET libgpiodcxx)
add_library(
${PROJECT_NAME} SHARED
src/phidget_imu_sensor/phidget_imu_sensor.cpp
- src/panther_system/gpio/gpio_controller.cpp
- src/panther_system/gpio/gpio_driver.cpp
- src/panther_system/robot_driver/canopen_manager.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp
- src/panther_system/robot_driver/roboteq_driver.cpp
- src/panther_system/robot_driver/roboteq_error_filter.cpp
- src/panther_system/robot_driver/roboteq_robot_driver.cpp
- src/panther_system/robot_driver/lynx_robot_driver.cpp
- src/panther_system/robot_driver/panther_robot_driver.cpp
- src/panther_system/system_e_stop.cpp
- src/panther_system/system_ros_interface.cpp
- src/panther_system/lynx_system.cpp
- src/panther_system/panther_system.cpp
- src/panther_system/ugv_system.cpp
+ src/robot_system/gpio/gpio_controller.cpp
+ src/robot_system/gpio/gpio_driver.cpp
+ src/robot_system/robot_driver/canopen_manager.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp
+ src/robot_system/robot_driver/roboteq_driver.cpp
+ src/robot_system/robot_driver/roboteq_error_filter.cpp
+ src/robot_system/robot_driver/roboteq_robot_driver.cpp
+ src/robot_system/robot_driver/lynx_robot_driver.cpp
+ src/robot_system/robot_driver/panther_robot_driver.cpp
+ src/robot_system/system_e_stop.cpp
+ src/robot_system/system_ros_interface.cpp
+ src/robot_system/lynx_system.cpp
+ src/robot_system/panther_system.cpp
+ src/robot_system/ugv_system.cpp
src/utils.cpp)
ament_target_dependencies(${PROJECT_NAME} ${PACKAGE_DEPENDENCIES})
target_link_libraries(${PROJECT_NAME} PkgConfig::LIBLELY_COAPP
@@ -106,13 +106,13 @@ if(BUILD_TESTING)
ament_add_gtest(
${PROJECT_NAME}_test_roboteq_error_filter
- test/unit/panther_system/robot_driver/test_roboteq_error_filter.cpp
- src/panther_system/robot_driver/roboteq_error_filter.cpp)
+ test/unit/robot_system/robot_driver/test_roboteq_error_filter.cpp
+ src/robot_system/robot_driver/roboteq_error_filter.cpp)
ament_add_gtest(
${PROJECT_NAME}_test_roboteq_data_converters
- test/unit/panther_system/robot_driver/test_roboteq_data_converters.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp src/utils.cpp)
+ test/unit/robot_system/robot_driver/test_roboteq_data_converters.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp src/utils.cpp)
target_include_directories(
${PROJECT_NAME}_test_roboteq_data_converters
PUBLIC $
@@ -124,8 +124,8 @@ if(BUILD_TESTING)
ament_add_gtest(
${PROJECT_NAME}_test_canopen_manager
- test/unit/panther_system/robot_driver/test_canopen_manager.cpp
- src/panther_system/robot_driver/canopen_manager.cpp src/utils.cpp)
+ test/unit/robot_system/robot_driver/test_canopen_manager.cpp
+ src/robot_system/robot_driver/canopen_manager.cpp src/utils.cpp)
target_include_directories(
${PROJECT_NAME}_test_canopen_manager
PUBLIC $
@@ -137,9 +137,9 @@ if(BUILD_TESTING)
ament_add_gtest(
${PROJECT_NAME}_test_roboteq_driver
- test/unit/panther_system/robot_driver/test_roboteq_driver.cpp
- src/panther_system/robot_driver/canopen_manager.cpp
- src/panther_system/robot_driver/roboteq_driver.cpp
+ test/unit/robot_system/robot_driver/test_roboteq_driver.cpp
+ src/robot_system/robot_driver/canopen_manager.cpp
+ src/robot_system/robot_driver/roboteq_driver.cpp
src/utils.cpp)
target_include_directories(
${PROJECT_NAME}_test_roboteq_driver
@@ -152,11 +152,11 @@ if(BUILD_TESTING)
ament_add_gmock(
${PROJECT_NAME}_test_roboteq_robot_driver
- test/unit/panther_system/robot_driver/test_roboteq_robot_driver.cpp
- src/panther_system/robot_driver/canopen_manager.cpp
- src/panther_system/robot_driver/roboteq_driver.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp
- src/panther_system/robot_driver/roboteq_robot_driver.cpp
+ test/unit/robot_system/robot_driver/test_roboteq_robot_driver.cpp
+ src/robot_system/robot_driver/canopen_manager.cpp
+ src/robot_system/robot_driver/roboteq_driver.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp
+ src/robot_system/robot_driver/roboteq_robot_driver.cpp
src/utils.cpp)
target_include_directories(
${PROJECT_NAME}_test_roboteq_robot_driver
@@ -169,12 +169,12 @@ if(BUILD_TESTING)
ament_add_gmock(
${PROJECT_NAME}_test_lynx_robot_driver
- test/unit/panther_system/robot_driver/test_lynx_robot_driver.cpp
- src/panther_system/robot_driver/canopen_manager.cpp
- src/panther_system/robot_driver/roboteq_driver.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp
- src/panther_system/robot_driver/roboteq_robot_driver.cpp
- src/panther_system/robot_driver/lynx_robot_driver.cpp
+ test/unit/robot_system/robot_driver/test_lynx_robot_driver.cpp
+ src/robot_system/robot_driver/canopen_manager.cpp
+ src/robot_system/robot_driver/roboteq_driver.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp
+ src/robot_system/robot_driver/roboteq_robot_driver.cpp
+ src/robot_system/robot_driver/lynx_robot_driver.cpp
src/utils.cpp)
target_include_directories(
${PROJECT_NAME}_test_lynx_robot_driver
@@ -187,12 +187,12 @@ if(BUILD_TESTING)
ament_add_gmock(
${PROJECT_NAME}_test_panther_robot_driver
- test/unit/panther_system/robot_driver/test_panther_robot_driver.cpp
- src/panther_system/robot_driver/canopen_manager.cpp
- src/panther_system/robot_driver/roboteq_driver.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp
- src/panther_system/robot_driver/roboteq_robot_driver.cpp
- src/panther_system/robot_driver/panther_robot_driver.cpp
+ test/unit/robot_system/robot_driver/test_panther_robot_driver.cpp
+ src/robot_system/robot_driver/canopen_manager.cpp
+ src/robot_system/robot_driver/roboteq_driver.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp
+ src/robot_system/robot_driver/roboteq_robot_driver.cpp
+ src/robot_system/robot_driver/panther_robot_driver.cpp
src/utils.cpp)
target_include_directories(
${PROJECT_NAME}_test_panther_robot_driver
@@ -205,9 +205,9 @@ if(BUILD_TESTING)
ament_add_gmock(
${PROJECT_NAME}_test_gpiod_controller
- test/panther_system/gpio/test_gpio_controller.cpp
- src/panther_system/gpio/gpio_controller.cpp
- src/panther_system/gpio/gpio_driver.cpp)
+ test/robot_system/gpio/test_gpio_controller.cpp
+ src/robot_system/gpio/gpio_controller.cpp
+ src/robot_system/gpio/gpio_driver.cpp)
ament_target_dependencies(${PROJECT_NAME}_test_gpiod_controller
husarion_ugv_utils)
target_link_libraries(${PROJECT_NAME}_test_gpiod_controller
@@ -215,10 +215,10 @@ if(BUILD_TESTING)
ament_add_gtest(
${PROJECT_NAME}_test_system_ros_interface
- test/unit/panther_system/test_system_ros_interface.cpp
- src/panther_system/system_ros_interface.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp
- src/panther_system/gpio/gpio_controller.cpp
+ test/unit/robot_system/test_system_ros_interface.cpp
+ src/robot_system/system_ros_interface.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp
+ src/robot_system/gpio/gpio_controller.cpp
src/utils.cpp)
target_include_directories(
${PROJECT_NAME}_test_system_ros_interface
@@ -237,14 +237,14 @@ if(BUILD_TESTING)
ament_add_gmock(
${PROJECT_NAME}_test_ugv_system
- test/unit/panther_system/test_ugv_system.cpp
- src/panther_system/gpio/gpio_controller.cpp
- src/panther_system/gpio/gpio_driver.cpp
- src/panther_system/system_e_stop.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp
- src/panther_system/robot_driver/roboteq_error_filter.cpp
- src/panther_system/system_ros_interface.cpp
- src/panther_system/ugv_system.cpp
+ test/unit/robot_system/test_ugv_system.cpp
+ src/robot_system/gpio/gpio_controller.cpp
+ src/robot_system/gpio/gpio_driver.cpp
+ src/robot_system/system_e_stop.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp
+ src/robot_system/robot_driver/roboteq_error_filter.cpp
+ src/robot_system/system_ros_interface.cpp
+ src/robot_system/ugv_system.cpp
src/utils.cpp)
set_tests_properties(${PROJECT_NAME}_test_ugv_system PROPERTIES TIMEOUT 120)
target_include_directories(
@@ -265,19 +265,19 @@ if(BUILD_TESTING)
ament_add_gmock(
${PROJECT_NAME}_test_lynx_system
- test/unit/panther_system/test_lynx_system.cpp
- src/panther_system/gpio/gpio_controller.cpp
- src/panther_system/gpio/gpio_driver.cpp
- src/panther_system/system_e_stop.cpp
- src/panther_system/robot_driver/canopen_manager.cpp
- src/panther_system/robot_driver/roboteq_robot_driver.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp
- src/panther_system/robot_driver/roboteq_driver.cpp
- src/panther_system/robot_driver/roboteq_error_filter.cpp
- src/panther_system/robot_driver/lynx_robot_driver.cpp
- src/panther_system/system_ros_interface.cpp
- src/panther_system/lynx_system.cpp
- src/panther_system/ugv_system.cpp
+ test/unit/robot_system/test_lynx_system.cpp
+ src/robot_system/gpio/gpio_controller.cpp
+ src/robot_system/gpio/gpio_driver.cpp
+ src/robot_system/system_e_stop.cpp
+ src/robot_system/robot_driver/canopen_manager.cpp
+ src/robot_system/robot_driver/roboteq_robot_driver.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp
+ src/robot_system/robot_driver/roboteq_driver.cpp
+ src/robot_system/robot_driver/roboteq_error_filter.cpp
+ src/robot_system/robot_driver/lynx_robot_driver.cpp
+ src/robot_system/system_ros_interface.cpp
+ src/robot_system/lynx_system.cpp
+ src/robot_system/ugv_system.cpp
src/utils.cpp)
set_tests_properties(${PROJECT_NAME}_test_lynx_system PROPERTIES TIMEOUT 120)
target_include_directories(
@@ -298,19 +298,19 @@ if(BUILD_TESTING)
ament_add_gmock(
${PROJECT_NAME}_test_panther_system
- test/unit/panther_system/test_panther_system.cpp
- src/panther_system/gpio/gpio_controller.cpp
- src/panther_system/gpio/gpio_driver.cpp
- src/panther_system/system_e_stop.cpp
- src/panther_system/robot_driver/canopen_manager.cpp
- src/panther_system/robot_driver/roboteq_robot_driver.cpp
- src/panther_system/robot_driver/roboteq_data_converters.cpp
- src/panther_system/robot_driver/roboteq_driver.cpp
- src/panther_system/robot_driver/roboteq_error_filter.cpp
- src/panther_system/robot_driver/panther_robot_driver.cpp
- src/panther_system/system_ros_interface.cpp
- src/panther_system/panther_system.cpp
- src/panther_system/ugv_system.cpp
+ test/unit/robot_system/test_panther_system.cpp
+ src/robot_system/gpio/gpio_controller.cpp
+ src/robot_system/gpio/gpio_driver.cpp
+ src/robot_system/system_e_stop.cpp
+ src/robot_system/robot_driver/canopen_manager.cpp
+ src/robot_system/robot_driver/roboteq_robot_driver.cpp
+ src/robot_system/robot_driver/roboteq_data_converters.cpp
+ src/robot_system/robot_driver/roboteq_driver.cpp
+ src/robot_system/robot_driver/roboteq_error_filter.cpp
+ src/robot_system/robot_driver/panther_robot_driver.cpp
+ src/robot_system/system_ros_interface.cpp
+ src/robot_system/panther_system.cpp
+ src/robot_system/ugv_system.cpp
src/utils.cpp)
set_tests_properties(${PROJECT_NAME}_test_panther_system PROPERTIES TIMEOUT
120)
@@ -333,7 +333,7 @@ if(BUILD_TESTING)
# Integration tests option(TEST_INTEGRATION "Run integration tests" OFF)
if(TEST_INTEGRATION) # Hardware integration
ament_add_gtest(${PROJECT_NAME}_test_gpiod_driver
- test/panther_system/gpio/test_gpio_driver.cpp)
+ test/robot_system/gpio/test_gpio_driver.cpp)
ament_target_dependencies(${PROJECT_NAME}_test_gpiod_driver
husarion_ugv_utils)
target_link_libraries(${PROJECT_NAME}_test_gpiod_driver ${PROJECT_NAME}
diff --git a/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/gpio_controller.hpp b/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/gpio_controller.hpp
similarity index 97%
rename from husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/gpio_controller.hpp
rename to husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/gpio_controller.hpp
index 071b8ff03..f563d2509 100644
--- a/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/gpio_controller.hpp
+++ b/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/gpio_controller.hpp
@@ -17,8 +17,8 @@
* @brief Header file containing a higher-level wrapper for the GPIO driver.
*/
-#ifndef HUSARION_UGV_HARDWARE_INTERFACES_PANTHER_SYSTEM_GPIO_GPIO_CONTROLLER_HPP_
-#define HUSARION_UGV_HARDWARE_INTERFACES_PANTHER_SYSTEM_GPIO_GPIO_CONTROLLER_HPP_
+#ifndef HUSARION_UGV_HARDWARE_INTERFACES_ROBOT_SYSTEM_GPIO_GPIO_CONTROLLER_HPP_
+#define HUSARION_UGV_HARDWARE_INTERFACES_ROBOT_SYSTEM_GPIO_GPIO_CONTROLLER_HPP_
#include
#include
@@ -31,8 +31,8 @@
#include "husarion_ugv_utils/common_utilities.hpp"
-#include "husarion_ugv_hardware_interfaces/panther_system/gpio/gpio_driver.hpp"
-#include "husarion_ugv_hardware_interfaces/panther_system/gpio/types.hpp"
+#include "husarion_ugv_hardware_interfaces/robot_system/gpio/gpio_driver.hpp"
+#include "husarion_ugv_hardware_interfaces/robot_system/gpio/types.hpp"
namespace husarion_ugv_hardware_interfaces
{
@@ -421,4 +421,4 @@ class GPIOControllerFactory
} // namespace husarion_ugv_hardware_interfaces
-#endif // HUSARION_UGV_HARDWARE_INTERFACES_PANTHER_SYSTEM_GPIO_GPIO_CONTROLLER_HPP_
+#endif // HUSARION_UGV_HARDWARE_INTERFACES_ROBOT_SYSTEM_GPIO_GPIO_CONTROLLER_HPP_
diff --git a/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/gpio_driver.hpp b/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/gpio_driver.hpp
similarity index 96%
rename from husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/gpio_driver.hpp
rename to husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/gpio_driver.hpp
index a1a194a4a..a79b29f99 100644
--- a/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/gpio_driver.hpp
+++ b/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/gpio_driver.hpp
@@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef HUSARION_UGV_HARDWARE_INTERFACES_PANTHER_SYSTEM_GPIO_GPIO_DRIVER_HPP_
-#define HUSARION_UGV_HARDWARE_INTERFACES_PANTHER_SYSTEM_GPIO_GPIO_DRIVER_HPP_
+#ifndef HUSARION_UGV_HARDWARE_INTERFACES_ROBOT_SYSTEM_GPIO_GPIO_DRIVER_HPP_
+#define HUSARION_UGV_HARDWARE_INTERFACES_ROBOT_SYSTEM_GPIO_GPIO_DRIVER_HPP_
#include
#include
@@ -29,7 +29,7 @@
#include "gpiod.hpp"
-#include "husarion_ugv_hardware_interfaces/panther_system/gpio/types.hpp"
+#include "husarion_ugv_hardware_interfaces/robot_system/gpio/types.hpp"
namespace husarion_ugv_hardware_interfaces
{
@@ -249,4 +249,4 @@ class GPIODriver : public GPIODriverInterface
} // namespace husarion_ugv_hardware_interfaces
-#endif // HUSARION_UGV_HARDWARE_INTERFACES_PANTHER_SYSTEM_GPIO_GPIO_DRIVER_HPP_
+#endif // HUSARION_UGV_HARDWARE_INTERFACES_ROBOT_SYSTEM_GPIO_GPIO_DRIVER_HPP_
diff --git a/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/types.hpp b/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/types.hpp
similarity index 91%
rename from husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/types.hpp
rename to husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/types.hpp
index 7aef981fd..987380ba7 100644
--- a/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/panther_system/gpio/types.hpp
+++ b/husarion_ugv_hardware_interfaces/include/husarion_ugv_hardware_interfaces/robot_system/gpio/types.hpp
@@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef HUSARION_UGV_HARDWARE_INTERFACES_PANTHER_SYSTEM_GPIO_TYPES_HPP_
-#define HUSARION_UGV_HARDWARE_INTERFACES_PANTHER_SYSTEM_GPIO_TYPES_HPP_
+#ifndef HUSARION_UGV_HARDWARE_INTERFACES_ROBOT_SYSTEM_GPIO_TYPES_HPP_
+#define HUSARION_UGV_HARDWARE_INTERFACES_ROBOT_SYSTEM_GPIO_TYPES_HPP_
#include