#curve #trajectory #motion

s_curve

用于生成机器人学及相关应用的S-Curve轨迹的包

8个版本

0.1.7 2023年5月2日
0.1.6 2021年5月1日
0.1.5 2020年12月10日
0.1.4 2020年10月12日

#20机器人学


cartesian_trajectories 中使用

MIT/Apache

41KB
996

crates.io GitHub Workflow Status crates.io crates.io docs.rs codecov

一个用于计算S-Curve轨迹的库。可用于为机器人生成运动配置文件。

什么是S-Curve?

S-Curve是一种轨迹,其最大加加速度、加速度和速度受到约束。S-Curve由7个阶段组成

  • 在达到期望加速度之前保持最大加加速度不变
  • 保持最大加速度阶段
  • 在零加速度下直到达到期望速度,保持最小加加速度不变
  • 保持恒定速度阶段
  • 在达到最小加速度之前保持最小加加速度不变
  • 保持最小加速度阶段
  • 在加速度为零、达到期望位置和最终速度之前保持最大加加速度不变

在下面的图片中,您可以看到一个S-Curve配置文件,它在5.5秒内从位置0移动到位置10,起始和结束速度为0,最大加加速度为3,最大加速度为2,最大速度为3。 图片

示例

use s_curve::*;
let constraints = SCurveConstraints {
            max_jerk: 3.,
            max_acceleration: 2.0,
            max_velocity: 3.};
let  start_conditions = SCurveStartConditions {
    q0: 0., // start position
    q1: 10., // end position
    v0: 0., // start velocity
    v1: 0. // end velocity
};
let input  =  SCurveInput{constraints, start_conditions};
let (params,s_curve) = s_curve_generator( & input,Derivative::Velocity);
for i in 0..101 {
    println!("{}", s_curve(i as f64 * params.time_intervals.total_duration() / 100.));
}

许可证

版权所有(c)2020 Marco Boneberger。根据您的选择,许可协议为Apache许可证,版本2.0MIT许可证

无运行时依赖项