Giter Site home page Giter Site logo

rm_auto_aim's Introduction

rm_auto_aim

Overview

RoboMaster 装甲板自瞄算法模块

rm_vision

该项目为 rm_vision 的子模块

若有帮助请Star这个项目,感谢~

License

The source code is released under a MIT license.

License: MIT

Origin Author: Chen Jun

Develop Author: Zheng Yu

运行环境:Ubuntu 22.04 / ROS2 Humble (未在其他环境下测试)

Build Status

新增特性及可能的后续优化方向

  • 识别器灯条识别由旋转外接矩形更换为最小二乘法
  • 识别器调试话题加入角点信息,供后续数据录制使用
  • 识别器灯条增加外接矩形中二值化占比过滤条件,减少将大块白光识别为灯条所占用资源
  • 识别器增加任务触发条件,适配能量机关等多任务切换
  • 跟踪器增加视野内多目标间切换功能
  • 跟踪器扩展卡尔曼滤波过程噪声矩阵中增加平移与旋转参数负相关关系
  • 可视化适配 Foxglove 新版本
  • 控制端选板及开火控制逻辑
  • 跟踪器扩展卡尔曼滤波运动模型由匀速模型改为匀加速模型
  • 识别器角点PNP结合激光测距传感器自动调参
  • 处理装甲板的灯条边缘受装甲板物理结构遮挡问题
  • 预测效果评价器

选板逻辑

控制端代码示例 (C): Choose armor for rm_vision (github.com)

Building from Source

Building

在 Ubuntu 22.04 环境下安装 ROS2 Humble

创建 ROS 工作空间后 clone 项目,使用 rosdep 安装依赖后编译代码

cd ros_ws/src
git clone https://github.com/FaterYU/rm_auto_aim.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install --packages-up-to auto_aim_bringup

Testing

Run the tests with

colcon test --packages-up-to auto_aim_bringup

Packages

  • armor_detector

    订阅相机参数及图像流进行装甲板的识别并解算三维位置,输出识别到的装甲板在输入frame下的三维位置 (一般是以相机光心为原点的相机坐标系)

  • armor_tracker

    订阅识别节点发布的装甲板三维位置及机器人的坐标转换信息,将装甲板三维位置变换到指定惯性系(一般是以云台中心为原点,IMU 上电时的 Yaw 朝向为 X 轴的惯性系)下,然后将装甲板目标送入跟踪器中,输出跟踪机器人在指定惯性系下的状态

  • auto_aim_interfaces

    定义了识别节点和处理节点的接口以及定义了用于 Debug 的信息

  • auto_aim_bringup

    包含启动识别节点和处理节点的默认参数文件及 launch 文件

rm_auto_aim's People

Contributors

chenjunnn avatar fateryu avatar cstcsttsc avatar nolem-77 avatar baiyeweiguang avatar ericsii avatar ye-luo-xi-tui avatar

Stargazers

夏佳炜 avatar  avatar Liu Han avatar  avatar  avatar DBin_K avatar  avatar

Watchers

 avatar

rm_auto_aim's Issues

操作手友好的的预测器优先级选择改进

对于操作手操作的兵种而言,自瞄是要服务于操作手的。考虑发射的弹道一般处于图传的中间,并且操作手肯定会在下意识地情况将画面中心对准自己想要瞄准的目标进行瞄准,并且图传和相机通常在一条竖直线上安装,因此我们可以通过计算装甲板到相机画面中心的距离,并以此大小作为优先级进行排序即可。
screenshot-20240715-134622

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.