From db6aee24d38ff0413f9fa94ef08e57d119f9f5bd Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 10 Feb 2022 19:46:18 -0500 Subject: [PATCH 01/13] Created utilities package. --- uwrt_mars_rover_utils/CMakeLists.txt | 62 +++++++++++++++++++ .../uwrt_mars_rover_utils/data_utils.hpp | 31 ++++++++++ uwrt_mars_rover_utils/package.xml | 18 ++++++ uwrt_mars_rover_utils/src/data_utils.cpp | 1 + 4 files changed, 112 insertions(+) create mode 100644 uwrt_mars_rover_utils/CMakeLists.txt create mode 100644 uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp create mode 100644 uwrt_mars_rover_utils/package.xml create mode 100644 uwrt_mars_rover_utils/src/data_utils.cpp diff --git a/uwrt_mars_rover_utils/CMakeLists.txt b/uwrt_mars_rover_utils/CMakeLists.txt new file mode 100644 index 00000000..b9b152f8 --- /dev/null +++ b/uwrt_mars_rover_utils/CMakeLists.txt @@ -0,0 +1,62 @@ +cmake_minimum_required(VERSION 3.8) +project(uwrt_mars_rover_utils) + +# set C/C++ standard +if(NOT CMAKE_C_STANDARD) + set(CMAKE_C_STANDARD 99) +endif() +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + + +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) + +include_directories(include) + +add_library( + ${PROJECT_NAME} SHARED + src/data_utils.cpp +) +target_include_directories(${PROJECT_NAME} PUBLIC + "$" + "$") + +ament_export_include_directories(include) +ament_export_libraries(export_${PROJECT_NAME}) + +install( + DIRECTORY include/ + DESTINATION include +) +install( + TARGETS ${PROJECT_NAME} + EXPORT export_${PROJECT_NAME} + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include +) + + + +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() + +ament_package() diff --git a/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp b/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp new file mode 100644 index 00000000..fc0ffa90 --- /dev/null +++ b/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp @@ -0,0 +1,31 @@ +namespace DifferentialTransmissionData { + + +namespace ActuatorData { + + struct CommandData { + double velocity{}; // TODO: change this so that it can work with any interface type... add enum class that will hold + // the different command types + }; + + struct StateData { + double velocity{}; + double position{}; + double iq_current{}; // not used for differential transmission + }; + +} // namespace ActuatorData + +// keeping this separate from ActuatorData despite the overlap for extensibility reasons +namespace JointData { + +struct CommandData { double velocity{}; }; + +struct StateData { + double velocity{}; + double position{}; +}; + +} // namespace JointData + +} // namespace DifferentialTransmissionData \ No newline at end of file diff --git a/uwrt_mars_rover_utils/package.xml b/uwrt_mars_rover_utils/package.xml new file mode 100644 index 00000000..9a4e2899 --- /dev/null +++ b/uwrt_mars_rover_utils/package.xml @@ -0,0 +1,18 @@ + + + + uwrt_mars_rover_utils + 0.0.0 + UWRT Mars Rover utilities package for avoiding duplicate code. + keyonjerome + TODO: License declaration + + ament_cmake + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/uwrt_mars_rover_utils/src/data_utils.cpp b/uwrt_mars_rover_utils/src/data_utils.cpp new file mode 100644 index 00000000..ecbc28f8 --- /dev/null +++ b/uwrt_mars_rover_utils/src/data_utils.cpp @@ -0,0 +1 @@ +#include From 9dc2d631752039f936f91dccb1de218198c9cdcc Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Wed, 23 Feb 2022 18:20:03 -0500 Subject: [PATCH 02/13] CMake tests for utils package. --- uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt | 2 ++ uwrt_mars_rover_utils/CMakeLists.txt | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt index ab5f9053..4f0581f3 100644 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt @@ -31,6 +31,7 @@ find_package(transmission_interface REQUIRED) find_package(pluginlib REQUIRED) find_package(rclcpp REQUIRED) find_package(rclcpp_lifecycle REQUIRED) +find_package(uwrt_mars_rover_utils REQUIRED) include_directories(include) @@ -55,6 +56,7 @@ ament_target_dependencies( pluginlib rclcpp_lifecycle rclcpp + uwrt_mars_rover_utils ) target_compile_options(${PROJECT_NAME} PRIVATE -Wshadow -Werror) # add some extra flags for this target target_compile_definitions(${PROJECT_NAME} PRIVATE "UWRT_MARS_ROVER_ARM_HW_DLL") # visibility header stuff regarding .so files diff --git a/uwrt_mars_rover_utils/CMakeLists.txt b/uwrt_mars_rover_utils/CMakeLists.txt index b9b152f8..e0264e41 100644 --- a/uwrt_mars_rover_utils/CMakeLists.txt +++ b/uwrt_mars_rover_utils/CMakeLists.txt @@ -31,7 +31,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC "$") ament_export_include_directories(include) -ament_export_libraries(export_${PROJECT_NAME}) +ament_export_libraries(${PROJECT_NAME}) install( DIRECTORY include/ @@ -39,7 +39,7 @@ install( ) install( TARGETS ${PROJECT_NAME} - EXPORT export_${PROJECT_NAME} + EXPORT ${PROJECT_NAME} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin From 0141e497c44d8a64b51006e0b8596bd10d4eb8cf Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 24 Feb 2022 21:35:02 -0500 Subject: [PATCH 03/13] Fix attempts for linking files. --- .../uwrt_mars_rover_arm_hw/CMakeLists.txt | 12 ++++++++++++ .../uwrt_mars_rover_arm_hw/package.xml | 1 + uwrt_mars_rover_utils/CMakeLists.txt | 14 ++++++++------ 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt index 4f0581f3..0099860a 100644 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt @@ -24,6 +24,14 @@ if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 14) endif() +# add_library(uwrt_mars_rover_utils SHARED IMPORTED) +target_link_libraries( + ${PROJECT_NAME} + PUBLIC + uwrt_mars_rover_utils::uwrt_mars_rover_utils +) + + # find dependencies find_package(ament_cmake REQUIRED) find_package(hardware_interface REQUIRED) @@ -42,6 +50,7 @@ include_directories(include) # include #) + # add dynamic library & it's dependecies add_library( ${PROJECT_NAME} @@ -49,6 +58,7 @@ add_library( src/${PROJECT_NAME}_actuator.cpp src/${PROJECT_NAME}_differential.cpp ) + ament_target_dependencies( ${PROJECT_NAME} hardware_interface @@ -58,6 +68,8 @@ ament_target_dependencies( rclcpp uwrt_mars_rover_utils ) + + target_compile_options(${PROJECT_NAME} PRIVATE -Wshadow -Werror) # add some extra flags for this target target_compile_definitions(${PROJECT_NAME} PRIVATE "UWRT_MARS_ROVER_ARM_HW_DLL") # visibility header stuff regarding .so files #TODO: fill in the above correct compile definition above diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/package.xml b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/package.xml index f83ec7eb..3ef7a057 100644 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/package.xml +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/package.xml @@ -14,6 +14,7 @@ rclcpp rclcpp_lifecycle transmission_interface + uwrt_mars_rover_utils> ament_cmake_cppcheck ament_clang_tidy diff --git a/uwrt_mars_rover_utils/CMakeLists.txt b/uwrt_mars_rover_utils/CMakeLists.txt index e0264e41..a806f750 100644 --- a/uwrt_mars_rover_utils/CMakeLists.txt +++ b/uwrt_mars_rover_utils/CMakeLists.txt @@ -26,12 +26,14 @@ add_library( ${PROJECT_NAME} SHARED src/data_utils.cpp ) -target_include_directories(${PROJECT_NAME} PUBLIC - "$" - "$") +# target_include_directories(${PROJECT_NAME} PUBLIC +# "$" +# "$") -ament_export_include_directories(include) -ament_export_libraries(${PROJECT_NAME}) +# ament_export_include_directories(include) +# ament_export_libraries(${PROJECT_NAME}) +# ament_export_targets(${PROJECT_NAME} HAS_LIBRARY_TARGET) +# ament_export_dependencies(some_dependency) install( DIRECTORY include/ @@ -43,7 +45,7 @@ install( LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin - INCLUDES DESTINATION include + # INCLUDES DESTINATION include ) From 07c6b756720b88f30442e3ac3dc5485c8adbea01 Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 09:32:35 -0500 Subject: [PATCH 04/13] Fix utils imports and exports. --- .../uwrt_mars_rover_arm_hw/CMakeLists.txt | 10 +++++----- .../uwrt_mars_rover_arm_hw/package.xml | 2 +- uwrt_mars_rover_utils/CMakeLists.txt | 18 +++++++++--------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt index 0099860a..4e7255d5 100644 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/CMakeLists.txt @@ -25,11 +25,11 @@ if(NOT CMAKE_CXX_STANDARD) endif() # add_library(uwrt_mars_rover_utils SHARED IMPORTED) -target_link_libraries( - ${PROJECT_NAME} - PUBLIC - uwrt_mars_rover_utils::uwrt_mars_rover_utils -) +# target_link_libraries( +# ${PROJECT_NAME} +# PUBLIC +# uwrt_mars_rover_utils::uwrt_mars_rover_utils +# ) # find dependencies diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/package.xml b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/package.xml index 3ef7a057..464fac05 100644 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/package.xml +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/package.xml @@ -14,7 +14,7 @@ rclcpp rclcpp_lifecycle transmission_interface - uwrt_mars_rover_utils> + uwrt_mars_rover_utils ament_cmake_cppcheck ament_clang_tidy diff --git a/uwrt_mars_rover_utils/CMakeLists.txt b/uwrt_mars_rover_utils/CMakeLists.txt index a806f750..434ab096 100644 --- a/uwrt_mars_rover_utils/CMakeLists.txt +++ b/uwrt_mars_rover_utils/CMakeLists.txt @@ -26,26 +26,26 @@ add_library( ${PROJECT_NAME} SHARED src/data_utils.cpp ) -# target_include_directories(${PROJECT_NAME} PUBLIC -# "$" -# "$") +target_include_directories(${PROJECT_NAME} PUBLIC + "$" + "$") -# ament_export_include_directories(include) -# ament_export_libraries(${PROJECT_NAME}) -# ament_export_targets(${PROJECT_NAME} HAS_LIBRARY_TARGET) +ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) # ament_export_dependencies(some_dependency) - +ament_export_include_directories(include) +ament_export_libraries(${PROJECT_NAME}) + install( DIRECTORY include/ DESTINATION include ) install( TARGETS ${PROJECT_NAME} - EXPORT ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin - # INCLUDES DESTINATION include + INCLUDES DESTINATION include ) From f38a43e2c0e87885f7134433642d9c1d9894af86 Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 10:13:09 -0500 Subject: [PATCH 05/13] Add incl guard and replace duplicate code w utils. --- .gitignore | 7 +++ .../compile_commands.json | 2 +- .../uwrt_mars_rover_arm_hw_actuator.hpp | 44 +++---------------- .../uwrt_mars_rover_arm_hw_differential.hpp | 35 +-------------- .../uwrt_mars_rover_utils/data_utils.hpp | 6 ++- 5 files changed, 19 insertions(+), 75 deletions(-) diff --git a/.gitignore b/.gitignore index 226d3a71..37ae1e15 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +build/ +install/ +log/ + devel/ bin/ msg_gen/ @@ -59,3 +63,6 @@ COLCON_IGNORE # uwrt_mars_rover_hw_bridge shouldnt be added as a git submodule uwrt_mars_rover_utils/lib/uwrt_mars_rover_hw_bridge/ +uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json +uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json +.gitignore diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json index fb786302..1483cea3 120000 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json @@ -1 +1 @@ -/home/niiquaye/robotics/build/uwrt_mars_rover_arm_hw/compile_commands.json \ No newline at end of file +/home/keyon/excode/uwrt_mars_rover/build/uwrt_mars_rover_arm_hw/compile_commands.json \ No newline at end of file diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include/uwrt_mars_rover_arm_hw/uwrt_mars_rover_arm_hw_actuator.hpp b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include/uwrt_mars_rover_arm_hw/uwrt_mars_rover_arm_hw_actuator.hpp index 2ca5ef60..34b7eb85 100644 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include/uwrt_mars_rover_arm_hw/uwrt_mars_rover_arm_hw_actuator.hpp +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include/uwrt_mars_rover_arm_hw/uwrt_mars_rover_arm_hw_actuator.hpp @@ -14,45 +14,11 @@ #include #include #include - +#include #include "uwrt_mars_rover_arm_hw/visibility.hpp" namespace uwrt_mars_rover_arm_hw { -// namespaced structs to hold transmission data - state & command -namespace TransmissionData -{ -namespace ActuatorData -{ -using CommandData = struct CommandData -{ - double velocity{}; -}; - -using StateData = struct StateData -{ - double velocity{}; - double position{}; - double iq_current{}; // not used for differential transmission -}; - -} // namespace ActuatorData -namespace JointData -{ -using CommandData = struct CommandData -{ - double velocity{}; -}; - -using StateData = struct StateData -{ - double velocity{}; - double position{}; -}; - -} // namespace JointData - -} // namespace TransmissionData class ArmActuatorInterface : public hardware_interface::ActuatorInterface { @@ -115,10 +81,10 @@ class ArmActuatorInterface : public hardware_interface::ActuatorInterface inline static constexpr std::size_t NUM_COMMAND_INTERFACES{1}; // holds actuator reads/writes - TransmissionData::ActuatorData::CommandData actuator_commands{}; - TransmissionData::ActuatorData::StateData actuator_states{}; - TransmissionData::JointData::CommandData joint_commands{}; - TransmissionData::JointData::StateData joint_states{}; + DifferentialTransmissionData::ActuatorData::CommandData actuator_commands{}; + DifferentialTransmissionData::ActuatorData::StateData actuator_states{}; + DifferentialTransmissionData::JointData::CommandData joint_commands{}; + DifferentialTransmissionData::JointData::StateData joint_states{}; // transmission for state & command transmission std::shared_ptr command_transmission{nullptr}; diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include/uwrt_mars_rover_arm_hw/uwrt_mars_rover_arm_hw_differential.hpp b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include/uwrt_mars_rover_arm_hw/uwrt_mars_rover_arm_hw_differential.hpp index 03ff12c2..2592e170 100644 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include/uwrt_mars_rover_arm_hw/uwrt_mars_rover_arm_hw_differential.hpp +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include/uwrt_mars_rover_arm_hw/uwrt_mars_rover_arm_hw_differential.hpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include "transmission_interface/handle.hpp" @@ -23,40 +24,6 @@ namespace uwrt_mars_rover_arm_hw { -namespace DifferentialTransmissionData -{ -namespace ActuatorData -{ -using CommandData = struct CommandData -{ - double - velocity{}; //TODO: change this so that it can work with any interface type... add enum class that will hold the different command types -}; - -using StateData = struct StateData -{ - double velocity{}; - double position{}; - double iq_current{}; // not used for differential transmission -}; - -} // namespace ActuatorData -namespace JointData -{ -using CommandData = struct CommandData -{ - double velocity{}; -}; - -using StateData = struct StateData -{ - double velocity{}; - double position{}; -}; - -} // namespace JointData - -} // namespace DifferentialTransmissionData class ArmDifferentialSystemInterface : public hardware_interface::SystemInterface { diff --git a/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp b/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp index fc0ffa90..4625930c 100644 --- a/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp +++ b/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp @@ -1,3 +1,6 @@ +#ifndef DIFFERENTIAL_TRANSMISSION_DATA_GUARD +#define DIFFERENTIAL_TRANSMISSION_DATA_GUARD + namespace DifferentialTransmissionData { @@ -28,4 +31,5 @@ struct StateData { } // namespace JointData -} // namespace DifferentialTransmissionData \ No newline at end of file +} // namespace DifferentialTransmissionData +#endif \ No newline at end of file From 86576706a31616af7107a4037e3942e583bec7c7 Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 10:22:21 -0500 Subject: [PATCH 06/13] Remove old-style ament-cmake --- uwrt_mars_rover_utils/CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/uwrt_mars_rover_utils/CMakeLists.txt b/uwrt_mars_rover_utils/CMakeLists.txt index 434ab096..e332454b 100644 --- a/uwrt_mars_rover_utils/CMakeLists.txt +++ b/uwrt_mars_rover_utils/CMakeLists.txt @@ -26,15 +26,15 @@ add_library( ${PROJECT_NAME} SHARED src/data_utils.cpp ) -target_include_directories(${PROJECT_NAME} PUBLIC - "$" - "$") -ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) -# ament_export_dependencies(some_dependency) -ament_export_include_directories(include) -ament_export_libraries(${PROJECT_NAME}) +target_include_directories( + ${PROJECT_NAME} + PUBLIC + $ + $ +) +ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) install( DIRECTORY include/ DESTINATION include From 390a310aae436e16e7f7aa3939e2e23448306ddc Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 19:55:55 -0500 Subject: [PATCH 07/13] Make utils package header-only. --- .gitignore | 3 --- uwrt_mars_rover_utils/CMakeLists.txt | 14 +++++--------- uwrt_mars_rover_utils/src/data_utils.cpp | 1 - 3 files changed, 5 insertions(+), 13 deletions(-) delete mode 100644 uwrt_mars_rover_utils/src/data_utils.cpp diff --git a/.gitignore b/.gitignore index 37ae1e15..3a449466 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -build/ -install/ -log/ devel/ bin/ diff --git a/uwrt_mars_rover_utils/CMakeLists.txt b/uwrt_mars_rover_utils/CMakeLists.txt index e332454b..94aeaa40 100644 --- a/uwrt_mars_rover_utils/CMakeLists.txt +++ b/uwrt_mars_rover_utils/CMakeLists.txt @@ -20,21 +20,17 @@ find_package(ament_cmake REQUIRED) # further dependencies manually. # find_package( REQUIRED) -include_directories(include) - -add_library( - ${PROJECT_NAME} SHARED - src/data_utils.cpp -) - +add_library(${PROJECT_NAME} INTERFACE) target_include_directories( ${PROJECT_NAME} - PUBLIC + INTERFACE $ $ ) - + ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) + + install( DIRECTORY include/ DESTINATION include diff --git a/uwrt_mars_rover_utils/src/data_utils.cpp b/uwrt_mars_rover_utils/src/data_utils.cpp deleted file mode 100644 index ecbc28f8..00000000 --- a/uwrt_mars_rover_utils/src/data_utils.cpp +++ /dev/null @@ -1 +0,0 @@ -#include From 5da4c6bc2f5cd66340f219150cc2456e58e22b48 Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 19:56:46 -0500 Subject: [PATCH 08/13] Switch include guard to $pragma. --- .../uwrt_mars_rover_arm_hw/compile_commands.json | 13 ++++++++++++- .../include/uwrt_mars_rover_utils/data_utils.hpp | 4 +--- 2 files changed, 13 insertions(+), 4 deletions(-) mode change 120000 => 100644 uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json deleted file mode 120000 index 1483cea3..00000000 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json +++ /dev/null @@ -1 +0,0 @@ -/home/keyon/excode/uwrt_mars_rover/build/uwrt_mars_rover_arm_hw/compile_commands.json \ No newline at end of file diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json new file mode 100644 index 00000000..d0d7778d --- /dev/null +++ b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json @@ -0,0 +1,12 @@ +[ +{ + "directory": "/home/keyon/excode/uwrt_rover/build/uwrt_mars_rover_arm_hw", + "command": "/usr/bin/c++ -DDEFAULT_RMW_IMPLEMENTATION=rmw_cyclonedds_cpp -DRCUTILS_ENABLE_FAULT_INJECTION -DUWRT_MARS_ROVER_ARM_HW_DLL -Duwrt_mars_rover_arm_hw_EXPORTS -I/home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include -isystem /home/keyon/excode/uwrt_rover/install/uwrt_mars_rover_utils/include -isystem /opt/ros/galactic/include -fPIC -Wall -Wextra -Wpedantic -Wshadow -Werror -std=gnu++17 -o CMakeFiles/uwrt_mars_rover_arm_hw.dir/src/uwrt_mars_rover_arm_hw_actuator.cpp.o -c /home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/src/uwrt_mars_rover_arm_hw_actuator.cpp", + "file": "/home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/src/uwrt_mars_rover_arm_hw_actuator.cpp" +}, +{ + "directory": "/home/keyon/excode/uwrt_rover/build/uwrt_mars_rover_arm_hw", + "command": "/usr/bin/c++ -DDEFAULT_RMW_IMPLEMENTATION=rmw_cyclonedds_cpp -DRCUTILS_ENABLE_FAULT_INJECTION -DUWRT_MARS_ROVER_ARM_HW_DLL -Duwrt_mars_rover_arm_hw_EXPORTS -I/home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include -isystem /home/keyon/excode/uwrt_rover/install/uwrt_mars_rover_utils/include -isystem /opt/ros/galactic/include -fPIC -Wall -Wextra -Wpedantic -Wshadow -Werror -std=gnu++17 -o CMakeFiles/uwrt_mars_rover_arm_hw.dir/src/uwrt_mars_rover_arm_hw_differential.cpp.o -c /home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/src/uwrt_mars_rover_arm_hw_differential.cpp", + "file": "/home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/src/uwrt_mars_rover_arm_hw_differential.cpp" +} +] \ No newline at end of file diff --git a/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp b/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp index 4625930c..bc5210e6 100644 --- a/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp +++ b/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp @@ -1,5 +1,4 @@ -#ifndef DIFFERENTIAL_TRANSMISSION_DATA_GUARD -#define DIFFERENTIAL_TRANSMISSION_DATA_GUARD +#pragma once namespace DifferentialTransmissionData { @@ -32,4 +31,3 @@ struct StateData { } // namespace JointData } // namespace DifferentialTransmissionData -#endif \ No newline at end of file From 3568cacf0da340f1dd5d196409086c181845e61e Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 19:57:32 -0500 Subject: [PATCH 09/13] Update license declaration. --- uwrt_mars_rover_utils/package.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uwrt_mars_rover_utils/package.xml b/uwrt_mars_rover_utils/package.xml index 9a4e2899..e724de11 100644 --- a/uwrt_mars_rover_utils/package.xml +++ b/uwrt_mars_rover_utils/package.xml @@ -5,7 +5,7 @@ 0.0.0 UWRT Mars Rover utilities package for avoiding duplicate code. keyonjerome - TODO: License declaration + MIT ament_cmake From 76ae9cf7d257a85dbd2f2c04937bf08700750d80 Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 20:01:24 -0500 Subject: [PATCH 10/13] Add CMake testing. --- uwrt_mars_rover_utils/CMakeLists.txt | 41 ++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/uwrt_mars_rover_utils/CMakeLists.txt b/uwrt_mars_rover_utils/CMakeLists.txt index 94aeaa40..547e254e 100644 --- a/uwrt_mars_rover_utils/CMakeLists.txt +++ b/uwrt_mars_rover_utils/CMakeLists.txt @@ -16,9 +16,6 @@ endif() # find dependencies find_package(ament_cmake REQUIRED) -# uncomment the following section in order to fill in -# further dependencies manually. -# find_package( REQUIRED) add_library(${PROJECT_NAME} INTERFACE) target_include_directories( @@ -46,15 +43,37 @@ install( + 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() + # Force generation of compile_commands.json for clang-tidy + set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") + + # clang-format + find_package(ament_cmake_clang_format REQUIRED) + ament_clang_format( + CONFIG_FILE ${CMAKE_SOURCE_DIR}/../../.clang-format + ) + + # clang-tidy + find_package(ament_cmake_clang_tidy REQUIRED) + ament_clang_tidy( + ${CMAKE_BINARY_DIR} + CONFIG_FILE ${CMAKE_SOURCE_DIR}/../../.clang-tidy + ) + + # cppcheck + find_package(ament_cmake_cppcheck REQUIRED) + ament_cppcheck() + + # flake8 + find_package(ament_cmake_flake8 REQUIRED) + ament_flake8( + CONFIG_FILE ${CMAKE_SOURCE_DIR}/../../.flake8 + ) + + # xmllint + find_package(ament_cmake_xmllint REQUIRED) + ament_xmllint() endif() ament_package() From 35c12894248e642ee635b7c28a5872608c823180 Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 20:03:15 -0500 Subject: [PATCH 11/13] Add test dependencies. --- uwrt_mars_rover_utils/package.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/uwrt_mars_rover_utils/package.xml b/uwrt_mars_rover_utils/package.xml index e724de11..0f91e6db 100644 --- a/uwrt_mars_rover_utils/package.xml +++ b/uwrt_mars_rover_utils/package.xml @@ -11,7 +11,12 @@ ament_lint_auto ament_lint_common - + ament_cmake_clang_format + ament_cmake_clang_tidy + ament_cmake_cppcheck + ament_cmake_flake8 + ament_cmake_xmllint + ament_cmake From 77c7b3f18478b981e24d661ae91f90f775c384b9 Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 20:07:09 -0500 Subject: [PATCH 12/13] clang format --- .../uwrt_mars_rover_utils/data_utils.hpp | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp b/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp index bc5210e6..62093899 100644 --- a/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp +++ b/uwrt_mars_rover_utils/include/uwrt_mars_rover_utils/data_utils.hpp @@ -2,26 +2,27 @@ namespace DifferentialTransmissionData { - namespace ActuatorData { - struct CommandData { - double velocity{}; // TODO: change this so that it can work with any interface type... add enum class that will hold - // the different command types - }; +struct CommandData { + double velocity{}; // TODO: change this so that it can work with any interface type... add enum class that will hold + // the different command types +}; - struct StateData { - double velocity{}; - double position{}; - double iq_current{}; // not used for differential transmission - }; +struct StateData { + double velocity{}; + double position{}; + double iq_current{}; // not used for differential transmission +}; } // namespace ActuatorData // keeping this separate from ActuatorData despite the overlap for extensibility reasons namespace JointData { -struct CommandData { double velocity{}; }; +struct CommandData { + double velocity{}; +}; struct StateData { double velocity{}; From 5bfec4a90e068cb0cc516664926e182a775fbcfe Mon Sep 17 00:00:00 2001 From: Keyon-Jerome Date: Thu, 3 Mar 2022 20:09:05 -0500 Subject: [PATCH 13/13] remove compile_commands from git --- .../uwrt_mars_rover_arm_hw/compile_commands.json | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json diff --git a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json b/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json deleted file mode 100644 index d0d7778d..00000000 --- a/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/compile_commands.json +++ /dev/null @@ -1,12 +0,0 @@ -[ -{ - "directory": "/home/keyon/excode/uwrt_rover/build/uwrt_mars_rover_arm_hw", - "command": "/usr/bin/c++ -DDEFAULT_RMW_IMPLEMENTATION=rmw_cyclonedds_cpp -DRCUTILS_ENABLE_FAULT_INJECTION -DUWRT_MARS_ROVER_ARM_HW_DLL -Duwrt_mars_rover_arm_hw_EXPORTS -I/home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include -isystem /home/keyon/excode/uwrt_rover/install/uwrt_mars_rover_utils/include -isystem /opt/ros/galactic/include -fPIC -Wall -Wextra -Wpedantic -Wshadow -Werror -std=gnu++17 -o CMakeFiles/uwrt_mars_rover_arm_hw.dir/src/uwrt_mars_rover_arm_hw_actuator.cpp.o -c /home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/src/uwrt_mars_rover_arm_hw_actuator.cpp", - "file": "/home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/src/uwrt_mars_rover_arm_hw_actuator.cpp" -}, -{ - "directory": "/home/keyon/excode/uwrt_rover/build/uwrt_mars_rover_arm_hw", - "command": "/usr/bin/c++ -DDEFAULT_RMW_IMPLEMENTATION=rmw_cyclonedds_cpp -DRCUTILS_ENABLE_FAULT_INJECTION -DUWRT_MARS_ROVER_ARM_HW_DLL -Duwrt_mars_rover_arm_hw_EXPORTS -I/home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/include -isystem /home/keyon/excode/uwrt_rover/install/uwrt_mars_rover_utils/include -isystem /opt/ros/galactic/include -fPIC -Wall -Wextra -Wpedantic -Wshadow -Werror -std=gnu++17 -o CMakeFiles/uwrt_mars_rover_arm_hw.dir/src/uwrt_mars_rover_arm_hw_differential.cpp.o -c /home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/src/uwrt_mars_rover_arm_hw_differential.cpp", - "file": "/home/keyon/excode/uwrt_rover/src/uwrt_mars_rover/uwrt_mars_rover_arm/uwrt_mars_rover_arm_hw/src/uwrt_mars_rover_arm_hw_differential.cpp" -} -] \ No newline at end of file