28个稳定版本
新版本 2.4.0 | 2024年8月20日 |
---|---|
2.3.1 | 2024年6月9日 |
2.3.0 | 2024年3月23日 |
2.1.1 | 2023年12月25日 |
0.2.5 | 2021年10月22日 |
#8 在 仿真 中
4,185 每月下载量
34KB
406 行
Dubin路径
Rust代码用于计算Dubin路径
感谢 Andrew Walker 提供的 原始C代码
我已经将代码移植到Rust,并记录了我所能理解的一切。原始仓库中的文档很少。
快速示例
use core::f32::consts::PI;
use dubins_paths::{DubinsPath, PosRot, Result as DubinsResult};
// PosRot represents the car's (Pos)ition and (Rot)ation
// Where x and y are the coordinates on a 2d plane
// and theta is the orientation of the car's front in radians
// The starting position and rotation
// PosRot::from_f32 can also be used for const contexts
const q0: PosRot = PosRot::from_f32(0., 0., PI / 4.);
// The target end position and rotation
// PosRot implements From<[f32; 3]>
let q1 = [100., -100., PI * (3. / 4.)].into();
// The car's turning radius (must be > 0)
// This can be calculated by taking a cars angular velocity and dividing it by the car's forward velocity
// `turn radius = ang_vel / forward_vel`
let rho: f32 = 11.6;
// Calculate the shortest possible path between these two points with the given turning radius
let shortest_path_possible: DubinsResult<DubinsPath> = DubinsPath::shortest_from(q0, q1, rho);
// Assert that the path was found!
assert!(shortest_path_possible.is_ok());
DubinsPath有许多方法供您探索,例如length、extract_subpath、sample和sample_many。
功能
glam
- 使用一个兼容glam
的API
更多文档
需要更多详细文档?请访问 docs.rs 页面!
依赖项
~0–0.8MB
~26K SLoC