|
|
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///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////. | |
| PoseBasePtr | doForwardKinematicRelative (VirtualRobot::RobotNodeSetPtr kc, std::vector< double > jointAngles) |
| doForwardKinematic executes the given jointAngles on the loaded Robot | |
| 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 | |
| std::vector< double > | solveIK (VirtualRobot::RobotNodeSetPtr kc, armarx::PoseBasePtr pose, VirtualRobot::IKSolver::CartesianSelection selection, int iterations) |
| IK////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////. | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| void | syncRobotPrx () |
| syncRobotPrx always updates the robotProxy with the jointAngles of the "real" robot | |
| void | syncRobotPrx (VirtualRobot::RobotNodeSetPtr rns) |
| syncRobotPrx updates the robotProxy with the jointAngles of the "real" when the rns is different to the current rns | |
Static Public Member Functions | |
| static std::shared_ptr< KinematicSolver > | getInstance (VirtualRobot::ScenePtr scenario, VirtualRobot::RobotPtr robot) |
| SINGLETON-FEATURES////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////. | |
| static void | reset () |
| reset Destroys the current instance of KinematicSolver that a new one can be created via call of getInstance | |
Realizes the Singleton-Pattern, Provides Methods to solve Kinematic Problems (forward and inverse)
| 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 |
| 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 |
|
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 |
| 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
|
static |
reset Destroys the current instance of KinematicSolver that a new one can be created via call of getInstance
| 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 |
| 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 |
| 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
| 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 |