Franky 0.12.0
A High-Level Motion API for Franka
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
franky::CartesianWaypointMotion Class Reference

Cartesian waypoint motion. More...

#include <cartesian_waypoint_motion.hpp>

Inheritance diagram for franky::CartesianWaypointMotion:
franky::PositionWaypointMotion< franka::CartesianPose, CartesianState > franky::WaypointMotion< ControlSignalType, WaypointType, TargetType > franky::Motion< ControlSignalType > franky::CartesianMotion franky::StopMotion< franka::CartesianPose >

Public Member Functions

 CartesianWaypointMotion (const std::vector< PositionWaypoint< CartesianState > > &waypoints, const RelativeDynamicsFactor &relative_dynamics_factor=1.0, bool return_when_finished=true, Affine ee_frame=Affine::Identity())
 
- Public Member Functions inherited from franky::PositionWaypointMotion< franka::CartesianPose, CartesianState >
 PositionWaypointMotion (std::vector< PositionWaypoint< CartesianState > > waypoints, const RelativeDynamicsFactor &relative_dynamics_factor=1.0, bool return_when_finished=true)
 
- Public Member Functions inherited from franky::WaypointMotion< ControlSignalType, WaypointType, TargetType >
 WaypointMotion (std::vector< WaypointType > waypoints, bool return_when_finished=true)
 
- Public Member Functions inherited from franky::Motion< ControlSignalType >
virtual ~Motion ()=default
 
void addReaction (std::shared_ptr< Reaction< ControlSignalType > > reaction)
 Add a reaction to the motion.
 
void addReactionFront (std::shared_ptr< Reaction< ControlSignalType > > reaction)
 Add a reaction to the front of the reaction list.
 
std::vector< std::shared_ptr< Reaction< ControlSignalType > > > reactions ()
 Currently registered reactions of the motion.
 
void registerCallback (CallbackType callback)
 Register a callback that is called in every step of the motion.
 
void init (Robot *robot, const RobotState &robot_state, const std::optional< ControlSignalType > &previous_command)
 Initialize the motion.
 
ControlSignalType nextCommand (const RobotState &robot_state, franka::Duration time_step, franka::Duration rel_time, franka::Duration abs_time, const std::optional< ControlSignalType > &previous_command)
 Get the next command of the motion.
 
std::shared_ptr< Motion< ControlSignalType > > checkAndCallReactions (const RobotState &robot_state, franka::Duration rel_time, franka::Duration abs_time)
 Check and call reactions.
 

Protected Member Functions

void initWaypointMotion (const RobotState &robot_state, const std::optional< franka::CartesianPose > &previous_command, ruckig::InputParameter< 7 > &input_parameter) override
 
void setNewWaypoint (const RobotState &robot_state, const std::optional< franka::CartesianPose > &previous_command, const PositionWaypoint< CartesianState > &new_waypoint, ruckig::InputParameter< 7 > &input_parameter) override
 
std::tuple< Vector7d, Vector7d, Vector7dgetAbsoluteInputLimits () const override
 
franka::CartesianPose getControlSignal (const RobotState &robot_state, const franka::Duration &time_step, const std::optional< franka::CartesianPose > &previous_command, const ruckig::InputParameter< 7 > &input_parameter) override
 
virtual std::tuple< Vector7d, Vector7d, Vector7dgetStateEstimate (const RobotState &robot_state) const override
 
- Protected Member Functions inherited from franky::PositionWaypointMotion< franka::CartesianPose, CartesianState >
void setInputLimits (const PositionWaypoint< CartesianState > &waypoint, ruckig::InputParameter< 7 > &input_parameter) const override
 
void extrapolateMotion (const franka::Duration &time_step, const ruckig::InputParameter< 7 > &input_parameter, ruckig::OutputParameter< 7 > &output_parameter) const override
 
- Protected Member Functions inherited from franky::WaypointMotion< ControlSignalType, WaypointType, TargetType >
void initImpl (const RobotState &robot_state, const std::optional< ControlSignalType > &previous_command) override
 
ControlSignalType nextCommandImpl (const RobotState &robot_state, franka::Duration time_step, franka::Duration rel_time, franka::Duration abs_time, const std::optional< ControlSignalType > &previous_command) override
 
virtual void initWaypointMotion (const RobotState &robot_state, const std::optional< ControlSignalType > &previous_command, ruckig::InputParameter< 7 > &input_parameter)=0
 
virtual void setNewWaypoint (const RobotState &robot_state, const std::optional< ControlSignalType > &previous_command, const WaypointType &new_waypoint, ruckig::InputParameter< 7 > &input_parameter)=0
 
virtual void checkWaypoint (const WaypointType &waypoint) const
 
virtual ControlSignalType getControlSignal (const RobotState &robot_state, const franka::Duration &time_step, const std::optional< ControlSignalType > &previous_command, const ruckig::InputParameter< 7 > &input_parameter)=0
 
virtual void setInputLimits (const WaypointType &waypoint, ruckig::InputParameter< 7 > &input_parameter) const =0
 
- Protected Member Functions inherited from franky::Motion< ControlSignalType >
 Motion ()
 
Robotrobot () const
 

Additional Inherited Members

- Public Types inherited from franky::Motion< ControlSignalType >
using CallbackType = std::function< void(const RobotState &, franka::Duration, franka::Duration, franka::Duration, const ControlSignalType &)>
 

Detailed Description

Cartesian waypoint motion.

This motion follows multiple consecutive cartesian targets in a time-optimal way.

Constructor & Destructor Documentation

◆ CartesianWaypointMotion()

franky::CartesianWaypointMotion::CartesianWaypointMotion ( const std::vector< PositionWaypoint< CartesianState > > &  waypoints,
const RelativeDynamicsFactor relative_dynamics_factor = 1.0,
bool  return_when_finished = true,
Affine  ee_frame = Affine::Identity() 
)
explicit
Parameters
waypointsWaypoints to follow.
relative_dynamics_factorThe relative dynamics factor for this motion. This factor will get multiplied with the robot's global dynamics factor to get the actual dynamics factor for this motion.
return_when_finishedWhether to end the motion when the last waypoint is reached or keep holding the last target.
ee_frameThe end-effector frame for which the target is defined. This is a transformation from the configured end-effector frame to the end-effector frame the target is defined for.

Member Function Documentation

◆ getAbsoluteInputLimits()

std::tuple< Vector7d, Vector7d, Vector7d > franky::CartesianWaypointMotion::getAbsoluteInputLimits ( ) const
overrideprotectedvirtual

◆ getControlSignal()

franka::CartesianPose franky::CartesianWaypointMotion::getControlSignal ( const RobotState robot_state,
const franka::Duration &  time_step,
const std::optional< franka::CartesianPose > &  previous_command,
const ruckig::InputParameter< 7 > &  input_parameter 
)
overrideprotected

◆ getStateEstimate()

std::tuple< Vector7d, Vector7d, Vector7d > franky::CartesianWaypointMotion::getStateEstimate ( const RobotState robot_state) const
overrideprotectedvirtual

◆ initWaypointMotion()

void franky::CartesianWaypointMotion::initWaypointMotion ( const RobotState robot_state,
const std::optional< franka::CartesianPose > &  previous_command,
ruckig::InputParameter< 7 > &  input_parameter 
)
overrideprotected

◆ setNewWaypoint()

void franky::CartesianWaypointMotion::setNewWaypoint ( const RobotState robot_state,
const std::optional< franka::CartesianPose > &  previous_command,
const PositionWaypoint< CartesianState > &  new_waypoint,
ruckig::InputParameter< 7 > &  input_parameter 
)
overrideprotected

The documentation for this class was generated from the following files: