|
Realizes the Singleton-Pattern, Provides Methods to solve Kinematic Problems (forward and inverse) More...
#include <RobotComponents/gui-plugins/RobotTrajectoryDesignerGuiPlugin/KinematicSolver.h>
Public Member Functions | |
PoseBasePtr | doForwardKinematic (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > jointAngles) |
FORWARD KINEMATIC & REACHABILITY///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////. More... | |
PoseBasePtr | doForwardKinematicRelative (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > jointAngles) |
doForwardKinematic executes the given jointAngles on the loaded Robot More... | |
bool | isReachable (VirtualRobot::RobotNodeSetPtr rns, PoseBasePtr globalPose, VirtualRobot::IKSolver::CartesianSelection cs) |
isReachable calculates whether the PoseBase pose is reachable by the loaded robot or not More... | |
std::vector< double > | solveIK (VirtualRobot::RobotNodeSetPtr kc, armarx::PoseBasePtr pose, VirtualRobot::IKSolver::CartesianSelection selection, int iterations) |
IK////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////. More... | |
std::vector< double > | solveIKRelative (VirtualRobot::RobotNodeSetPtr kc, armarx::PoseBasePtr framedPose, VirtualRobot::IKSolver::CartesianSelection selection) |
solveIK returns a random solution for an inverse Kinematic problem with no consideration of the current pose of the robot More... | |
std::vector< double > | solveRecursiveIK (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > startingPoint, PoseBasePtr globalDestination, VirtualRobot::IKSolver::CartesianSelection selection) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step More... | |
std::vector< std::vector< double > > | solveRecursiveIK (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > startingPoint, std::vector< PoseBasePtr > globalDestinations, std::vector< VirtualRobot::IKSolver::CartesianSelection > selections) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step More... | |
std::vector< std::vector< double > > | solveRecursiveIK (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > startingPoint, std::vector< PoseBasePtr > globalDestinations, VirtualRobot::IKSolver::CartesianSelection selection) |
std::vector< float > | solveRecursiveIK (VirtualRobot::RobotNodeSetPtr kc, std::vector< float > startingPoint, PoseBasePtr globalDestination, VirtualRobot::IKSolver::CartesianSelection selection) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step More... | |
std::vector< std::vector< double > > | solveRecursiveIKNoMotionPlanning (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > startingPoint, std::vector< PoseBasePtr > globalDestinations, std::vector< VirtualRobot::IKSolver::CartesianSelection > selections) |
std::vector< double > | solveRecursiveIKRelative (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > startingPoint, PoseBasePtr framedDestination, VirtualRobot::IKSolver::CartesianSelection selection) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step More... | |
std::vector< std::vector< double > > | solveRecursiveIKRelative (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > startingPoint, std::vector< PoseBasePtr > framedDestinations, std::vector< VirtualRobot::IKSolver::CartesianSelection > selections) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step More... | |
std::vector< float > | solveRecursiveIKRelative (VirtualRobot::RobotNodeSetPtr kc, std::vector< float > startingPoint, PoseBasePtr framedDestination, VirtualRobot::IKSolver::CartesianSelection selection) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step More... | |
void | syncRobotPrx () |
syncRobotPrx always updates the robotProxy with the jointAngles of the "real" robot More... | |
void | syncRobotPrx (VirtualRobot::RobotNodeSetPtr rns) |
syncRobotPrx updates the robotProxy with the jointAngles of the "real" when the rns is different to the current rns More... | |
Static Public Member Functions | |
static std::shared_ptr< KinematicSolver > | getInstance (VirtualRobot::ScenePtr scenario, VirtualRobot::RobotPtr robot) |
SINGLETON-FEATURES////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////. More... | |
static void | reset () |
reset Destroys the current instance of KinematicSolver that a new one can be created via call of getInstance More... | |
Realizes the Singleton-Pattern, Provides Methods to solve Kinematic Problems (forward and inverse)
Definition at line 51 of file KinematicSolver.h.
PoseBasePtr doForwardKinematic | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< double > | jointAngles | ||
) |
FORWARD KINEMATIC & REACHABILITY///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////.
doForwardKinematic executes the given jointAngles on the loaded Robot
kc | the kinematic Chain on which the joint angles are executed on |
jointAngles | the joint angles which the robot should have |
Definition at line 459 of file KinematicSolver.cpp.
PoseBasePtr doForwardKinematicRelative | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< double > | jointAngles | ||
) |
doForwardKinematic executes the given jointAngles on the loaded Robot
kc | the kinematic Chain on which the joint angles are executed on |
jointAngles | the joint angles which the robot should have |
Definition at line 466 of file KinematicSolver.cpp.
|
static |
SINGLETON-FEATURES////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////.
getInstance returns an instance of a new KinematicSolver with the attributes scenario and robot if no KinematicSolver is initialized yet if a KinematicSolver has already been initialized the method returns that one (see Singleton-Pattern)
scenario | the objects surronding the robot that have to be regarded when calculating an IKSolution |
robot | the robot for which the Kinematic Solution is calculated |
Definition at line 92 of file KinematicSolver.cpp.
bool isReachable | ( | VirtualRobot::RobotNodeSetPtr | rns, |
PoseBasePtr | globalPose, | ||
VirtualRobot::IKSolver::CartesianSelection | cs | ||
) |
isReachable calculates whether the PoseBase pose is reachable by the loaded robot or not
pose | the pose that should be reachable by the robot |
ALTERNATIVE WITH REACHABILITY MAPS
Definition at line 474 of file KinematicSolver.cpp.
|
static |
reset Destroys the current instance of KinematicSolver that a new one can be created via call of getInstance
Definition at line 103 of file KinematicSolver.cpp.
std::vector< double > solveIK | ( | VirtualRobot::RobotNodeSetPtr | kc, |
armarx::PoseBasePtr | pose, | ||
VirtualRobot::IKSolver::CartesianSelection | selection, | ||
int | iterations | ||
) |
IK////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////.
solveIK returns a random solution for an inverse Kinematic problem with no consideration of the current pose of the robot
kc | the kinematic chain for which the IK solution is calculated |
pose | the GLOBAL pose that should be reached by the tcp of the kinematic chain kc when the joint values of the solution are applied to the robot |
selection | the attributes of the pose that are considered when solving the IK problem, e.g. position, orientation or all |
Definition at line 115 of file KinematicSolver.cpp.
std::vector< double > solveIKRelative | ( | VirtualRobot::RobotNodeSetPtr | kc, |
armarx::PoseBasePtr | framedPose, | ||
VirtualRobot::IKSolver::CartesianSelection | selection | ||
) |
solveIK returns a random solution for an inverse Kinematic problem with no consideration of the current pose of the robot
kc | the kinematic chain for which the IK solution is calculated |
pose | the FRAMED POSE RELATIVE TO THE ROBOTS KINEMATIC ROOT that should be reached by the tcp of the kinematic chain kc when the joint values of the solution are applied to the robot |
selection | the attributes of the pose that are considered when solving the IK problem, e.g. position, orientation or all |
Definition at line 150 of file KinematicSolver.cpp.
std::vector<double> solveRecursiveIK | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< double > | startingPoint, | ||
PoseBasePtr | globalDestination, | ||
VirtualRobot::IKSolver::CartesianSelection | selection | ||
) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step
kc | the selected kinematic chain, for which the IK Solution should be found |
startingPoint | the jointAngle values of the starting Pose of the robot |
destinations | the GLOBAL Pose that should be reached |
selection | the attributes of the pose that are considered when solving the IK problem, e.g. position, orientation or all |
std::vector<std::vector<double> > solveRecursiveIK | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< double > | startingPoint, | ||
std::vector< PoseBasePtr > | globalDestinations, | ||
std::vector< VirtualRobot::IKSolver::CartesianSelection > | selections | ||
) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step
kc | the selected kinematic chain, for which the IK Solution should be found |
startingPoint | the jointAngle values of the starting Pose of the robot |
destinations | the GLOBAL Pose that should be reached |
selection | the attributes of the pose that are considered when solving the IK problem, e.g. position, orientation or all |
std::vector<std::vector<double> > solveRecursiveIK | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< double > | startingPoint, | ||
std::vector< PoseBasePtr > | globalDestinations, | ||
VirtualRobot::IKSolver::CartesianSelection | selection | ||
) |
std::vector<float> solveRecursiveIK | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< float > | startingPoint, | ||
PoseBasePtr | globalDestination, | ||
VirtualRobot::IKSolver::CartesianSelection | selection | ||
) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step
kc | the selected kinematic chain, for which the IK Solution should be found |
startingPoint | the jointAngle values of the starting Pose of the robot |
destinations | the GLOBAL Pose that should be reached |
selection | the attributes of the pose that are considered when solving the IK problem, e.g. position, orientation or all |
std::vector< std::vector< double > > solveRecursiveIKNoMotionPlanning | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< double > | startingPoint, | ||
std::vector< PoseBasePtr > | globalDestinations, | ||
std::vector< VirtualRobot::IKSolver::CartesianSelection > | selections | ||
) |
std::vector<double> solveRecursiveIKRelative | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< double > | startingPoint, | ||
PoseBasePtr | framedDestination, | ||
VirtualRobot::IKSolver::CartesianSelection | selection | ||
) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step
kc | the selected kinematic chain, for which the IK Solution should be found |
startingPoint | the jointAngle values of the starting Pose of the robot |
destinations | the FRAMED POSE RELATIVE TO THE ROBOTS KINEMATIC ROOT that should be reached |
selection | the attributes of the pose that are considered when solving the IK problem, e.g. position, orientation or all |
std::vector<std::vector<double> > solveRecursiveIKRelative | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< double > | startingPoint, | ||
std::vector< PoseBasePtr > | framedDestinations, | ||
std::vector< VirtualRobot::IKSolver::CartesianSelection > | selections | ||
) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step
kc | the selected kinematic chain, for which the IK Solution should be found |
startingPoint | the jointAngle values of the starting Pose of the robot |
destinations | the FRAMED POSE RELATIVE TO THE ROBOTS KINEMATIC ROOT that should be reached |
selection | the attributes of the pose that are considered when solving the IK problem, e.g. position, orientation or all |
std::vector<float> solveRecursiveIKRelative | ( | VirtualRobot::RobotNodeSetPtr | kc, |
std::vector< float > | startingPoint, | ||
PoseBasePtr | framedDestination, | ||
VirtualRobot::IKSolver::CartesianSelection | selection | ||
) |
solveRecursiveIK solves IK based on a starting point and an End point based on one step
kc | the selected kinematic chain, for which the IK Solution should be found |
startingPoint | the jointAngle values of the starting Pose of the robot |
destinations | the FRAMED POSE RELATIVE TO THE ROBOTS KINEMATIC ROOT that should be reached |
selection | the attributes of the pose that are considered when solving the IK problem, e.g. position, orientation or all |
void syncRobotPrx | ( | ) |
syncRobotPrx always updates the robotProxy with the jointAngles of the "real" robot
Definition at line 505 of file KinematicSolver.cpp.
void syncRobotPrx | ( | VirtualRobot::RobotNodeSetPtr | rns | ) |
syncRobotPrx updates the robotProxy with the jointAngles of the "real" when the rns is different to the current rns
rns | the newly selected rns |