00001 /****************************************************************************** 00002 * This file is part of the KDL project * 00003 * * 00004 * (C) 2010 Ruben Smits * 00005 * 2010 Steven Bellens * 00006 * ruben.smits@mech.kuleuven.be * 00007 * steven.bellens@mech.kuleuven.be * 00008 * Department of Mechanical Engineering, * 00009 * Katholieke Universiteit Leuven, Belgium. * 00010 * * 00011 * You may redistribute this software and/or modify it under either the * 00012 * terms of the GNU Lesser General Public License version 2.1 (LGPLv2.1 * 00013 * <http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html>) or (at your * 00014 * discretion) of the Modified BSD License: * 00015 * Redistribution and use in source and binary forms, with or without * 00016 * modification, are permitted provided that the following conditions * 00017 * are met: * 00018 * 1. Redistributions of source code must retain the above copyright * 00019 * notice, this list of conditions and the following disclaimer. * 00020 * 2. Redistributions in binary form must reproduce the above copyright * 00021 * notice, this list of conditions and the following disclaimer in the * 00022 * documentation and/or other materials provided with the distribution. * 00023 * 3. The name of the author may not be used to endorse or promote * 00024 * products derived from this software without specific prior written * 00025 * permission. * 00026 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * 00027 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * 00028 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * 00029 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,* 00030 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * 00031 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * 00032 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * 00033 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * 00034 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * 00035 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * 00036 * POSSIBILITY OF SUCH DAMAGE. * 00037 * * 00038 *******************************************************************************/ 00039 /* @Description: 00040 * @brief KDL typekit for Orocos RTT 00041 * @Author: Ruben Smits, Steven Bellens 00042 */ 00043 00044 #ifndef JOINTPROPERTIES_HPP 00045 #define JOINTPROPERTIES_HPP 00046 00047 #include <kdl/joint.hpp> 00048 #include <kdl/segment.hpp> 00049 #include <kdl/kinfam_io.hpp> 00050 #include <kdl/jacobian.hpp> 00051 #include <kdl/jntarray.hpp> 00052 00053 #include <rtt/Property.hpp> 00054 #include <rtt/PropertyBag.hpp> 00055 #include <rtt/types/TemplateTypeInfo.hpp> 00056 00057 namespace RTT 00058 { 00059 using namespace KDL; 00060 00061 void decomposeProperty(const Joint &joint, PropertyBag& target); 00062 bool composeProperty(const PropertyBag& bag, Joint &joint); 00063 00064 void decomposeProperty(const Segment &segment, PropertyBag& target); 00065 bool composeProperty(const PropertyBag& bag, Segment &segment); 00066 00067 void decomposeProperty(const Chain &chain, PropertyBag& target); 00068 bool composeProperty(const PropertyBag& bag, Chain &chain); 00069 00070 void decomposeProperty(const JntArray &jntarray, PropertyBag& target); 00071 bool composeProperty(const PropertyBag& bag, JntArray &jntarray); 00072 00073 void decomposeProperty(const Jacobian &jacobian, PropertyBag& target); 00074 bool composeProperty(const PropertyBag& bag, Jacobian &jacobian); 00075 00076 } 00077 #endif