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 中使用
41KB
996 行
一个用于计算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.0或MIT许可证。