#include <MILDRobotModelWithExactIK.hpp>

Public Member Functions | |
| PTUConfig | calculateCameraPoseCorrection (const RobotStatePtr &sourceRobotState, const SimpleVector3 &position, const SimpleQuaternion &orientation) |
| Calculates the best approximation for the given camera pose from the current base position. More... | |
| RobotStatePtr | calculateRobotState (const RobotStatePtr &sourceRobotState, const SimpleVector3 &position, const SimpleQuaternion &orientation) |
| Calculates the inverse kinematics for the given camera pose. More... | |
| MILDRobotModelWithExactIK () | |
| constructor of the MILDRobotModelWithExactIK More... | |
| void | setViewPointDistance (float viewPointDistance) |
| Sets the distance between the desired view center point and the camera. More... | |
| virtual | ~MILDRobotModelWithExactIK () |
| destructor of the MILDRobotModelWithExactIK More... | |
Public Member Functions inherited from robot_model_services::MILDRobotModel | |
| geometry_msgs::Pose | calculateCameraPose (const RobotStatePtr &sourceRobotState) |
| Uses a given RobotState to calculate the camera frame. More... | |
| float | getBase_RotationalMovementCosts (const RobotStatePtr &sourceRobotState, const RobotStatePtr &targetRobotState) |
| float | getBase_TranslationalMovementCosts (const RobotStatePtr &sourceRobotState, const RobotStatePtr &targetRobotState) |
| Calculates the movement costs from sourceRobotState to targetRobotState. Returns -1 if pose is not reachable. More... | |
| geometry_msgs::Pose | getCameraPose () |
| float | getDistance (const geometry_msgs::Point &sourcePosition, const geometry_msgs::Point &targetPosition) |
| nav_msgs::Path | getNavigationPath (const geometry_msgs::Point &sourcePosition, const geometry_msgs::Point &targetPosition, double sourceRotationBase, double targetRotationBase) |
| nav_msgs::Path | getNavigationPath (const geometry_msgs::Point &sourcePosition, const geometry_msgs::Point &targetPosition) |
| float | getPTU_PanMovementCosts (const RobotStatePtr &sourceRobotState, const RobotStatePtr &targetRobotState) |
| float | getPTU_TiltMovementCosts (const RobotStatePtr &sourceRobotState, const RobotStatePtr &targetRobotState) |
| geometry_msgs::Pose | getRobotPose () |
| bool | isPoseReachable (const SimpleVector3 &position, const SimpleQuaternion &orientation) |
| bool | isPositionAllowed (const geometry_msgs::Point &position) |
| bool | isPositionReachable (const geometry_msgs::Point &sourcePosition, const geometry_msgs::Point &targetPosition) |
| MILDRobotModel () | |
| constructor of the MILDRobotModel More... | |
| void | setPanAngleLimits (float minAngleDegrees, float maxAngleDegrees) |
| sets the angle limits of the pan angle. More... | |
| void | setRotationAngleLimits (float minAngleDegrees, float maxAngleDegrees) |
| sets the angle limits of the rotation angle. More... | |
| void | setTiltAngleLimits (float minAngleDegrees, float maxAngleDegrees) |
| sets the angle limits of the tilt angle. More... | |
| virtual | ~MILDRobotModel () |
| destructor of the MILDRobotModel More... | |
Public Member Functions inherited from robot_model_services::RobotModel | |
| RobotStatePtr | calculateRobotState (const robot_model_services::SimpleVector3 &position, const robot_model_services::SimpleQuaternion &orientation) |
| calculates the target robot state by assuming the saved current state of the roboter as source state More... | |
| float | getBase_RotationalMovementCosts (const RobotStatePtr &targetRobotState) |
| float | getBase_TranslationalMovementCosts (const RobotStatePtr &targetRobotState) |
| RobotStatePtr | getCurrentRobotState () |
| float | getPTU_PanMovementCosts (const RobotStatePtr &targetRobotState) |
| float | getPTU_TiltMovementCosts (const RobotStatePtr &targetRobotState) |
| RobotModel () | |
| the constructor of the RobotModel object More... | |
| void | setCurrentRobotState (const RobotStatePtr ¤tRobotState) |
| virtual | ~RobotModel () |
| the destructor of the RobotModel object More... | |
Public Attributes | |
| ros::Publisher | vis_pub |
Private Member Functions | |
| double | acosClamped (double value) |
| double | getBaseAngleFromBaseFrame (Eigen::Affine3d &baseFrame) |
| double | getPanAngleFromPanJointPose (Eigen::Affine3d &panJointFrame, MILDRobotStatePtr &robotState) |
| bool | getTiltAngleAndTiltBasePointProjected (Eigen::Vector3d &planeNormal, Eigen::Vector3d &targetViewVector, Eigen::Vector3d &target_view_center_point, double &tilt, Eigen::Vector3d &tilt_base_point_projected) |
| Eigen::Affine3d | getTiltJointFrame (Eigen::Vector3d &planeNormal, Eigen::Vector3d &targetViewVector, Eigen::Vector3d &tilt_base_point) |
| void | resetIKVisualization () |
| bool | setUpTFParameters () |
| void | visualizeCameraPoseCorrection (Eigen::Vector3d &base_point, Eigen::Vector3d &base_orientation, Eigen::Vector3d &pan_joint_point, Eigen::Vector3d &pan_rotated_point, Eigen::Vector3d &tilt_base_point, Eigen::Vector3d &cam_point, Eigen::Vector3d &actual_view_center_point) |
| void | visualizeIKArrow (Eigen::Vector3d &pointStart, Eigen::Vector3d &pointEnd, Eigen::Vector4d &colorRGBA, std::string ns, Eigen::Vector3d &scaleParameters, int id) |
| void | visualizeIKArrowLarge (Eigen::Vector3d &pointStart, Eigen::Vector3d &pointEnd, Eigen::Vector4d &colorRGBA, std::string ns, int id) |
| void | visualizeIKArrowSmall (Eigen::Vector3d &pointStart, Eigen::Vector3d &pointEnd, Eigen::Vector4d &colorRGBA, std::string ns, int id) |
| void | visualizeIKcalculation (Eigen::Vector3d &base_point, Eigen::Vector3d &base_orientation, Eigen::Vector3d &pan_joint_point, Eigen::Vector3d &pan_rotated_point, Eigen::Vector3d &tilt_base_point, Eigen::Vector3d &tilt_base_point_projected, Eigen::Vector3d &cam_point, Eigen::Vector3d &actual_view_center_point) |
| void | visualizeIKCameraTarget (Eigen::Vector3d &target_view_center_point, Eigen::Vector3d &target_camera_point) |
| void | visualizeIKPoint (Eigen::Vector3d &point, Eigen::Vector4d &colorRGBA, std::string ns, int id) |
Private Attributes | |
| Eigen::Affine3d | baseToPanEigen |
| double | h_tilt |
| IKRatingModulePtr | ikRatingModule |
| const unsigned int | IKVisualizationMaximunIterationCount = 6 |
| unsigned int | mIKVisualizationLastIterationCount = 0 |
| float | mInverseKinematicIterationAccuracy |
| double | mnTotalIKTime |
| int | mNumberIKCalls |
| double | mPanAngleOffset |
| unsigned int | mPanAngleSamplingStepsPerIteration |
| double | mTiltAngleOffset |
| double | mViewPointDistance |
| bool | mVisualizeIK |
| Eigen::Affine3d | panToBaseEigen |
| Eigen::Affine3d | panToTiltEigen |
| bool | tfParametersInitialized |
| Eigen::Affine3d | tiltToCameraEigen |
| Eigen::Affine3d | tiltToPanEigen |
| double | viewTriangleXYPlane_sideC |
| double | viewTriangleZPlane_angleAlpha |
| double | viewTriangleZPlane_angleGamma |
| double | viewTriangleZPlane_sideA |
| double | viewTriangleZPlane_sideB |
| double | x_product |
Additional Inherited Members | |
Protected Attributes inherited from robot_model_services::MILDRobotModel | |
| tf::TransformListener | listener |
| DebugHelperPtr | mDebugHelperPtr |
| std::string | mFrameName_map |
| std::string | mFrameName_mild_base |
| std::string | mFrameName_mild_camera_left |
| std::string | mFrameName_mild_camera_mount_link |
| std::string | mFrameName_mild_camera_right |
| std::string | mFrameName_mild_ptu_base_link |
| std::string | mFrameName_mild_ptu_pan_link |
| std::string | mFrameName_mild_ptu_pan_link_rotated |
| std::string | mFrameName_mild_ptu_tilt_link |
| std::string | mFrameName_mild_ptu_tilt_link_rotated |
| MapHelperPtr | mMapHelperPtr |
| float | mOmegaPan |
| float | mOmegaRot |
| float | mOmegaTilt |
| boost::tuple< float, float > | mPanLimits |
| boost::tuple< float, float > | mRotationLimits |
| float | mSigma |
| boost::tuple< float, float > | mTiltLimits |
| ros::NodeHandle | n |
| ros::ServiceClient | navigationCostClient |
| float | speedFactorBaseMove |
| float | speedFactorBaseRot |
| float | speedFactorPTU |
| float | tolerance |
| bool | useGlobalPlanner |
Definition at line 41 of file MILDRobotModelWithExactIK.hpp.
| robot_model_services::MILDRobotModelWithExactIK::MILDRobotModelWithExactIK | ( | ) |
constructor of the MILDRobotModelWithExactIK
Definition at line 54 of file MILDRobotModelWithExactIK.cpp.
|
virtual |
destructor of the MILDRobotModelWithExactIK
Definition at line 116 of file MILDRobotModelWithExactIK.cpp.
|
private |
Helper: Calculates the acos of the value. If value is not within [-1, 1], clamps the value accordingly
| PTUConfig robot_model_services::MILDRobotModelWithExactIK::calculateCameraPoseCorrection | ( | const RobotStatePtr & | sourceRobotState, |
| const SimpleVector3 & | position, | ||
| const SimpleQuaternion & | orientation | ||
| ) |
Calculates the best approximation for the given camera pose from the current base position.
Definition at line 125 of file MILDRobotModelWithExactIK.cpp.
|
virtual |
Calculates the inverse kinematics for the given camera pose.
Implements robot_model_services::RobotModel.
Definition at line 259 of file MILDRobotModelWithExactIK.cpp.
|
private |
Calculates the rotation angle of the base from its pose frame
Definition at line 869 of file MILDRobotModelWithExactIK.cpp.
|
private |
Calculates the optimal pan angle for the given pose of the pan joint
Definition at line 504 of file MILDRobotModelWithExactIK.cpp.
|
private |
Calculates the tilt angle and the projected pose of the tilt joint returns true if successful
Definition at line 430 of file MILDRobotModelWithExactIK.cpp.
|
private |
Calculates the transformation frame of the tilt joint
Definition at line 414 of file MILDRobotModelWithExactIK.cpp.
|
private |
Deletes all visualization markers for the IK calculation
Definition at line 671 of file MILDRobotModelWithExactIK.cpp.
|
private |
Trys to calculate parameters needed for the inverse kinematic using tf transformations
Definition at line 579 of file MILDRobotModelWithExactIK.cpp.
| void robot_model_services::MILDRobotModelWithExactIK::setViewPointDistance | ( | float | viewPointDistance | ) |
Sets the distance between the desired view center point and the camera.
Definition at line 118 of file MILDRobotModelWithExactIK.cpp.
|
private |
Visualizes the output of the CameraPoseCorrection
Definition at line 788 of file MILDRobotModelWithExactIK.cpp.
|
private |
Visualizes the translation between two frames through an arrow
Definition at line 839 of file MILDRobotModelWithExactIK.cpp.
|
private |
Visualizes the translation between two frames through an arrow
Definition at line 833 of file MILDRobotModelWithExactIK.cpp.
|
private |
Visualizes the translation between two frames through an arrow
Definition at line 827 of file MILDRobotModelWithExactIK.cpp.
|
private |
Visualizes the output of the IK calculation
Definition at line 771 of file MILDRobotModelWithExactIK.cpp.
|
private |
Visualizes the IK camera target
Definition at line 765 of file MILDRobotModelWithExactIK.cpp.
|
private |
Visualizes a point for a single frame position
Definition at line 803 of file MILDRobotModelWithExactIK.cpp.
|
private |
Transformation frame from the base-link to the pan-link
Definition at line 88 of file MILDRobotModelWithExactIK.hpp.
|
private |
Height of the tilt axis above ground
Definition at line 57 of file MILDRobotModelWithExactIK.hpp.
|
private |
The rating module for the inverse kinematic sampling
Definition at line 52 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 45 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 64 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 47 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 100 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 99 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 66 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 63 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 65 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 67 of file MILDRobotModelWithExactIK.hpp.
|
private |
Detemines if the IK calculation should be visualized by markers. Turn this off to speed up calculation
Definition at line 72 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 89 of file MILDRobotModelWithExactIK.hpp.
|
private |
Transformation frame from the pan-link to the tilt-link
Definition at line 82 of file MILDRobotModelWithExactIK.hpp.
|
private |
Flag, shows if the tf parameters have already been initialized
Definition at line 96 of file MILDRobotModelWithExactIK.hpp.
|
private |
Transformation frame from the tilted-link to camera left
Definition at line 77 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 83 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 62 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 58 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 59 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 60 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 61 of file MILDRobotModelWithExactIK.hpp.
| ros::Publisher robot_model_services::MILDRobotModelWithExactIK::vis_pub |
Definition at line 188 of file MILDRobotModelWithExactIK.hpp.
|
private |
Definition at line 91 of file MILDRobotModelWithExactIK.hpp.