Motion Planning#
- class Trajectory#
- id: str#
Field for identifying trajectories (for the user).
- motion: str#
Name of the motion this trajectory was planned for.
- duration: float#
The trajectory duration in [s].
- times: List[float]#
The exact time stamps for the position, velocity, and acceleration values. The times will usually be sampled at the
delta_time
distance of thePlanner
class, but might deviate at the final step.
- reverse() Trajectory #
Reverse the trajectory’s start and goal.
- append(other: Trajectory)#
Appends another trajectory to the current one.
- slice(start: int, steps: int) Trajectory #
Get a slice of the trajectory starting from step start for a length of steps.
- filter_path(max_distance: Config) List[Config] #
Filter a path of sparse waypoints from the trajectory.
The path has a maximum distance per degree of freedom between the linear interpolation of the sparse waypoints and the original trajectory.
- static from_json_file(file: Path) Trajectory #
Loads a trajectory from a
*.json
file.
- to_json_file(file: Path)#
Saves a trajectory to a
*.json
file.
- __len__() int #
The number of time steps within the trajectory.
- as_table() str #
To pretty print the trajectory as a table of positions.
- class Planner#
- delta_time: float#
The time step for sampling the trajectories from the planner in [s]. Usually, this should correspond to the control rate of the robot.
- last_calculation_duration: float#
The duration of the last motion planning calculation in [ms].
- __init__(environment: Environment, delta_time: float)#
Constructs a planner for the given environment.
- __init__(robot: Robot, delta_time: float)#
Constructs a planner for the given robot and an empty environment.
- __init__(project: str, delta_time: float)#
Cloud version: Constructs a planner with the environment defined in the given Jacobi Studio project.
- static load_from_project_file(file: Path) Planner #
On-prem version: Loads a planner from a
*.jacobi-project
file.
- add_motion(motion: Motion | LinearMotion | LowLevelMotion)#
- load_motion_plan(file: Path)#
On-prem version: Loads a motion plan from the
*.jacobi-plan
file.
- plan(start: ExactPoint, goal: ExactPoint) Trajectory | None #
Plans a time-optimized, collision-free, and jerk-limited motion from start to goal.
- plan(motion_name: str, start: ExactPoint = None, goal: ExactPoint = None) Trajectory | None #
Plans a time-optimized, collision-free, and jerk-limited motion given the motion name. In case the motion was specified by a start or goal region, the respective exact start or goal positions needs to be passed.
- plan(motion: Motion) Trajectory | None #
Plans a collision-free point-to-point motion.
- plan(motion: LinearMotion) Trajectory | None #
Plans a linear motion.
- plan(motion: LowLevelMotion) Trajectory | None #
Plans a low-level motion.