From 7363a685364b21f038bb8a64c92ec1faef6861f7 Mon Sep 17 00:00:00 2001 From: Nicolas Hiillos Date: Tue, 6 Dec 2022 10:59:40 +0200 Subject: [PATCH] Implement initial robot message and service --- src/robot_interfaces/CMakeLists.txt | 34 ++++++++++++++++++++++ src/robot_interfaces/msg/Motion.msg | 5 ++++ src/robot_interfaces/package.xml | 26 +++++++++++++++++ src/robot_interfaces/srv/ExecuteMotion.srv | 5 ++++ 4 files changed, 70 insertions(+) create mode 100644 src/robot_interfaces/CMakeLists.txt create mode 100644 src/robot_interfaces/msg/Motion.msg create mode 100644 src/robot_interfaces/package.xml create mode 100644 src/robot_interfaces/srv/ExecuteMotion.srv diff --git a/src/robot_interfaces/CMakeLists.txt b/src/robot_interfaces/CMakeLists.txt new file mode 100644 index 0000000..f8de5fe --- /dev/null +++ b/src/robot_interfaces/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.8) +project(robot_interfaces) + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +# uncomment the following section in order to fill in +# further dependencies manually. +# find_package( REQUIRED) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + # the following line skips the linter which checks for copyrights + # uncomment the line when a copyright and license is not present in all source files + #set(ament_cmake_copyright_FOUND TRUE) + # the following line skips cpplint (only works in a git repo) + # uncomment the line when this package is not in a git repo + #set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +find_package(geometry_msgs REQUIRED) +find_package(rosidl_default_generators REQUIRED) + +rosidl_generate_interfaces(${PROJECT_NAME} + "msg/Motion.msg" + "srv/ExecuteMotion.srv" + DEPENDENCIES geometry_msgs # Add packages that above messages depend on, in this case geometry_msgs for Sphere.msg +) + +ament_package() diff --git a/src/robot_interfaces/msg/Motion.msg b/src/robot_interfaces/msg/Motion.msg new file mode 100644 index 0000000..df49c97 --- /dev/null +++ b/src/robot_interfaces/msg/Motion.msg @@ -0,0 +1,5 @@ +# A single motion, consisting of a list of timestamped points + +geometry_msgs/PoseStamped[] path +float64 acceleration +float64 velocity diff --git a/src/robot_interfaces/package.xml b/src/robot_interfaces/package.xml new file mode 100644 index 0000000..8332bba --- /dev/null +++ b/src/robot_interfaces/package.xml @@ -0,0 +1,26 @@ + + + + robot_interfaces + 0.0.0 + TODO: Package description + root + TODO: License declaration + + ament_cmake + + ament_lint_auto + ament_lint_common + + geometry_msgs + + rosidl_default_generators + + rosidl_default_runtime + + rosidl_interface_packages + + + ament_cmake + + diff --git a/src/robot_interfaces/srv/ExecuteMotion.srv b/src/robot_interfaces/srv/ExecuteMotion.srv new file mode 100644 index 0000000..1428e73 --- /dev/null +++ b/src/robot_interfaces/srv/ExecuteMotion.srv @@ -0,0 +1,5 @@ +# Motion service + +Motion motion +--- +string status