Waypoints¶
-
class Waypoint : public jacobi::Element¶
A joint-space waypoint with possible position, velocity, and/or acceleration values.
The Waypoint class represents a point in the joint space of a robot with associated position, velocity, and acceleration values.
Public Functions
-
Waypoint(std::initializer_list<double> data)¶
Construct a waypoint by position data.
- Parameters:
data – A list of position values to initialize the waypoint.
-
Waypoint(const Config &position)¶
Construct a waypoint with given position and zero velocity and acceleration.
- Parameters:
position – The joint position to initialize the waypoint.
-
explicit Waypoint(const Config &position, const Config &velocity)¶
Construct a waypoint with given position and velocity and zero acceleration.
- Parameters:
position – The joint position to initialize the waypoint.
velocity – The joint velocity to initialize the waypoint.
-
inline explicit Waypoint(const Config &position, const Config &velocity, const Config &acceleration)¶
Construct a waypoint with given position, velocity, and acceleration.
- Parameters:
position – The joint position to initialize the waypoint.
velocity – The joint velocity to initialize the waypoint.
acceleration – The joint acceleration to initialize the waypoint.
-
inline explicit Waypoint(size_t size)¶
Construct a zero-initialized waypoint with the given size.
- Parameters:
size – The degrees of freedom for the waypoint.
-
inline explicit Waypoint()¶
Construct an empty waypoint.
-
inline void append(const Waypoint &other)¶
Append another waypoint to this one.
This method concatenates the position, velocity, and acceleration data from another waypoint to this one.
- Parameters:
other – The waypoint to append to this one.
-
inline size_t size() const¶
Get the size (or degrees of freedom) of the waypoint.
- Returns:
size_t The degrees of freedom represented by the waypoint.
-
bool is_within(const Waypoint &other) const¶
Check if this waypoint is within another waypoint.
This method checks if the current waypoint’s position, velocity, and acceleration are within the respective boundaries of another waypoint.
- Parameters:
other – The waypoint to compare against.
- Returns:
true If this waypoint is within the boundaries of the other.
- Returns:
false If this waypoint is not within the boundaries of the other.
-
Waypoint(std::initializer_list<double> data)¶
-
class CartesianWaypoint : public jacobi::Element¶
A Cartesian-space waypoint with possible position, velocity, and/or acceleration values.
The CartesianWaypoint class represents a point in Cartesian space with associated position, velocity, and acceleration frames. It is used to define the robot state in Cartesian space at a specific instance, with optional reference joint positions for inverse kinematics.
Public Functions
-
CartesianWaypoint(const Frame &position, const std::optional<Config> &reference_config = std::nullopt)¶
Construct a Cartesian waypoint with given position and zero velocity and acceleration.
- Parameters:
position – The position frame to initialize the waypoint.
reference_config – An optional joint configuration for inverse kinematics.
-
explicit CartesianWaypoint(const Frame &position, const Frame &velocity, const std::optional<Config> &reference_config = std::nullopt)¶
Construct a Cartesian waypoint with given position and velocity and zero acceleration.
- Parameters:
position – The position frame to initialize the waypoint.
velocity – The velocity frame to initialize the waypoint.
reference_config – An optional joint configuration for inverse kinematics.
-
explicit CartesianWaypoint(const Frame &position, const Frame &velocity, const Frame &acceleration, const std::optional<Config> &reference_config = std::nullopt)¶
Construct a Cartesian waypoint with given position, velocity, and acceleration.
- Parameters:
position – The position frame to initialize the waypoint.
velocity – The velocity frame to initialize the waypoint.
acceleration – The acceleration frame to initialize the waypoint.
reference_config – An optional joint configuration for inverse kinematics.
-
explicit CartesianWaypoint()¶
Default constructor.
-
bool is_within(const CartesianWaypoint &other) const¶
Check if this Cartesian waypoint is within another Cartesian waypoint.
This method checks if the current waypoint’s position, velocity, and acceleration frames are within the respective boundaries of another CartesianWaypoint.
- Parameters:
other – The CartesianWaypoint to compare against.
- Returns:
true If this waypoint is within the boundaries of the other.
- Returns:
false If this waypoint is not within the boundaries of the other.
Check if this Cartesian waypoint is within a joint-space waypoint, given a specific robot arm.
This method checks if the current CartesianWaypoint’s position, velocity, and acceleration frames are within the boundaries of a joint space waypoint, considering the robot arm’s kinematics.
- Parameters:
other – The joint-space Waypoint to compare against.
robot – The robot arm associated with the joint-space waypoint.
- Returns:
true If this CartesianWaypoint is within the boundaries of the other joint-space waypoint.
- Returns:
false If this CartesianWaypoint is not within the boundaries of the other joint-space waypoint.
Public Members
-
CartesianWaypoint(const Frame &position, const std::optional<Config> &reference_config = std::nullopt)¶
-
class Region : public jacobi::Element¶
A joint-space region with possible position, velocity, and/or acceleration values.
The Region class defines a region in joint space with boundaries on position, velocity, and acceleration. It is used to specify an area within which a the robot end-effector operates. The class provides methods to construct the region with varying levels of detail and to check if a given waypoint falls within the region’s boundaries.
Public Functions
-
explicit Region()¶
Default constructor.
-
explicit Region(const Config &min_position, const Config &max_position)¶
Construct a Region with position boundaries.
- Parameters:
min_position – The minimum position boundary.
max_position – The maximum position boundary.
-
explicit Region(const Config &min_position, const Config &max_position, const Config &min_velocity, const Config &max_velocity)¶
Construct a Region with position and velocity boundaries.
- Parameters:
min_position – The minimum position boundary.
max_position – The maximum position boundary.
min_velocity – The minimum velocity boundary.
max_velocity – The maximum velocity boundary.
-
explicit Region(const Config &min_position, const Config &max_position, const Config &min_velocity, const Config &max_velocity, const Config &min_acceleration, const Config &max_acceleration)¶
Construct a Region with position, velocity, and acceleration boundaries.
- Parameters:
min_position – The minimum position boundary.
max_position – The maximum position boundary.
min_velocity – The minimum velocity boundary.
max_velocity – The maximum velocity boundary.
min_acceleration – The minimum acceleration boundary.
max_acceleration – The maximum acceleration boundary.
-
inline size_t size() const¶
Get the size (or degrees of freedom) of the region.
- Returns:
size_t The degrees of freedom represented by the region.
-
bool is_within(const Waypoint &other) const¶
Check if a given waypoint is within the region.
This method checks if the given waypoint’s position, velocity, and acceleration fall within the respective boundaries defined by the region.
- Parameters:
other – The waypoint to check.
- Returns:
true If the waypoint is within the region’s boundaries.
- Returns:
false If the waypoint is not within the region’s boundaries.
Public Members
-
explicit Region()¶
-
struct CartesianRegionBound¶
The min or max boundary of a Cartesian region.
The CartesianRegionBound struct represents the boundaries of a region in Cartesian space. It defines both positional (x, y, z) and orientational (gamma, alpha) limits. These boundaries are used to constrain the movement or state of an object within a specified region.
Public Functions
-
inline CartesianRegionBound()¶
Default constructor.
-
inline explicit CartesianRegionBound(double x, double y, double z, double gamma = 0.0, double alpha = 0.0)¶
Construct a CartesianRegionBound with specified values.
- Parameters:
x – The x-coordinate of the boundary.
y – The y-coordinate of the boundary.
z – The z-coordinate of the boundary.
gamma – The rotational component around the z-axis (yaw).
alpha – The rotational component around the x-axis (roll).
Public Members
-
double x = {0.0}¶
The x-coordinate of the boundary.
-
double y = {0.0}¶
The y-coordinate of the boundary.
-
double z = {0.0}¶
The z-coordinate of the boundary.
-
double gamma = {0.0}¶
The rotational component around the z-axis (yaw).
-
double alpha = {0.0}¶
The rotational component around the x-axis (roll).
-
inline CartesianRegionBound()¶
-
class CartesianRegion : public jacobi::Element¶
A Cartesian-space region with possible minimum and maximum position, velocity, and/or acceleration values.
The CartesianRegion class defines a region in Cartesian space with optional boundaries for position, velocity, and acceleration. It is used to describe constraints on a Cartesian region within which the robot end-effector operates. The region can also have an associated reference configuration.
Public Functions
-
CartesianRegion()¶
Default constructor.
-
explicit CartesianRegion(const Frame &origin)¶
Construct a CartesianRegion with a specified origin.
- Parameters:
origin – The frame of reference for the region.
-
explicit CartesianRegion(const CartesianRegionBound &min_position, const CartesianRegionBound &max_position, const std::optional<Config> &reference_config = std::nullopt)¶
Construct a CartesianRegion with position boundaries and an optional reference configuration.
- Parameters:
min_position – The minimum position boundary.
max_position – The maximum position boundary.
reference_config – An optional reference configuration.
-
explicit CartesianRegion(const CartesianRegionBound &min_position, const CartesianRegionBound &max_position, const CartesianRegionBound &min_velocity, const CartesianRegionBound &max_velocity, const std::optional<Config> &reference_config = std::nullopt)¶
Construct a CartesianRegion with position and velocity boundaries, and an optional reference configuration.
- Parameters:
min_position – The minimum position boundary.
max_position – The maximum position boundary.
min_velocity – The minimum velocity boundary.
max_velocity – The maximum velocity boundary.
reference_config – An optional reference configuration.
-
explicit CartesianRegion(const CartesianRegionBound &min_position, const CartesianRegionBound &max_position, const CartesianRegionBound &min_velocity, const CartesianRegionBound &max_velocity, const CartesianRegionBound &min_acceleration, const CartesianRegionBound &max_acceleration, const std::optional<Config> &reference_config = std::nullopt)¶
Construct a CartesianRegion with position, velocity, and acceleration boundaries, and an optional reference configuration.
- Parameters:
min_position – The minimum position boundary.
max_position – The maximum position boundary.
min_velocity – The minimum velocity boundary.
max_velocity – The maximum velocity boundary.
min_acceleration – The minimum acceleration boundary.
max_acceleration – The maximum acceleration boundary.
reference_config – An optional reference configuration.
-
bool is_within(const CartesianWaypoint &other) const¶
Check if a CartesianWaypoint is within the region.
- Parameters:
other – The CartesianWaypoint to check.
- Returns:
true If the waypoint is within the region.
- Returns:
false If the waypoint is not within the region.
Check if a Waypoint is within the region, given a specific robot arm.
- Parameters:
other – The Waypoint to check.
robot – The robot arm associated with the waypoint.
- Returns:
true If the waypoint is within the region.
- Returns:
false If the waypoint is not within the region.
Public Members
-
CartesianRegionBound min_position¶
Minimum position boundary of the region.
-
CartesianRegionBound max_position¶
Maximum position boundary of the region.
-
CartesianRegionBound min_velocity¶
Minimum velocity boundary of the region.
-
CartesianRegionBound max_velocity¶
Maximum velocity boundary of the region.
-
CartesianRegionBound min_acceleration¶
Minimum acceleration boundary of the region.
-
CartesianRegionBound max_acceleration¶
Maximum acceleration boundary of the region.
-
CartesianRegion()¶
-
using MultiRobotPoint = std::map<std::shared_ptr<Robot>, std::variant<Config, Waypoint, CartesianWaypoint>>¶
A type for specifying an exact start or goal point per robot.
-
using Point = std::variant<Config, Waypoint, CartesianWaypoint, MultiRobotPoint, Region, CartesianRegion>¶
All types for specifying motion start or goals, either exact or by region.
-
using ExactPoint = std::variant<Config, Waypoint, CartesianWaypoint, MultiRobotPoint>¶
All types for specifying exact start or goal points.