Common utility functions and algorithms for robotics work used by ARC & ARM labs and TRI.
common_robotics_utilities
is a ROS package.
Thus, it is best to build it within a ROS workspace:
mkdir -p ~/ws/src
cd ~/ws/src
git clone https://github.com/calderpg/common_robotics_utilities.git
This package supports ROS 1 Kinetic+
and ROS 2 Galactic+ distributions.
Prior distributions of ROS 2 can be supported by removing ROS 2 message printing
support from include/common_robotics_utilities/print.hpp
.
Make sure to symlink the corresponding CMakeLists.txt
and package.xml
files
for the ROS distribution of choice:
For ROS 1 Kinetic+
cd ~/ws/src/common_robotics_utilities
ln -sT CMakeLists.txt.ros1 CMakeLists.txt
ln -sT package.xml.ros1 package.xml
For ROS 2 Galactic+
cd ~/ws/src/common_robotics_utilities
ln -sT CMakeLists.txt.ros2 CMakeLists.txt
ln -sT package.xml.ros2 package.xml
Finally, use rosdep
to ensure all dependencies in the package.xml
are satisfied:
cd ~/ws
rosdep install -i -y --from-path src
Use catkin_make
or
colcon
accordingly.
For ROS 1 Kinetic+
cd ~/ws
catkin_make # the entire workspace
catkin_make --pkg common_robotics_utilities # the package only
For ROS 2 Galactic+
cd ~/ws
colcon build # the entire workspace
colcon build --packages-select common_robotics_utilities # the package only
Use catkin_make
or
colcon
accordingly.
For ROS 1 Kinetic+
cd ~/ws
catkin_make run_tests # the entire workspace
catkin_make run_tests_common_robotics_utilities # the package only
For ROS 2 Galactic+
cd ~/ws
colcon test --event-handlers=console_direct+ # the entire workspace
colcon test --event-handlers=console_direct+ --packages-select common_robotics_utilities # the package only