1 #ifndef _ROBOTFRAMETRANSFORMATIONS_ROBOTFRAMETRANSFORMATIONS_HPP_ 2 #define _ROBOTFRAMETRANSFORMATIONS_ROBOTFRAMETRANSFORMATIONS_HPP_ 7 #include <Eigen/Geometry> 8 #include "base/samples/Joints.hpp" 9 #include "base/samples/RigidBodyState.hpp" 10 #include "kdl/tree.hpp" 12 template<
typename F,
typename T>
15 for(
typename std::map<F,T>::iterator it = m.begin(); it != m.end(); ++it) {
16 v.push_back(it->first);
21 template<
typename F,
typename T>
24 for(
typename std::map<F,T>::iterator it = m.begin(); it != m.end(); ++it) {
25 v.push_back(it->second);
32 return base::isInfinity(val) || base::isNaN(val);
35 inline void convert(
const KDL::Frame& from, base::Pose& to){
37 from.M.GetQuaternion(x,y,z,w);
38 to.orientation.x() = x;
39 to.orientation.y() = y;
40 to.orientation.z() = z;
41 to.orientation.w() = w;
43 to.position.x() = from.p.x();
44 to.position.y() = from.p.y();
45 to.position.z() = from.p.z();
48 inline void convert(
const KDL::Frame& from, base::samples::RigidBodyState& to){
75 void set_blacklist(
const std::vector<std::string>& blacklist);
86 void update(
const base::samples::Joints& joints);
93 bool get_all_transforms(std::vector<base::samples::RigidBodyState>& transforms,
bool keep_content=
false);
102 bool knownJoint(
const std::string& link_name);
116 KDL::SegmentMap::const_iterator elem =
kdl_tree_.getSegment(segment_name);
117 if(elem ==
kdl_tree_.getSegments().end())
118 throw(std::runtime_error(segment_name));
120 #ifdef KDL_USE_NEW_TREE_INTERFACE 121 return *(elem->second.get());
132 std::map<std::string, std::string>::iterator it;
135 throw(std::runtime_error(joint_name));
165 std::string root_name =
kdl_tree_.getRootSegment()->first;
166 if(seg_name == root_name)
170 #ifdef KDL_USE_NEW_TREE_INTERFACE 171 return elem.parent->second->segment.getName();
173 return elem.parent->second.segment.getName();
182 return joint.getType() == KDL::Joint::None;
186 return is_fixed(segment.getJoint());
215 #endif // _ROBOTFRAMETRANSFORMATIONS_ROBOTFRAMETRANSFORMATIONS_HPP_ std::vector< T > extract_values(std::map< F, T > m)
Definition: RobotFrames.hpp:22
void convert(const KDL::Frame &from, base::Pose &to)
Definition: RobotFrames.hpp:35
std::vector< F > extract_keys(std::map< F, T > m)
Definition: RobotFrames.hpp:13
Definition: RobotFrames.cpp:7
bool is_invalid(T val)
Definition: RobotFrames.hpp:31