System overview
Table of contents
We use the git subtree functionality to embed third-party libraries (repositories) as subdirectories within our repositories. This allows us to import them in our ROS packages.
In the navigator Repository
- We bring in our own navigator_msgs repository. This allow us to modify the ROS messages in that repository in one place and have them be used in several of our repositories:
# To make the subtree for navigator_msgs: git subtree add --prefix=src/msg/navigator_msgs --squash https://github.com/Nova-UTD/navigator_msgs.git main # To pull new changes: git subtree pull --prefix=src/msg/navigator_msgs --squash https://github.com/Nova-UTD/navigator_msgs.git main - Similarly, we also bring in ROS’ CARLA messages:
# To make the subtree for ros-carla-msgs: git subtree add --prefix=src/msg/ros-carla-msgs --squash https://github.com/carla-simulator/ros-carla-msgs.git master # To pull new changes: git subtree pull --prefix=src/msg/ros-carla-msgs --squash https://github.com/carla-simulator/ros-carla-msgs.git master - The
ros2_numpyrepository facilitates translating between ROS messages and numpy:# To make the subtree for ros2_numpy: git subtree add --prefix=src/tools/ros2_numpy --squash https://github.com/Box-Robotics/ros2_numpy.git humble # To pull new changes: git subtree pull --prefix=src/tools/ros2_numpy --squash https://github.com/Box-Robotics/ros2_numpy.git humble
In the carla_interface Repository
- As before, we bring in Nova’s
navigator_msgsrepository:git subtree add --prefix=src/msg/navigator_msgs --squash https://github.com/Nova-UTD/navigator_msgs.git main git subtree pull --prefix=src/msg/navigator_msgs --squash https://github.com/Nova-UTD/navigator_msgs.git main - As before, we bring in the
ros2_numpyrepository (note that the carla_interface uses ROS2foxy):git subtree add --prefix=src/tools/ros2_numpy --squash https://github.com/Box-Robotics/ros2_numpy.git foxy-devel git subtree pull --prefix=src/tools/ros2_numpy --squash https://github.com/Box-Robotics/ros2_numpy.git foxy-devel
In the vehicle_interface Repository
- This repository also uses the
ros2_numpyrepository:git subtree add --prefix=src/tools/ros2_numpy --squash https://github.com/Box-Robotics/ros2_numpy.git humble git subtree pull --prefix=src/tools/ros2_numpy --squash https://github.com/Box-Robotics/ros2_numpy.git humble