Choreonoid
1.8
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
w
Variables
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
p
q
r
s
t
v
w
z
Enumerations
Enumerator
a
b
c
d
f
g
i
k
l
m
n
p
s
t
u
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
z
Typedefs
a
b
c
d
e
f
g
i
l
n
p
r
s
t
u
v
Enumerations
a
b
c
d
e
f
h
i
j
l
m
n
o
p
r
s
t
u
v
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Properties
Related Functions
b
c
d
e
f
g
h
i
j
l
m
o
p
r
s
t
v
w
y
Files
File List
File Members
All
Functions
Variables
Macros
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
Body
BodyMotionPoseProvider.h
Go to the documentation of this file.
1
6
#ifndef CNOID_BODY_BODY_MOTION_POSE_PROVIDER_H
7
#define CNOID_BODY_BODY_MOTION_POSE_PROVIDER_H
8
9
#include "
Body.h
"
10
#include "
PoseProvider.h
"
11
#include "
BodyMotion.h
"
12
#include "
ZMPSeq.h
"
13
#include <cnoid/MultiSE3MatrixSeq>
14
#include "exportdecl.h"
15
16
namespace
cnoid
{
17
18
class
Link;
19
20
class
JointPath;
21
22
class
CNOID_EXPORT
BodyMotionPoseProvider
:
public
PoseProvider
23
{
24
public
:
25
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
26
27
BodyMotionPoseProvider
();
28
BodyMotionPoseProvider
(
Body
* body, std::shared_ptr<BodyMotion> motion);
29
30
void
initialize(
Body
* body, std::shared_ptr<BodyMotion> motion);
31
32
bool
updateMotion();
33
34
virtual
Body
* body()
const
;
35
virtual
double
beginningTime()
const
;
36
virtual
double
endingTime()
const
;
37
virtual
bool
seek(
double
time);
38
virtual
bool
seek(
double
time,
int
waistLinkIndex,
const
Vector3
& waistTranslation);
39
virtual
int
baseLinkIndex()
const
;
40
virtual
bool
getBaseLinkPosition(
Isometry3
& out_T)
const
;
41
virtual
void
getJointPositions(std::vector<stdx::optional<double>>& out_q)
const
;
42
virtual
stdx::optional<Vector3> ZMP()
const
;
43
44
private
:
45
BodyPtr
body_;
46
std::shared_ptr<BodyMotion> motion;
47
std::shared_ptr<ZMPSeq> zmpSeq;
48
int
minNumJoints;
49
std::vector<Link*> footLinks;
50
std::vector<std::shared_ptr<JointPath>> ikPaths;
51
std::shared_ptr<MultiSE3MatrixSeq> footLinkPositions;
52
std::vector<double> qTranslated;
53
Isometry3
T_waist;
54
Vector3
ZMP_;
55
56
bool
seek(
double
time,
int
waistLinkIndex,
const
Vector3
& waistTranslation,
bool
applyWaistTranslation);
57
};
58
59
}
60
61
#endif
cnoid::Vector3
Eigen::Vector3d Vector3
Definition:
EigenTypes.h:57
cnoid::Isometry3
Eigen::Isometry3d Isometry3
Definition:
EigenTypes.h:73
PoseProvider.h
cnoid::PoseProvider
Definition:
PoseProvider.h:16
cnoid::ref_ptr< Body >
cnoid::BodyMotionPoseProvider
Definition:
BodyMotionPoseProvider.h:22
cnoid
Definition:
AbstractSceneLoader.h:11
ZMPSeq.h
BodyMotion.h
Body.h
cnoid::Body
Definition:
Body.h:28
Generated by
1.8.17