GitHub Hot Board

GitHub Hot Board · Repo-Archiv

T-DT-Algorithm-2026/tdt-nav-kit

Noch keine Beschreibung in dieser Sprache – kommt automatisch.

C++

Datenstand October 27T-DT-Algorithm-2026

Bestplatzierung

#139

Unterschätzte Perlen

100

Sterne total

9

Forks total

1

Ranking-Tage (30 T.)

Lizenz: MITLetzter Push: October 9Offene Issues (inkl. PR): 0Seit 2026-10-25 erfasst; unbekannt = noch nicht erhoben

Projektdokument

TDT哨兵导航前后端

这是一个面向二维栅格地图的算法组件,组件提供前端路径搜索、动力学搜索和后端轨迹优化等基础模块,可以根据实际工程需要选择其中的一部分接入。

效果展示

output.mp4

组件内容

  • YAstar:前端算法,包括普通Astar和Kinodynamic Astar两种搜索算法,支持二维栅格地图的路径规划。
  • MinimumSnapOsqp:后端算法,可选闭式求解与OSQP求解器求解。

目录结构

.
├── src/                            # 组件源码
│   ├── YAstar/                     # 前端算法
│   |   ├── yastar.hpp              # 普通astar算法
│   |   ├── yastar.cpp              # 普通astar算法
|   |   ├── kinodynamicAstar.hpp    # kastar算法
│   |   └── kinodynamicAstar.cpp    # kastar算法
│   └── MinimumSnapOsqp/            # 后端算法
│        ├── minimumSnap.hpp        # Minimum Snap轨迹优化
│        ├── minimumSnap.cpp        # Minimum Snap轨迹优化
|        ├── sfcSquare.hpp          # 方形约束生成
|        └── sfcSquare.cpp          # 方形约束生成
├── 3rd/                            # OSQP 与 OsqpEigen 子模块
├── doc/                            # 算法说明
├── images/                         # 示例地图和文档图片
├── scripts/setup.sh                # 环境配置脚本
├── main.cpp                        # 使用示例
└── CMakeLists.txt                  # 示例构建配置

环境配置

核心依赖为支持C++11的编译器、Eigen3、OSQP和OsqpEigen。OSQP 与 OsqpEigen以固定版本作为子模块放在 3rd 目录中,运行环境配置脚本即可完成依赖安装、子模块初始化和依赖构建:

./scripts/setup.sh

脚本会将 OSQP 和 OsqpEigen 构建并安装到 3rd/install。OpenCV只用于 main.cpp 示例中的图片读取和可视化,不属于算法组件的核心依赖,需要运行示例时再自行安装。

如果需要安装在环境内,可以选择以下命令行:

# 安装osqp
git clone --recursive -b v1.0.0 https://github.com/osqp/osqp
cd osqp
mkdir build
cd build
cmake .. -DBUILD_SHARED_LIBS=ON
make -j8
sudo make install

# osqp-eigen安装
git clone -b v0.11.0 https://github.com/robotology/osqp-eigen.git
cd osqp-eigen
mkdir build 
cd build
cmake ..    # 默认安装在/usr/local/include中,非apt安装的包,不在/usr/include/下,而是/usr/local/include下
make -j8
sudo make install

使用示例

main.cpp只是一个使用示例,实际工程可以根据需要引入 src 中的组件源码。 运行 main.cpp 示例:

mkdir build
cd build
cmake ..
make -j4
./play

运行结果:

其中:

  • 绿色折线为前端搜索后化简的路径。
  • 蓝色框为后端优化最终使用的走廊。
  • 红色曲线为后端优化的最终轨迹。

运行参数

key value description
分辨率 0.05m 栅格分辨率,场地宽高为560x300
掩码层数 4 掩码层数,用于管理障碍物
势场函数 $$ f(x) = \frac{0.5}{0.1 + x} + 1.0 $$ x为距离障碍物距离
DP路径化简停止阈值 0.1m 与直线化简共同使用
多项式参数数量 6 0~5阶多项式,6个参数
导数阶数 3 3阶平滑,即minimum jerk
采样时间 0.1s MinimumSnap结果函数按照分配时间、速度进行采样,得到曲线
迭代次数 6 迭代次数
机器人最大速度 3.0m/s 用于分配时间、约束速度
机器人最大加速度 1.0m/s^2 用于分配时间
sfc膨胀最大范围 2.5m 方形走廊区域膨胀范围
sfc缩小范围 自动 每次收缩为原始的一半
归一化时间 开启 MinimumSnap使用归一化时间,提高长距离数值稳定性
求解后端 OSQPCorridor 带sfc的OSQP求解后端
初速度 0.0m/s 初速度默认值是不限制
最终速度 0.0m/s 最终速度默认值为0.0

性能表现

测试环境:

  • AMD 7735H @ 4.2GHz
  • Ubuntu 22.04
  • GCC 11.2.0

在RMUC2024地图上,使用以上运行参数测试1000次搜索的性能表现如下:

算法 平均时间 最大时间
Astar 7627.44 us 21806 us
Minimum Snap 1255.42 us 14493.1 us
生成代价地图 1604.13 us 6870.61 us
化简路径 34.0191 us 242.632 us

在RMUC2026地图上,使用以上运行参数测试1000次搜索的性能表现如下:

算法 平均时间 最大时间
Astar 5446.45 us 14761.2 us
Minimum Snap 3901.7 us 126698 us
生成代价地图 1588.52 us 3613.08 us
化简路径 26.0119 us 117.99 us

文档

联系作者

  1. SnifferCaptain
  2. Nathongc

Third-party

project description license
OSQP 二次规划求解器 Apache-2.0
OsqpEigen OSQP 的 Eigen C++ 封装 BSD-3-Clause
Eigen A C++ template library for linear algebra Mozilla Public License Version 2.0

Eigen3 和 OpenCV 是外部依赖,许可证请以各自安装版本附带的许可证为准。

License

使用 MIT 许可证,SnifferCaptain and Nathongc

Aktuelle Platzierungen

  • 139

    Unterschätzte Perlen

    100 Sterne · 9 fork · Stars gesamt (aufsteigend)

    Unterschätzt →

Verlauf der letzten 30 Tage

Kumulierte Sterne

Platzierungsverlauf

Badge in dein README · T-DT-Algorithm-2026/tdt-nav-kit[![Badge in dein README](https://git.vaiox.xyz/api/badge/T-DT-Algorithm-2026/tdt-nav-kit.svg)](https://git.vaiox.xyz/de/repo/T-DT-Algorithm-2026/tdt-nav-kit)

Badge · 任何仓库都可以挂 —— 未上榜的仓库显示灰章,上完榜会自动点亮。

<a href="https://git.vaiox.xyz/de/repo/T-DT-Algorithm-2026/tdt-nav-kit"><img src="https://git.vaiox.xyz/api/badge/T-DT-Algorithm-2026/tdt-nav-kit.svg" alt="Badge in dein README" height="20"></a>

← Zu den Boards

GitHub Hot BoardZeitmaschineEntdecken联系我们 · Contact