]> git.leonardobizzoni.com Git - pioneer-stm32/commitdiff
config & mode change message&services generation
authorLeonardoBizzoni <leo2002714@gmail.com>
Sat, 14 Mar 2026 19:16:58 +0000 (20:16 +0100)
committerLeonardoBizzoni <leo2002714@gmail.com>
Sat, 14 Mar 2026 19:16:58 +0000 (20:16 +0100)
16 files changed:
pioneer_workstation_ws/Makefile
pioneer_workstation_ws/src/pioneer3dx_controller/CMakeLists.txt [moved from pioneer_workstation_ws/src/pioneer3DX_controller/CMakeLists.txt with 51% similarity]
pioneer_workstation_ws/src/pioneer3dx_controller/messages/ChangeMode.msg [new file with mode: 0644]
pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigLed.msg [new file with mode: 0644]
pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigPid.msg [new file with mode: 0644]
pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigRobot.msg [new file with mode: 0644]
pioneer_workstation_ws/src/pioneer3dx_controller/package.xml [moved from pioneer_workstation_ws/src/pioneer3DX_controller/package.xml with 68% similarity]
pioneer_workstation_ws/src/pioneer3dx_controller/services/ChangeMode.srv [new file with mode: 0644]
pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigLed.srv [new file with mode: 0644]
pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigPid.srv [new file with mode: 0644]
pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigRobot.srv [new file with mode: 0644]
pioneer_workstation_ws/src/pioneer3dx_controller/src/main.cpp [moved from pioneer_workstation_ws/src/pioneer3DX_controller/src/main.cpp with 100% similarity]
pioneer_workstation_ws/src/pioneer3dx_controller/src/main.hpp [moved from pioneer_workstation_ws/src/pioneer3DX_controller/src/main.hpp with 100% similarity]
pioneer_workstation_ws/src/pioneer3dx_controller/src/p3dx_node.cpp [moved from pioneer_workstation_ws/src/pioneer3DX_controller/src/p3dx_node.cpp with 97% similarity]
pioneer_workstation_ws/src/pioneer3dx_controller/src/p3dx_node.hpp [moved from pioneer_workstation_ws/src/pioneer3DX_controller/src/p3dx_node.hpp with 100% similarity]
pioneer_workstation_ws/src/pioneer3dx_controller/src/stm32_messages.h [moved from pioneer_workstation_ws/src/pioneer3DX_controller/src/stm32_messages.h with 100% similarity]

index 81ed6d546f031fc0374eb58548e7130338baa944..51d7667393d6e4188ea6381cbdfcc9b1892636fc 100644 (file)
@@ -4,8 +4,8 @@ SHELL := /bin/bash
 
 run:
        colcon build
-       source install/setup.bash && ros2 run pioneer3DX_controller Pioneer3DX_Controller
+       source install/setup.bash && ros2 run pioneer3dx_controller Pioneer3dx_Controller
 
 debug:
        colcon build --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
-       source install/setup.bash && ros2 run --prefix 'gdb -ex start --args' pioneer3DX_controller Pioneer3DX_Controller
+       source install/setup.bash && ros2 run --prefix 'gdb -ex start --args' pioneer3dx_controller Pioneer3dx_Controller
similarity index 51%
rename from pioneer_workstation_ws/src/pioneer3DX_controller/CMakeLists.txt
rename to pioneer_workstation_ws/src/pioneer3dx_controller/CMakeLists.txt
index afa82c8e3caf598c653b17c61f7f1a20cede7c95..cd1290b9a59c72bd2f798bb2b331eaaf1c1c2826 100644 (file)
@@ -1,5 +1,5 @@
 cmake_minimum_required(VERSION 3.8)
-project(pioneer3DX_controller)
+project(pioneer3dx_controller)
 
 if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
   add_compile_options(-Wall -Wextra -Wpedantic)
@@ -9,10 +9,26 @@ endif()
 find_package(ament_cmake REQUIRED)
 find_package(rclcpp REQUIRED)
 find_package(nav_msgs REQUIRED)
+find_package(service_msgs REQUIRED)
+find_package(rosidl_default_generators REQUIRED)
 
-add_executable(Pioneer3DX_Controller src/main.cpp src/p3dx_node.cpp)
-ament_target_dependencies(Pioneer3DX_Controller rclcpp nav_msgs)
-install(TARGETS Pioneer3DX_Controller DESTINATION lib/${PROJECT_NAME})
+rosidl_generate_interfaces(${PROJECT_NAME}
+  "messages/ChangeMode.msg"
+  "messages/ConfigLed.msg"
+  "messages/ConfigPid.msg"
+  "messages/ConfigRobot.msg"
+  "services/ChangeMode.srv"
+  "services/ConfigLed.srv"
+  "services/ConfigPid.srv"
+  "services/ConfigRobot.srv"
+  DEPENDENCIES service_msgs
+)
+
+add_executable(Pioneer3dx_Controller src/main.cpp src/p3dx_node.cpp)
+ament_target_dependencies(Pioneer3dx_Controller rclcpp nav_msgs)
+rosidl_get_typesupport_target(cpp_typesupport_target ${PROJECT_NAME} "rosidl_typesupport_cpp")
+target_link_libraries(Pioneer3dx_Controller ${cpp_typesupport_target})
+install(TARGETS Pioneer3dx_Controller DESTINATION lib/${PROJECT_NAME})
 
 if(BUILD_TESTING)
   find_package(ament_lint_auto REQUIRED)
diff --git a/pioneer_workstation_ws/src/pioneer3dx_controller/messages/ChangeMode.msg b/pioneer_workstation_ws/src/pioneer3dx_controller/messages/ChangeMode.msg
new file mode 100644 (file)
index 0000000..56f716d
--- /dev/null
@@ -0,0 +1 @@
+byte mode
\ No newline at end of file
diff --git a/pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigLed.msg b/pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigLed.msg
new file mode 100644 (file)
index 0000000..2145c4e
--- /dev/null
@@ -0,0 +1,4 @@
+float32 voltage_red
+float32 voltage_orange
+float32 voltage_hysteresis
+uint32 update_period
\ No newline at end of file
diff --git a/pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigPid.msg b/pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigPid.msg
new file mode 100644 (file)
index 0000000..8ff2151
--- /dev/null
@@ -0,0 +1,3 @@
+float32[3] left
+float32[3] right
+float32[3] cross
\ No newline at end of file
diff --git a/pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigRobot.msg b/pioneer_workstation_ws/src/pioneer3dx_controller/messages/ConfigRobot.msg
new file mode 100644 (file)
index 0000000..b858b26
--- /dev/null
@@ -0,0 +1,5 @@
+float32 baseline
+float32 wheel_circumference_left
+float32 wheel_circumference_right
+uint32 ticks_per_revolution_left
+uint32 ticks_per_revolution_right
\ No newline at end of file
similarity index 68%
rename from pioneer_workstation_ws/src/pioneer3DX_controller/package.xml
rename to pioneer_workstation_ws/src/pioneer3dx_controller/package.xml
index ab2ebe403a963d0a003a3d3ff6ccd4d7245a2c4a..f7a6a12925c0810f588bd83bf8447772257e5f57 100644 (file)
@@ -1,15 +1,22 @@
 <?xml version="1.0"?>
 <?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
 <package format="3">
-  <name>pioneer3DX_controller</name>
+  <name>pioneer3dx_controller</name>
   <version>0.0.0</version>
   <description>TODO: Package description</description>
   <maintainer email="leo@todo.todo">leo</maintainer>
   <license>TODO: License declaration</license>
 
   <buildtool_depend>ament_cmake</buildtool_depend>
+  <buildtool_depend>rosidl_default_generators</buildtool_depend>
 
   <depend>rclcpp</depend>
+  <depend>nav_msgs</depend>
+  <depend>service_msgs</depend>
+
+  <exec_depend>rosidl_default_runtime</exec_depend>
+
+  <member_of_group>rosidl_interface_packages</member_of_group>
 
   <test_depend>ament_lint_auto</test_depend>
   <test_depend>ament_lint_common</test_depend>
diff --git a/pioneer_workstation_ws/src/pioneer3dx_controller/services/ChangeMode.srv b/pioneer_workstation_ws/src/pioneer3dx_controller/services/ChangeMode.srv
new file mode 100644 (file)
index 0000000..66599cc
--- /dev/null
@@ -0,0 +1,3 @@
+byte mode
+---
+byte status_response
\ No newline at end of file
diff --git a/pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigLed.srv b/pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigLed.srv
new file mode 100644 (file)
index 0000000..1b6afde
--- /dev/null
@@ -0,0 +1,6 @@
+float32 voltage_red
+float32 voltage_orange
+float32 voltage_hysteresis
+uint32 update_period
+---
+byte status_response
diff --git a/pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigPid.srv b/pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigPid.srv
new file mode 100644 (file)
index 0000000..96d0a48
--- /dev/null
@@ -0,0 +1,5 @@
+float32[3] left
+float32[3] right
+float32[3] cross
+---
+byte status_response
\ No newline at end of file
diff --git a/pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigRobot.srv b/pioneer_workstation_ws/src/pioneer3dx_controller/services/ConfigRobot.srv
new file mode 100644 (file)
index 0000000..23edd9d
--- /dev/null
@@ -0,0 +1,7 @@
+float32 baseline
+float32 wheel_circumference_left
+float32 wheel_circumference_right
+uint32 ticks_per_revolution_left
+uint32 ticks_per_revolution_right
+---
+byte status_response
\ No newline at end of file
similarity index 97%
rename from pioneer_workstation_ws/src/pioneer3DX_controller/src/p3dx_node.cpp
rename to pioneer_workstation_ws/src/pioneer3dx_controller/src/p3dx_node.cpp
index 13a0bd313c7b2fa35d56960d64a9bbb9301978b0..fb1e4f6b9459a5ba800fe5faa93d4809a87cc5e5 100644 (file)
@@ -1,5 +1,7 @@
 #include "p3dx_node.hpp"
 
+#include "pioneer3dx_controller/msg/change_mode.hpp"
+
 using namespace std::chrono_literals;
 
 P3DX_Controller_Node::P3DX_Controller_Node() :
@@ -96,7 +98,7 @@ void P3DX_Controller_Node::stm32_message_print(const FMW_Message *msg)
                                 "\n  header.crc  = %u",
                                 message_types[msg->header.type], msg->header.crc);
   assert(buffer_len > 0);
-  assert(buffer_len < sizeof(buffer));
+  assert(buffer_len < (int32_t)sizeof(buffer));
 
   switch (msg->header.type) {
   case FMW_MessageType_Response: {
@@ -108,7 +110,7 @@ void P3DX_Controller_Node::stm32_message_print(const FMW_Message *msg)
                            "\n    ticks_right  = %d",
                            result_types[msg->response.result], msg->response.delta_millis,
                            msg->response.ticks_left, msg->response.ticks_right);
-    assert(buffer_len < sizeof(buffer));
+    assert(buffer_len < (int32_t)sizeof(buffer));
   } break;
   default: {
     assert(false && "unreachable");