Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RM Armor Tracker

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.


Introduce

  • 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  

Installation Instructions

Get source code

  • 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

rm_armor_tracker-dev


Dependencies

Update the software package index

sudo apt-get update

Common component

  • 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

Math tools

  • 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.git
cd ceres-solver-2.2.0
sudo gedit ./CMakeLists.txt

find_package(Eigen3 3.3 REQUIRED) >> find_package(Eigen3 REQUIRED)

mkdir build && cd build
cmake ..
make -j
sudo 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/Sophus
cd Sophus-main
sudo gedit ./CMakeLists.txt

cmake_minimum_required(VERSION 3.24) >> cmake_minimum_required(VERSION 3.16)

mkdir build && cd build
cmake ..
make -j
sudo make install  
  • G2O

g2o is an open-source C++ framework for optimizing graph-based nonlinear error functions.

git clone https://github.com/RainerKuemmerle/g2o
cd g2o
mkdir build && cd build
cmake ..
make -j
sudo make install  

Compilation

  • 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

Launch Project

Start Camera Node

ros2 run rm_camera_driver rm_camera_node

Topic: /image_raw

TF Static Publisher

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.0

Start Detector Node

ros2 run armor_detector armor_detector_node

Topic: /armor_detector/result_img

Visualization

  • launch rviz2 rviz2

  • Add by topic image_raw
    binary img
    result img

  • QoS seting Reliable >> Best Effort


result

origin img

origin

binary img

binary

result img

result

fps:203(i7 10800H)

fps


Topics

/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


To Do List

  • Camera Node 25.1.8
  • Detector Node 25.2.6
  • Tracker Node 25.2.10
  • Unit Testing 25.2.15

License

The tracker_node is prietary. Packages like rm_bringup、rm_camera_driver are under MIT license.
Galaxy SDK is under commercial license.

Contact Us

Email

lenardo_smile@outlook.com

Github

https://github.com/tianbot

Technical Support

About

RoboMasterVisonNode_XAUT_tianbot

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages