Blender V4.3
Distance.hpp
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2009 Ruben Smits
2 *
3 * SPDX-License-Identifier: LGPL-2.1-or-later */
4
9#ifndef DISTANCE_HPP_
10#define DISTANCE_HPP_
11
12#include "ConstraintSet.hpp"
13#include "kdl/chain.hpp"
16
17namespace iTaSC
18{
19
21{
22protected:
23 virtual void updateKinematics(const Timestamp& timestamp);
24 virtual void pushCache(const Timestamp& timestamp);
25 virtual void updateJacobian();
26 virtual bool initialise(Frame& init_pose);
27 virtual void initCache(Cache *_cache);
28 virtual void updateControlOutput(const Timestamp& timestamp);
29 virtual bool closeLoop();
30
31public:
32 enum ID {
34 };
35 Distance(double armlength=1.0, double accuracy=1e-6, unsigned int maximum_iterations=100);
36 virtual ~Distance();
37
38 virtual bool setControlParameters(struct ConstraintValues* _values, unsigned int _nvalues, double timestep);
39 virtual const ConstraintValues* getControlParameters(unsigned int* _nvalues);
40
41private:
42 bool computeChi(Frame& pose);
43 KDL::Chain m_chain;
45 KDL::ChainJntToJacSolver* m_jacsolver;
46 KDL::JntArray m_chiKdl;
47 KDL::Jacobian m_jac;
49 struct ConstraintValues m_values;
50 Cache* m_cache;
51 int m_distCCh;
52 CacheTS m_distCTs;
53 double m_maxerror;
54
55 void pushDist(CacheTS timestamp);
56 bool popDist(CacheTS timestamp);
57
58 double m_alpha,m_yddot,m_yd,m_nextyd,m_nextyddot,m_K,m_tolerance;
59};
60
61}
62
63#endif /* DISTANCE_HPP_ */
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
btAlignedObjectArray< btScalar > m_data
Class to calculate the jacobian of a general KDL::Chain, it is used by other solvers....
This class encapsulates a serial kinematic interconnection structure. It is build out of segments.
Definition chain.hpp:36
represents a frame transformation in 3D space (rotation + translation)
Definition frames.hpp:526
virtual void initCache(Cache *_cache)
Definition Distance.cpp:116
virtual void updateKinematics(const Timestamp &timestamp)
Definition Distance.cpp:170
Distance(double armlength=1.0, double accuracy=1e-6, unsigned int maximum_iterations=100)
Definition Distance.cpp:19
virtual bool setControlParameters(struct ConstraintValues *_values, unsigned int _nvalues, double timestep)
Definition Distance.cpp:200
virtual void updateControlOutput(const Timestamp &timestamp)
Definition Distance.cpp:292
virtual bool closeLoop()
Definition Distance.cpp:107
virtual void updateJacobian()
Definition Distance.cpp:187
virtual void pushCache(const Timestamp &timestamp)
Definition Distance.cpp:164
virtual bool initialise(Frame &init_pose)
Definition Distance.cpp:97
virtual ~Distance()
Definition Distance.cpp:52
virtual const ConstraintValues * getControlParameters(unsigned int *_nvalues)
Definition Distance.cpp:279
unsigned int CacheTS
Definition Cache.hpp:33
Definition DNA_ID.h:413