This project aims to propose an easy-to-use set of detector and tracker.
The feature code contains a lot of comments, and the loosely coupled framework allows for unit testing.
The overall deployment scheme is gradual and can be used as a beginner's practice project.
- Recommended environment
Based on the chenjun open-source rm_vision framework,
The hardware of this project depends on RDK_X5 and Daheng industrial camera, and the software depends on Ubuntu2204 and ROS2humble
- Changelog
2025-1-8:Upload Basic functions
.
└── src
└── rm_armor_tracker
├── rm_camera_driver
└── rm_utils
2025-2-6:Add Detector
.
└── src
└── rm_armor_tracker
├── rm_interfaces
├── rm_camera_driver
├── armor_detector
└── rm_utils
-
Create your workspace
mkdir -p rm_ws/src
cd rm_ws -
Initialize the workspace
colcon build
cd src -
Fetch source code
git clone https://github.com/tianbot/rm_armor_tracker.git
Update the software package index
sudo apt-get update- camera_info_manager
It provides a C++ class used by many camera drivers to manage the camera calibration data required by the ROS image pipeline.
sudo apt-get install ros-humble-camera_info_manager- image_transport
image_transport should always be used to subscribe to and publish images. It provides transparent.
sudo apt-get install ros-humble-image_transport- fmt
an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams.
sudo apt-get install libfmt-dev- spdlog
Fast C++ logging library
sudo apt install libspdlog-dev- Qt
Qt is a cross-platform application development framework for desktop, embedded and mobile.
sudo apt install qtdeclarative5-dev qt5-qmake libqglviewer-dev-qt5- eigen
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
sudo apt install libeigen3-dev- suitesparse
SuiteSparse is a set of sparse-matrix-related packages
sudo apt install libsuitesparse-dev- Ceres
Ceres Solver 1 is an open source C++ library for modeling and solving large, complicated optimization problems.
git clone --recurse-submodules https://github.com/ceres-solver/ceres-solver.gitcd ceres-solver-2.2.0sudo gedit ./CMakeLists.txtfind_package(Eigen3 3.3 REQUIRED) >> find_package(Eigen3 REQUIRED)
mkdir build && cd buildcmake ..make -jsudo make install - Sophus
Sophus is a C++ implementation of Lie groups commonly used for 2d and 3d geometric problems
git clone https://github.com/strasdat/Sophuscd Sophus-mainsudo gedit ./CMakeLists.txtcmake_minimum_required(VERSION 3.24) >> cmake_minimum_required(VERSION 3.16)
mkdir build && cd buildcmake ..make -jsudo make install - G2O
g2o is an open-source C++ framework for optimizing graph-based nonlinear error functions.
git clone https://github.com/RainerKuemmerle/g2ocd g2omkdir build && cd buildcmake ..make -jsudo make install -
Build project
cd ~/rm_armor_tracker
-
Compile the feature package
colcon build --packages-select rm_utils
colcon build --packages-select rm_interfaces
colcon build --packages-select rm_camera_driver
colcon build --packages-select armor_detector
-
Add environment variables
source install/setup.bash
ros2 run rm_camera_driver rm_camera_nodeTopic: /image_raw
ros2 run tf2_ros static_transform_publisher --frame-id odom --child-frame-id camera_optical_frame --x 0.5 --y 0.0 --z 0.0 --roll 0.0 --pitch 0.0 --yaw 0.0ros2 run armor_detector armor_detector_nodeTopic: /armor_detector/result_img
-
launch rviz2
rviz2 -
Add by topic
image_raw
binary img
result img -
QoS seting
Reliable >> Best Effort
/armor_detector/armors
/armor_detector/binary_img
/armor_detector/debug_armors
/armor_detector/debug_lights
/armor_detector/heartbeat
/armor_detector/marker
/armor_detector/number_img
/armor_detector/result_img
/camera_driver/heartbeat
/camera_info
/clicked_point
/goal_pose
/image_raw
/initialpose
/parameter_events
/rosout
/tf
/tf_static
- Camera Node 25.1.8
- Detector Node 25.2.6
- Tracker Node 25.2.10
- Unit Testing 25.2.15
The tracker_node is prietary. Packages like rm_bringup、rm_camera_driver are under MIT license.
Galaxy SDK is under commercial license.
Github
Technical Support
- RDK: @wunuo https://github.com/wunuo1/rm_armor_detection/tree/main
- Galaxy: @jerry



