Time-aware kinematics¶
Kimech separates the coordinate used to parameterize configurations from the optional physical time associated with requested samples.
For one Driver coordinate (u), a geometric sweep represents
[ q = q(u). ]
If the prescribed coordinate is known as a function of physical time,
[ u = u(t), ]
then the same samples may also represent
[ q = q(t). ]
Constant-speed example¶
import numpy as np
time = np.linspace(0.0, 2.0, 201)
theta0 = np.deg2rad(30.0)
omega = 5.0
driver = KinematicDriver(
crank_joint,
position=theta0 + omega * time,
velocity=omega,
acceleration=0.0,
)
solution = solve(
mechanism,
driver=driver,
time=time,
initial_guess=initial_guess,
)
The Driver contains the prescribed coordinate and its physical derivatives.
time belongs to the solve history.
What time does¶
When supplied, time:
contains one physical instant per requested Driver sample;
is retained as
solution.time;is propagated to
solution[i].time;must be finite and strictly increasing for a multi-sample solve.
What time does not do¶
Supplying time does not:
change the continuation parameter from (u) to (t);
numerically integrate the mechanism;
numerically differentiate Driver positions;
infer missing Driver velocity or acceleration;
verify that user-supplied position, velocity, and acceleration histories are mutually consistent.
A timed and untimed solve evaluated at the same Driver samples therefore have the same kinematic state. Time adds physical sample association only.