55 jointType = FIXED_JOINT;
60 isHighGainMode =
false;
63 defaultJointValue = 0.0;
67 Link::Link(
const Link& org)
123 stack<Link*> children;
125 children.push(orgChild);
127 while(!children.empty()){
140 Link* linkToDelete = link;
168 bool removed =
false;
171 Link* prevSibling = 0;
173 if(link == childToRemove){
187 childToRemove->
parent = 0;
200 link->setBodyIter(body);
213 out <<
"Link " <<
name <<
" Link Index = " <<
index <<
", Joint ID = " <<
jointId <<
"\n";
215 out <<
"Joint Type: ";
219 out <<
"Free Joint\n";
222 out <<
"Fixed Joint\n";
225 out <<
"Rotational Joint\n";
226 out <<
"Axis = " <<
a <<
"\n";
229 out <<
"Slide Joint\n";
230 out <<
"Axis = " <<
d <<
"\n";
252 out <<
"b = " <<
b <<
"\n";
253 out <<
"Rs = " <<
Rs <<
"\n";
254 out <<
"c = " <<
c <<
"\n";
255 out <<
"m = " <<
m <<
"\n";
256 out <<
"Ir = " <<
Ir <<
"\n";
257 out <<
"I = " <<
I <<
"\n";
260 out <<
"gearRatio = " <<
gearRatio <<
"\n";
262 out <<
"Jm2 = " <<
Jm2 <<
"\n";
263 out <<
"ulimit = " <<
ulimit <<
"\n";
264 out <<
"llimit = " <<
llimit <<
"\n";
265 out <<
"uvlimit = " <<
uvlimit <<
"\n";
266 out <<
"lvlimit = " <<
lvlimit <<
"\n";
269 out <<
"R = " <<
R <<
"\n";
270 out <<
"p = " <<
p <<
", wc = " <<
wc <<
"\n";
271 out <<
"v = " <<
v <<
", vo = " <<
vo <<
", dvo = " <<
dvo <<
"\n";
272 out <<
"w = " <<
w <<
", dw = " <<
dw <<
"\n";
274 out <<
"u = " <<
u <<
", q = " <<
q <<
", dq = " <<
dq <<
", ddq = " <<
ddq <<
"\n";
276 out <<
"fext = " <<
fext <<
", tauext = " <<
tauext <<
"\n";
278 out <<
"sw = " <<
sw <<
", sv = " <<
sv <<
"\n";
279 out <<
"Ivv = " <<
Ivv <<
"\n";
280 out <<
"Iwv = " <<
Iwv <<
"\n";
281 out <<
"Iww = " <<
Iww <<
"\n";
282 out <<
"cv = " <<
cv <<
", cw = " <<
cw <<
"\n";
283 out <<
"pf = " <<
pf <<
", ptau = " <<
ptau <<
"\n";
284 out <<
"hhv = " <<
hhv <<
", hhw = " <<
hhw <<
"\n";
285 out <<
"uu = " <<
uu <<
", dd = " <<
dd <<
"\n";
315 subIw =
R*
I*
R.transpose();
double Ir
rotor inertia [kg.m^2]
Vector3 ptau
bias force (torque element)
Matrix33 Iwv
bottom left block (transpose of top right block) of the articulated inertia
Vector3 pf
bias force (linear element)
void putInformation(std::ostream &out)
Vector3 fext
external force
Vector3 vo
translation elements of spacial velocity
double ddq
joint acceleration
Vector3 submwc
sum of m x wc of subtree
void addChild(Link *link)
ColdetModelPtr coldetModel
void setBodyIter(Body *body)
png_infop png_charpp name
translational joint (1 dof)
Vector3 w
angular velocity, omega
void calcSubMassCM()
compute sum of m x wc of subtree
friend std::ostream & operator<<(std::ostream &out, hrp::Link &link)
double lvlimit
the lower limit of joint velocities
Vector3 tauext
external torque (around the world origin)
Vector3 dv
linear acceleration
Vector3 b
relative position (parent local)
Matrix33 Rs
relative attitude of the link segment (self local)
Vector3 dvo
derivative of vo
Vector3 dw
derivative of omega
Vector3 cw
dsw * dq (cross velocity term)
double uvlimit
the upper limit of joint velocities
Vector3 cv
dsv * dq (cross velocity term)
Matrix33 I
inertia tensor (self local, around c)
Matrix33 hat(const Vector3 &c)
Vector3 hhv
top block of Ia*s
int jointId
jointId value written in a model file
bool detachChild(Link *link)
double llimit
the lower limit of joint values
Vector3 hhw
bottom bock of Ia*s
Matrix33 Iww
bottm right block of the articulated inertia
void calcSubMassInertia(Matrix33 &subIw)
compute sum of I of subtree
double ulimit
the upper limit of joint values
Vector3 a
rotational joint axis (self local)
Vector3 d
translation joint axis (self local)
double subm
mass of subtree
Vector3 c
center of mass (self local)
double Jm2
Equivalent rotor inertia: n^2*Jm [kg.m^2].
Matrix33 Ivv
top left block of the articulated inertia