Skip to content

cmrobotics/cmr_geometry_utils

Repository files navigation

CMR Geometry Utils

A header only library that provides geometry helpers.

CodeFactor

Percentage of issues still open GitHub license GitHub contributors Maintenance GitHub pull-requests

Table of Contents

General Information

The library provides helpers functions for basic geometry functions that prevents redeclaration across a stack.

Features

Distances

  • Normalized angle distance for multiple objects (geometry_msgs::msg::PoseStamped, geometry_msgs::msg::Pose, geometry_msgs::msg::Point)
  • Point to Point distance for multiple objects (geometry_msgs::msg::PoseStamped, geometry_msgs::msg::Pose, geometry_msgs::msg::Point)

Setup

The project requires set(CMAKE_CXX_STANDARD 20) in your CMakeLists.txt to be built. To setup the library in your ROS2 project:

  • Create your test folder in your project root.
  • Add the following lines to your project CMakeLists.txt:
if(BUILD_TESTING)
  find_package(ament_cmake_gtest REQUIRED)
  find_package(ament_cmake_pytest REQUIRED)
  add_subdirectory(test)
endif()
  • Create your gtest cpp files in your test folder.
  • Create a CMakeLists.txt in your test folder as following:
set(dependencies
  ${dependencies}
  ${cmr_geometry_utils}
)

find_package(cmr_geometry_utils REQUIRED)

ament_add_gtest(name_of_your_test name_of_your_test.cpp)
target_link_libraries(name_of_your_test
  name_of_the_libs_you_want_to_link
)
ament_target_dependencies(name_of_your_test ${dependencies})
target_include_directories(name_of_your_test PRIVATE "../include" "include" ${cmr_geometry_utils_INCLUDE_DIRS})

License

This project is open source and available under the Apache License, Version 2.0.