KrisLibrary  1.0.0
JointStructure.h
1 #ifndef ROBOTICS_JOINT_STRUCTURE
2 #define ROBOTICS_JOINT_STRUCTURE
3 
4 #include "RobotKinematics3D.h"
5 #include "IK.h"
6 #include "WorkspaceBound.h"
7 using namespace std;
8 
9 
31 {
32  JointStructure(const RobotKinematics3D& robot);
33 
34  void Init();
35  bool IsFeasible() const;
36  void SolveWorkspaceBounds(const IKGoal& constraint);
37  void IntersectWorkspaceBounds(const IKGoal& constraint);
38  void SolveWorkspaceBounds(const vector<IKGoal>& constraints);
40  void SolveWorkspaceBounds(int link0);
41  void IntersectWorkspaceBounds(int link0);
43  void SolveRootBounds();
44  void IntersectRootBounds();
45 
48  void SolveBoundsIter(int link,int parent);
49  void GetLinkWorkspaceBounds(vector<Real>& bounds) const;
50 
52  void Expand(int n,int p);
53  Real GetJointDist(int link1, int link2) const;
54 
55  static void SetInitialBounds(WorkspaceBound& b,const IKGoal& c,const Vector3& plocal);
56 
57  const RobotKinematics3D& robot;
58  vector<vector<int> > children;
59  vector<vector<Vector3> > linkPoints;
60 
61  vector<WorkspaceBound> bounds;
62  vector<vector<WorkspaceBound> > pointBounds;
63  //temp
64  vector<bool> reached;
65 };
66 
67 #endif
A 3D vector class.
Definition: math3d/primitives.h:136
Definition: rayprimitives.h:132
vector< vector< WorkspaceBound > > pointBounds
pointBounds[i][j] bounds linkPoints[i][j]
Definition: JointStructure.h:62
Bounds the workspace of a robot linkage with a simple bound.
Definition: WorkspaceBound.h:95
A structure defining a link&#39;s desired configuration for IK.
Definition: IK.h:14
vector< vector< Vector3 > > linkPoints
any other points on links
Definition: JointStructure.h:59
Class defining kinematics of a robot, and commonly used functions.
Definition: RobotKinematics3D.h:33
vector< WorkspaceBound > bounds
bound[i] bounds joint i
Definition: JointStructure.h:61
Calculates workspace bounds for a robot with constrained links.
Definition: JointStructure.h:30