Skip to content
 
 

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TUM Autonomous Motorsport: Common Library

This repository contains a collection of common functionality used in various modules of the software stack of TUM Autonomous Motorsport.

Repository Content

This repository contains several packages that can be built. Below is a list of the available packages along with a brief description of their contents.

Package Name Description
can_comms_cpp C++ library for CAN communication
limit_handler_cpp C++ library for handling acceleration limits
limit_handler_py Python binding for limit_handler_cpp
network_communication UDP/ROS Bride for communication between Non-ROS and ROS Modules via given msg Definitions
ros2_watchdog_cpp C++ library for monitoring ROS2 topics and nodes
ros2_watchdog_py Python binding for ros2_watchdog_cpp
track_handler_cpp C++ library for handling and processing race track files
track_handler_py Python binding for track_handler_cpp
tum_helpers_cpp Various helper and conversion functions for C++ applications
tum_helpers_py Python binding of tum_helpers_cpp
tum_ros_helpers_cpp C++ library for providing helper functions for ROS2 applications
tum_type_conversions_ros_cpp Various message type conversions for C++ applications
tum_type_conversions_ros_py Python binding for tum_type_conversions_ros_cpp
tum_types_cpp C++ library containing common struct definitions for data handling
tum_types_py Python binding for tum_types_cpp
vehicle_handler_cpp C++ library for handling vehicle parameter and vehcile specific calculations
vehicle_handler_py Python binding for vehicle_handler_cpp
dynamic_node_composition Library for dynamically loading ROS2 nodes as rclcpp components from shared libraries. Includes CLI argument parsing and executables for component loading.
logging More performant ROS2 bag recorder than the builtin ros2 one.
boost_sml Vendor Package for the Open Source State Machine Library for C++
matplotlib_cpp Vendor Package for the Open Source Plotting library for C++ applications

Externally Included Repositories

Package Name Description
parameter_management Parameter Management Library of TUM Autonmous Motorsport
time_series_logging The time series logging library of TUM Autonomous Motorsport
boost_sml State Machine Library for C++
matplotlib_cpp Plotting functionality for C++ applications

Building the Project

Installing the required dependencies

Attention: The repository contains submodules so please clone with the --recursive option

We are using Ubuntu 22.04 and ROS 2 Humble for building the project. We expect later releases of Ubuntu and ROS 2 to work as well, but we haven't tested it so far.

Additionally, the following packages have to be installed:

sudo apt install libboost-dev
sudo apt install ros-${ROS_DISTRO}-can-msgs
sudo apt install ros-${ROS_DISTRO}-ros2-socketcan 
sudo apt install ros-${ROS_DISTRO}-geographic-msgs # Required for autoware msgs

Compiling the library.

After installing the required dependencies, all packages should compile using colcon.

colcon build

Disclaimer

At this point, we cannot guarantee API stability since we are continuously developing and improving our software stack. While we always try to avoid these, breaking changes could happen in future updates of the message definitions.

References

Curvilinear Cosy

Implementation of segment.cpp, segment.hpp, curvilinear_cosy.cpp, curvilinear_cosy.hpp adapted from:

Contributors

The main contributors of the Project are:

We also want to thank all other members of TUM Autonomous Motorsport for actively developing this library.

About

TUM Autonomous Motorsport | Common Library: Common Functions and Packages used within the TUM Autonomous Motorsport Team

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages