DARTTypes.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014-2015 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 
18 #ifndef _GAZEBO_DARTTYPES_HH_
19 #define _GAZEBO_DARTTYPES_HH_
20 
21 #include <boost/shared_ptr.hpp>
22 #include "gazebo/math/Pose.hh"
24 #include "gazebo/util/system.hh"
25 
30 namespace gazebo
31 {
32  namespace physics
33  {
34  class DARTPhysics;
35  class DARTModel;
36  class DARTLink;
37  class DARTJoint;
38  class DARTCollision;
39  class DARTRayShape;
40 
41  typedef boost::shared_ptr<DARTPhysics> DARTPhysicsPtr;
42  typedef boost::shared_ptr<DARTModel> DARTModelPtr;
43  typedef boost::shared_ptr<DARTLink> DARTLinkPtr;
44  typedef boost::shared_ptr<DARTJoint> DARTJointPtr;
45  typedef boost::shared_ptr<DARTCollision> DARTCollisionPtr;
46  typedef boost::shared_ptr<DARTRayShape> DARTRayShapePtr;
47 
50 
55  {
57  public: static Eigen::Vector3d ConvVec3(const math::Vector3 &_vec3)
58  {
59  return Eigen::Vector3d(_vec3.x, _vec3.y, _vec3.z);
60  }
61 
63  public: static math::Vector3 ConvVec3(const Eigen::Vector3d &_vec3)
64  {
65  return math::Vector3(_vec3.x(), _vec3.y(), _vec3.z());
66  }
67 
69  public: static Eigen::Quaterniond ConvQuat(const math::Quaternion &_quat)
70  {
71  return Eigen::Quaterniond(_quat.w, _quat.x, _quat.y, _quat.z);
72  }
73 
75  public: static math::Quaternion ConvQuat(const Eigen::Quaterniond &_quat)
76  {
77  return math::Quaternion(_quat.w(), _quat.x(), _quat.y(), _quat.z());
78  }
79 
81  public: static Eigen::Isometry3d ConvPose(const math::Pose &_pose)
82  {
83  // Below line doesn't work with 'libeigen3-dev is 3.0.5-1'
84  // return Eigen::Translation3d(ConvVec3(_pose.pos)) *
85  // ConvQuat(_pose.rot);
86 
87  Eigen::Isometry3d res;
88 
89  res.translation() = ConvVec3(_pose.pos);
90  res.linear() = Eigen::Matrix3d(ConvQuat(_pose.rot));
91 
92  return res;
93  }
94 
96  public: static math::Pose ConvPose(const Eigen::Isometry3d &_T)
97  {
98  math::Pose pose;
99  pose.pos = ConvVec3(_T.translation());
100  pose.rot = ConvQuat(Eigen::Quaterniond(_T.linear()));
101  return pose;
102  }
103  };
104  }
105 }
106 
107 #endif
static math::Vector3 ConvVec3(const Eigen::Vector3d &_vec3)
Definition: DARTTypes.hh:63
double z
Attributes of the quaternion.
Definition: Quaternion.hh:364
Encapsulates a position and rotation in three space.
Definition: Pose.hh:40
The Vector3 class represents the generic vector containing 3 elements.
Definition: Vector3.hh:43
boost::shared_ptr< DARTPhysics > DARTPhysicsPtr
Definition: DARTTypes.hh:39
double x
X location.
Definition: Vector3.hh:302
static Eigen::Quaterniond ConvQuat(const math::Quaternion &_quat)
Definition: DARTTypes.hh:69
static math::Pose ConvPose(const Eigen::Isometry3d &_T)
Definition: DARTTypes.hh:96
double z
Z location.
Definition: Vector3.hh:308
static math::Quaternion ConvQuat(const Eigen::Quaterniond &_quat)
Definition: DARTTypes.hh:75
double w
Attributes of the quaternion.
Definition: Quaternion.hh:355
boost::shared_ptr< DARTModel > DARTModelPtr
Definition: DARTTypes.hh:42
boost::shared_ptr< DARTLink > DARTLinkPtr
Definition: DARTTypes.hh:43
Vector3 pos
The position.
Definition: Pose.hh:243
Ray collision.
Definition: DARTRayShape.hh:37
A quaternion class.
Definition: Quaternion.hh:41
Quaternion rot
The rotation.
Definition: Pose.hh:246
double y
Attributes of the quaternion.
Definition: Quaternion.hh:361
static Eigen::Isometry3d ConvPose(const math::Pose &_pose)
Definition: DARTTypes.hh:81
double x
Attributes of the quaternion.
Definition: Quaternion.hh:358
static Eigen::Vector3d ConvVec3(const math::Vector3 &_vec3)
Definition: DARTTypes.hh:57
boost::shared_ptr< DARTCollision > DARTCollisionPtr
Definition: DARTTypes.hh:45
boost::shared_ptr< DARTJoint > DARTJointPtr
Definition: DARTTypes.hh:44
A set of functions for converting between the math types used by gazebo and dart. ...
Definition: DARTTypes.hh:54
#define GAZEBO_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system.hh:48
double y
Y location.
Definition: Vector3.hh:305
boost::shared_ptr< DARTRayShape > DARTRayShapePtr
Definition: DARTTypes.hh:46