Kinematic5
A component emitting a 5th order polynomial trajectory.
traj5 is a simple trajectory planner that plans a 5th order polynomial trajectory between two points, subject to specified boundary conditions on the position, velocity and acceleration.
The outputs are:
q: Positionqd: Velocityqdd: Acceleration
Usage
MultibodyComponents.Kinematic5(tf=1, q0=fill(0.0, nout), q1=fill(1.0, nout), qd0=fill(0.0, nout), qd1=fill(0.0, nout), qdd0=fill(0.0, nout), qdd1=fill(0.0, nout))
Parameters:
| Name | Description | Units | Default value |
|---|---|---|---|
nout | Number of output axes | – | 1 |
tf | Final time for the trajectory | – | 1 |
q0 | Initial position for each axis | – | fill(0, nout) |
q1 | Final position for each axis | – | fill(1, nout) |
qd0 | Initial velocity for each axis | – | fill(0, nout) |
qd1 | Final velocity for each axis | – | fill(0, nout) |
qdd0 | Initial acceleration for each axis | – | fill(0, nout) |
qdd1 | Final acceleration for each axis | – | fill(0, nout) |
Connectors
q- This connector represents a real signal as an output from a component (RealOutput)qd- This connector represents a real signal as an output from a component (RealOutput)qdd- This connector represents a real signal as an output from a component (RealOutput)
Behavior
Source
"""
A component emitting a 5th order polynomial trajectory.
`traj5` is a simple trajectory planner that plans a 5th order polynomial trajectory
between two points, subject to specified boundary conditions on the position, velocity
and acceleration.
The outputs are:
- `q`: Position
- `qd`: Velocity
- `qdd`: Acceleration
"""
component Kinematic5
"Position output for each axis"
q = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 150, "x2": 1060, "y2": 250, "rot": 0}
},
"tags": []
}
}
"Velocity output for each axis"
qd = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 450, "x2": 1060, "y2": 550, "rot": 0}
},
"tags": []
}
}
"Acceleration output for each axis"
qdd = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 750, "x2": 1060, "y2": 850, "rot": 0}
},
"tags": []
}
}
"Number of output axes"
structural parameter nout::Integer = 1
"Final time for the trajectory"
parameter tf::Real = 1
"Initial position for each axis"
parameter q0::Real[nout] = fill(0.0, nout)
"Final position for each axis"
parameter q1::Real[nout] = fill(1.0, nout)
"Initial velocity for each axis"
parameter qd0::Real[nout] = fill(0.0, nout)
"Final velocity for each axis"
parameter qd1::Real[nout] = fill(0.0, nout)
"Initial acceleration for each axis"
parameter qdd0::Real[nout] = fill(0.0, nout)
"Final acceleration for each axis"
parameter qdd1::Real[nout] = fill(0.0, nout)
relations
for i in 1:nout
q[i] = MultibodyComponents.traj5_q(time, tf, q0[i], q1[i], qd0[i], qd1[i], qdd0[i], qdd1[i])
qd[i] = MultibodyComponents.traj5_qd(time, tf, q0[i], q1[i], qd0[i], qd1[i], qdd0[i], qdd1[i])
qdd[i] = MultibodyComponents.traj5_qdd(time, tf, q0[i], q1[i], qd0[i], qd1[i], qdd0[i], qdd1[i])
end
metadata {"Dyad": {"icons": {"default": "dyad://MultibodyComponents/Kinematic5.svg"}}}
endFlattened Source
"""
A component emitting a 5th order polynomial trajectory.
`traj5` is a simple trajectory planner that plans a 5th order polynomial trajectory
between two points, subject to specified boundary conditions on the position, velocity
and acceleration.
The outputs are:
- `q`: Position
- `qd`: Velocity
- `qdd`: Acceleration
"""
component Kinematic5
"Position output for each axis"
q = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 150, "x2": 1060, "y2": 250, "rot": 0}
},
"tags": []
}
}
"Velocity output for each axis"
qd = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 450, "x2": 1060, "y2": 550, "rot": 0}
},
"tags": []
}
}
"Acceleration output for each axis"
qdd = [RealOutput() for i in 1:nout] {
"Dyad": {
"placement": {
"diagram": {"iconName": "default", "x1": 960, "y1": 750, "x2": 1060, "y2": 850, "rot": 0}
},
"tags": []
}
}
"Number of output axes"
structural parameter nout::Integer = 1
"Final time for the trajectory"
parameter tf::Real = 1
"Initial position for each axis"
parameter q0::Real[nout] = fill(0.0, nout)
"Final position for each axis"
parameter q1::Real[nout] = fill(1.0, nout)
"Initial velocity for each axis"
parameter qd0::Real[nout] = fill(0.0, nout)
"Final velocity for each axis"
parameter qd1::Real[nout] = fill(0.0, nout)
"Initial acceleration for each axis"
parameter qdd0::Real[nout] = fill(0.0, nout)
"Final acceleration for each axis"
parameter qdd1::Real[nout] = fill(0.0, nout)
relations
for i in 1:nout
q[i] = MultibodyComponents.traj5_q(time, tf, q0[i], q1[i], qd0[i], qd1[i], qdd0[i], qdd1[i])
qd[i] = MultibodyComponents.traj5_qd(time, tf, q0[i], q1[i], qd0[i], qd1[i], qdd0[i], qdd1[i])
qdd[i] = MultibodyComponents.traj5_qdd(time, tf, q0[i], q1[i], qd0[i], qd1[i], qdd0[i], qdd1[i])
end
metadata {"Dyad": {"icons": {"default": "dyad://MultibodyComponents/Kinematic5.svg"}}}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses