hpp-corbaserver  4.15.1
Corba server for Humanoid Path Planner applications
robots.idl
Go to the documentation of this file.
1 // Copyright (C) 2019 by Joseph Mirabel, LAAS-CNRS.
2 //
3 // This file is part of the hpp-corbaserver.
4 //
5 // This software is provided "as is" without warranty of any kind,
6 // either expressed or implied, including but not limited to the
7 // implied warranties of fitness for a particular purpose.
8 //
9 // See the COPYING file for more information.
10 
11 #ifndef HPP_PINOCCHIO_ROBOTS_IDL
12 #define HPP_PINOCCHIO_ROBOTS_IDL
13 #include <hpp/common.idl>
14 
15 module hpp
16 {
17  module pinocchio_idl {
19  {
21 
22  void compute () raises (Error);
23  floatSeq com () raises (Error);
24  value_type mass () raises (Error);
25  floatSeqSeq jacobian () raises (Error);
26  };
27 
28  interface Device
29  {
31 
32  string name () raises (Error);
33 
34  floatSeq neutralConfiguration () raises (Error);
35 
36  void integrate(in floatSeq config_in, in floatSeq velocity, out floatSeq result) raises (Error);
37  //* hpp::pinocchio::DevicePtr_t d = getT();
38  //* hpp::pinocchio::Configuration_t res (d->configSize());
39  //* hpp::pinocchio::integrate<false, hpp::pinocchio::DefaultLieGroupMap> (d,
40  //* ::hpp::corbaServer::floatSeqToVector(config_in, d->configSize()),
41  //* ::hpp::corbaServer::floatSeqToVector(velocity , d->numberDof()),
42  //* res);
43  //* result = ::hpp::corbaServer::vectorToFloatSeq (res);
44 
45  void difference(in floatSeq q1, in floatSeq q2, out floatSeq result) raises (Error);
46  //* hpp::pinocchio::DevicePtr_t d = getT();
47  //* hpp::pinocchio::Configuration_t res (d->numberDof());
48  //* hpp::pinocchio::difference<hpp::pinocchio::DefaultLieGroupMap> (d,
49  //* ::hpp::corbaServer::floatSeqToVector(q1, d->configSize()),
50  //* ::hpp::corbaServer::floatSeqToVector(q2, d->configSize()),
51  //* res);
52  //* result = ::hpp::corbaServer::vectorToFloatSeq (res);
53 
54  void interpolate(in floatSeq q1, in floatSeq q2, in float u, out floatSeq result) raises (Error);
55  //* hpp::pinocchio::DevicePtr_t d = getT();
56  //* hpp::pinocchio::Configuration_t res (d->configSize());
57  //* hpp::pinocchio::interpolate<hpp::pinocchio::DefaultLieGroupMap> (d,
58  //* ::hpp::corbaServer::floatSeqToVector(q1, d->configSize()),
59  //* ::hpp::corbaServer::floatSeqToVector(q2, d->configSize()),
60  //* u,
61  //* res);
62  //* result = ::hpp::corbaServer::vectorToFloatSeq (res);
63 
64  void saturate(in floatSeq qin, out floatSeq qout, out boolSeq saturation) raises (Error);
65  //* hpp::pinocchio::DevicePtr_t d = getT();
66  //* hpp::pinocchio::Configuration_t q (::hpp::corbaServer::floatSeqToVector(qin));
67  //* hpp::pinocchio::ArrayXb sat (d->numberDof());
68  //* hpp::pinocchio::saturate (d, q, sat);
69  //* qout = ::hpp::corbaServer::vectorToFloatSeq (q);
70  //* saturation = ::hpp::corbaServer::toBoolSeq(sat.data(), sat.data()+sat.size());
71 
72  void replaceGeometryByConvexHull(in Names_t geometryNames) raises (Error);
73  //* hpp::pinocchio::DevicePtr_t d = getT();
74  //* hpp::pinocchio::replaceGeometryByConvexHull(d->geomModel(),
75  //* ::hpp::corbaServer::toStrings<std::vector<std::string> >(geometryNames));
76  //* d->createGeomData();
77 
78  floatSeq getCurrentConfiguration () raises (Error);
79  //->currentConfiguration
80 
81  boolean setCurrentConfiguration (in floatSeq configuration) raises (Error);
82  //->currentConfiguration
83 
84  void computeForwardKinematics() raises (Error);
85 
86  void computeFramesForwardKinematics () raises (Error);
87 
88  void updateGeometryPlacements () raises (Error);
89 
90  frame_index getFrameByName (in string name) raises (Error);
91  //* return (frame_index) getT()->getFrameByName(name).index();
92 
93  Transform_ getFramePosition (in frame_index frame_id) raises (Error);
94  //* if (getT()->model().nframes <= (int)frame_id) throw hpp::Error("Index out of range");
95  //* hpp::pinocchio::Frame frame(getT(), frame_id);
96  //* return hpp::corbaServer::toHppTransform(frame.currentTransformation());
97 
98  floatSeqSeq getFrameJacobian (in frame_index frame_id) raises (Error);
99  //* if (getT()->model().nframes <= (int)frame_id) throw hpp::Error("Index out of range");
100  //* if (!(getT()->computationFlag() & hpp::pinocchio::JACOBIAN))
101  //* throw hpp::Error("Invalid computation flags");
102  //* hpp::pinocchio::Frame frame(getT(), frame_id);
103  //* return hpp::corbaServer::matrixToFloatSeqSeq(frame.jacobian());
104 
106  void removeJoints(in Names_t joints, in floatSeq refConfig) raises (Error);
107  };
108 
109  interface CollisionObject {
111  }; // interface CollisionObject
112 
113  }; // module pinocchio_idl
114 }; // module hpp
115 //* #include <hpp/pinocchio/device.hh>
116 //* #include <hpp/pinocchio/collision-object.hh>
117 //* #include <hpp/pinocchio/configuration.hh>
118 //* #include <hpp/pinocchio/liegroup.hh>
119 //* #include <hpp/pinocchio/center-of-mass-computation.hh>
120 
121 #endif // HPP_CORE_PATHS_IDL
#define HPP_EXPOSE_MEMORY_DEALLOCATION(ErrorType)
Definition: common.idl:14
Definition: robots.idl:28
Implement CORBA interface `‘Obstacle’&#39;.
Definition: client.hh:46
double value_type
Definition: common.idl:18
Definition: robots.idl:109
Corba exception travelling through the Corba channel.
Definition: common.idl:26
unsigned long frame_index
Definition: common.idl:20
::CORBA::Double Transform_[7]
Definition: common-idl.hh:915
Definition: common-idl.hh:78
Definition: common-idl.hh:803
Definition: common-idl.hh:347
Definition: common-idl.hh:689