<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>KatanaNativeInterface: include/KNI_LM/lmBase.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">KatanaNativeInterface <span id="projectnumber">$VERSION$</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('lmBase_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <h1>lmBase.h</h1> </div> </div> <div class="contents"> <a href="lmBase_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment"> * Katana Native Interface - A C++ interface to the robot arm Katana.</span> <a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2005 Neuronics AG</span> <a name="l00004"></a>00004 <span class="comment"> * Check out the AUTHORS file for detailed contact information.</span> <a name="l00005"></a>00005 <span class="comment"> *</span> <a name="l00006"></a>00006 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span> <a name="l00007"></a>00007 <span class="comment"> * it under the terms of the GNU General Public License as published by</span> <a name="l00008"></a>00008 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span> <a name="l00009"></a>00009 <span class="comment"> * (at your option) any later version.</span> <a name="l00010"></a>00010 <span class="comment"> *</span> <a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span> <a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> <a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span> <a name="l00015"></a>00015 <span class="comment"> *</span> <a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License</span> <a name="l00017"></a>00017 <span class="comment"> * along with this program; if not, write to the Free Software</span> <a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span> <a name="l00019"></a>00019 <span class="comment"> */</span> <a name="l00020"></a>00020 <a name="l00021"></a>00021 <span class="comment">/********************************************************************************/</span> <a name="l00022"></a>00022 <span class="preprocessor">#ifndef _LMBASE_H_</span> <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define _LMBASE_H_</span> <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="comment">/********************************************************************************/</span> <a name="l00025"></a>00025 <a name="l00026"></a>00026 <span class="preprocessor">#include "KNI_InvKin/ikBase.h"</span> <a name="l00027"></a>00027 <span class="preprocessor">#include "common/exception.h"</span> <a name="l00028"></a>00028 <span class="preprocessor">#include <vector></span> <a name="l00029"></a>00029 <span class="comment">/********************************************************************************/</span> <a name="l00030"></a>00030 <a name="l00031"></a>00031 <a name="l00032"></a>00032 <span class="comment">//------------------------------------------------------------------------------//</span> <a name="l00033"></a>00033 <a name="l00036"></a><a class="code" href="structTLM__points.html">00036</a> <span class="keyword">struct </span><a class="code" href="structTLM__points.html" title="[LM] linear movement: points to be interpolated">TLM_points</a> { <a name="l00037"></a><a class="code" href="structTLM__points.html#a004614637972a50aa7ce1afa483957e6">00037</a> <span class="keywordtype">double</span> <a class="code" href="structTLM__points.html#a004614637972a50aa7ce1afa483957e6" title="position of one point to be interpolated (% refer to the total trajectory)">pos</a>; <a name="l00038"></a><a class="code" href="structTLM__points.html#adbdbdbe15589d3eda194c87242ee77cc">00038</a> <span class="keywordtype">double</span> <a class="code" href="structTLM__points.html#adbdbdbe15589d3eda194c87242ee77cc" title="time that it takes to reach the point (from starting position)">time</a>; <a name="l00039"></a>00039 }; <a name="l00040"></a>00040 <a name="l00043"></a><a class="code" href="structTLMtrajectory.html">00043</a> <span class="keyword">struct </span><a class="code" href="structTLMtrajectory.html" title="[LM] linear movement: parameters">TLMtrajectory</a> { <a name="l00044"></a><a class="code" href="structTLMtrajectory.html#a8fb90fef05fc5254b7a0246e37cbad98">00044</a> <span class="keywordtype">double</span>* <a class="code" href="structTLMtrajectory.html#a8fb90fef05fc5254b7a0246e37cbad98" title="current position in cartesian units">arr_actpos</a>; <a name="l00045"></a><a class="code" href="structTLMtrajectory.html#abb353748559a2e20be5f74b094919174">00045</a> <span class="keywordtype">double</span>* <a class="code" href="structTLMtrajectory.html#abb353748559a2e20be5f74b094919174" title="target position in cartesian units">arr_tarpos</a>; <a name="l00046"></a><a class="code" href="structTLMtrajectory.html#a11c224ba77d4224876bbad462f3dbd4e">00046</a> <span class="keywordtype">int</span> <a class="code" href="structTLMtrajectory.html#a11c224ba77d4224876bbad462f3dbd4e" title="distance between target and current position">distance</a>; <a name="l00047"></a><a class="code" href="structTLMtrajectory.html#a7664e230454116e4d078244ddc0490b6">00047</a> <span class="keywordtype">double</span> <a class="code" href="structTLMtrajectory.html#a7664e230454116e4d078244ddc0490b6" title="time that it takes from current position to target position">time</a>; <a name="l00048"></a><a class="code" href="structTLMtrajectory.html#afd9fcf1b93c28dc3f1ba9d14a35ba7fc">00048</a> <span class="keywordtype">double</span> <a class="code" href="structTLMtrajectory.html#afd9fcf1b93c28dc3f1ba9d14a35ba7fc" title="time elapsed between one step and the next one">dt</a>; <a name="l00049"></a><a class="code" href="structTLMtrajectory.html#a09a91ed807e236009df13f9516b11859">00049</a> <span class="keywordtype">short</span> <a class="code" href="structTLMtrajectory.html#a09a91ed807e236009df13f9516b11859" title="number of points to interpolate">number_of_points</a>; <a name="l00050"></a><a class="code" href="structTLMtrajectory.html#a41907b1695851704125abc5a344345c0">00050</a> <a class="code" href="structTLM__points.html" title="[LM] linear movement: points to be interpolated">TLM_points</a>* <a class="code" href="structTLMtrajectory.html#a41907b1695851704125abc5a344345c0" title="points to be interpolated">points</a>; <a name="l00051"></a><a class="code" href="structTLMtrajectory.html#a3274c3900a7e4fd43170c469f4915d95">00051</a> <span class="keywordtype">short</span>** <a class="code" href="structTLMtrajectory.html#a3274c3900a7e4fd43170c469f4915d95" title="motor position in each point to be interpolated">motors</a>; <a name="l00052"></a><a class="code" href="structTLMtrajectory.html#afdae6f2f8778c2a59eca2e59c1f3316e">00052</a> <span class="keywordtype">double</span>** <a class="code" href="structTLMtrajectory.html#afdae6f2f8778c2a59eca2e59c1f3316e" title="second order derivatives of the polinomes that join the points, in the points">derivatives</a>; <a name="l00053"></a><a class="code" href="structTLMtrajectory.html#a1e90c8c6472540cedfd734813f0b33b2">00053</a> <span class="keywordtype">double</span>*** <a class="code" href="structTLMtrajectory.html#a1e90c8c6472540cedfd734813f0b33b2" title="coefficients of the polinomes that join the points">coefficients</a>; <a name="l00054"></a><a class="code" href="structTLMtrajectory.html#a7a6a1bdd1987bfa0f3e6a09171fde749">00054</a> <span class="keywordtype">short</span>*** <a class="code" href="structTLMtrajectory.html#a7a6a1bdd1987bfa0f3e6a09171fde749" title="parameters to be sent in the command &#39;L&#39; packet">parameters</a>; <a name="l00055"></a>00055 }; <a name="l00056"></a>00056 <a name="l00059"></a><a class="code" href="structTMLMIP.html">00059</a> <span class="keyword">struct </span><a class="code" href="structTMLMIP.html" title="[LM] Store intermediate targets for multiple linear movements">TMLMIP</a> { <a name="l00060"></a><a class="code" href="structTMLMIP.html#abaf1aa9947f884ad4485cf53cc4a48a5">00060</a> <span class="keywordtype">short</span> <a class="code" href="structTMLMIP.html#abaf1aa9947f884ad4485cf53cc4a48a5" title="current position in cartesian units">mlm_intermediate_pos</a>[5]; <a name="l00061"></a>00061 }; <a name="l00062"></a>00062 <a name="l00063"></a>00063 <a name="l00067"></a><a class="code" href="structTPoint6D.html">00067</a> <span class="keyword">struct </span><a class="code" href="structTPoint6D.html" title="[LMBLEND] Standard coordinates for a point in space">TPoint6D</a> { <a name="l00068"></a><a class="code" href="structTPoint6D.html#ad4eefc51477d79652bfd483f950b8c59">00068</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint6D.html#ad4eefc51477d79652bfd483f950b8c59">X</a>; <a name="l00069"></a><a class="code" href="structTPoint6D.html#a5bfd0137554a2d02b5d75aa19c5d6284">00069</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint6D.html#a5bfd0137554a2d02b5d75aa19c5d6284">Y</a>; <a name="l00070"></a><a class="code" href="structTPoint6D.html#a47724b2cdcdf95d05f697cc93c14c791">00070</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint6D.html#a47724b2cdcdf95d05f697cc93c14c791">Z</a>; <a name="l00071"></a><a class="code" href="structTPoint6D.html#ac2cf6b077dc57a392647fdfb639a7fdd">00071</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint6D.html#ac2cf6b077dc57a392647fdfb639a7fdd">Al</a>; <a name="l00072"></a><a class="code" href="structTPoint6D.html#a8db355fa364b1725d99cc01bf20a240b">00072</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint6D.html#a8db355fa364b1725d99cc01bf20a240b">Be</a>; <a name="l00073"></a><a class="code" href="structTPoint6D.html#a99d7dd9fe682a33373be37f2e5ccd92f">00073</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint6D.html#a99d7dd9fe682a33373be37f2e5ccd92f">Ga</a>; <a name="l00074"></a>00074 }; <a name="l00075"></a>00075 <a name="l00076"></a><a class="code" href="structTPoint3D.html">00076</a> <span class="keyword">struct </span><a class="code" href="structTPoint3D.html">TPoint3D</a> { <a name="l00077"></a><a class="code" href="structTPoint3D.html#ab2c3b00fdffb4782e23a5e879be86ed3">00077</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint3D.html#ab2c3b00fdffb4782e23a5e879be86ed3">X</a>; <a name="l00078"></a><a class="code" href="structTPoint3D.html#a36059462e6639656a1786d078a8047eb">00078</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint3D.html#a36059462e6639656a1786d078a8047eb">Y</a>; <a name="l00079"></a><a class="code" href="structTPoint3D.html#aa2a577d5ccc47ac048a27bc8ccbf9d55">00079</a> <span class="keywordtype">double</span> <a class="code" href="structTPoint3D.html#aa2a577d5ccc47ac048a27bc8ccbf9d55">Z</a>; <a name="l00080"></a>00080 }; <a name="l00081"></a>00081 <a name="l00082"></a>00082 <a name="l00083"></a><a class="code" href="structTBlendtrace.html">00083</a> <span class="keyword">struct </span><a class="code" href="structTBlendtrace.html">TBlendtrace</a> { <a name="l00084"></a><a class="code" href="structTBlendtrace.html#a5ab79acc10d8f9f6b008546ad16fc226">00084</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#a5ab79acc10d8f9f6b008546ad16fc226">p1p2n</a>; <a name="l00085"></a><a class="code" href="structTBlendtrace.html#a126acb81207b43a2e10aeaafd2f45a6d">00085</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#a126acb81207b43a2e10aeaafd2f45a6d">p2p3n</a>; <a name="l00086"></a><a class="code" href="structTBlendtrace.html#a7fe3ca435e90c8417dea1a69cccb7094">00086</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#a7fe3ca435e90c8417dea1a69cccb7094">V1A</a>; <a name="l00087"></a><a class="code" href="structTBlendtrace.html#af919d543b5c5e21cfdf42a5a4b5a9863">00087</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#af919d543b5c5e21cfdf42a5a4b5a9863">V1B</a>; <a name="l00088"></a><a class="code" href="structTBlendtrace.html#a67b4096a17294305706c4a32b92b0386">00088</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#a67b4096a17294305706c4a32b92b0386">P1A</a>; <a name="l00089"></a><a class="code" href="structTBlendtrace.html#ada5a8c5579f419d0064fb094babb304a">00089</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#ada5a8c5579f419d0064fb094babb304a">P1B</a>; <a name="l00090"></a><a class="code" href="structTBlendtrace.html#a74099ebbafb7b373417815ba7a8e93a5">00090</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#a74099ebbafb7b373417815ba7a8e93a5">b1</a>; <a name="l00091"></a><a class="code" href="structTBlendtrace.html#a171f6f091761af9eea750c4dec254a19">00091</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#a171f6f091761af9eea750c4dec254a19">b2</a>; <a name="l00092"></a><a class="code" href="structTBlendtrace.html#ab61f54c9a7e67e6c2cac1724e6bf48d3">00092</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#ab61f54c9a7e67e6c2cac1724e6bf48d3">m1</a>; <a name="l00093"></a><a class="code" href="structTBlendtrace.html#aa0da13208ec834a9958afd4d3dae0530">00093</a> <a class="code" href="structTPoint3D.html">TPoint3D</a> <a class="code" href="structTBlendtrace.html#aa0da13208ec834a9958afd4d3dae0530">m2</a>; <a name="l00094"></a><a class="code" href="structTBlendtrace.html#a6c0fb1cc0bd66d6426f45419c2b0f0b6">00094</a> <span class="keywordtype">double</span> <a class="code" href="structTBlendtrace.html#a6c0fb1cc0bd66d6426f45419c2b0f0b6">tA</a>; <a name="l00095"></a><a class="code" href="structTBlendtrace.html#a0a158a5f86c71466f13015e61ddf8509">00095</a> <span class="keywordtype">double</span> <a class="code" href="structTBlendtrace.html#a0a158a5f86c71466f13015e61ddf8509">tB</a>; <a name="l00096"></a><a class="code" href="structTBlendtrace.html#a9a007c54fab4f82c14c5ac2b8563c011">00096</a> <span class="keywordtype">double</span> <a class="code" href="structTBlendtrace.html#a9a007c54fab4f82c14c5ac2b8563c011">distBA</a>; <a name="l00097"></a>00097 }; <a name="l00098"></a>00098 <a name="l00099"></a><a class="code" href="structTSplinepoint.html">00099</a> <span class="keyword">struct </span><a class="code" href="structTSplinepoint.html">TSplinepoint</a> { <a name="l00100"></a><a class="code" href="structTSplinepoint.html#a2651c919dd9536944471306166675a45">00100</a> <a class="code" href="structTPoint6D.html" title="[LMBLEND] Standard coordinates for a point in space">TPoint6D</a> <a class="code" href="structTSplinepoint.html#a2651c919dd9536944471306166675a45">point</a>; <a name="l00101"></a><a class="code" href="structTSplinepoint.html#a77313405c371bcefb4b34008b5592c6b">00101</a> <span class="keywordtype">double</span> <a class="code" href="structTSplinepoint.html#a77313405c371bcefb4b34008b5592c6b">time</a>; <a name="l00102"></a>00102 }; <a name="l00103"></a>00103 <a name="l00107"></a><a class="code" href="structTBLENDtrajectory.html">00107</a> <span class="keyword">struct </span><a class="code" href="structTBLENDtrajectory.html" title="[LMBLEND] Trajectory points">TBLENDtrajectory</a> { <a name="l00108"></a><a class="code" href="structTBLENDtrajectory.html#aaefa7de23e9f04d8f4953aa7c819471a">00108</a> <a class="code" href="structTPoint6D.html" title="[LMBLEND] Standard coordinates for a point in space">TPoint6D</a>* <a class="code" href="structTBLENDtrajectory.html#aaefa7de23e9f04d8f4953aa7c819471a">referencepoints</a>; <a name="l00109"></a><a class="code" href="structTBLENDtrajectory.html#a634900000f42e8f9cb24bbe3bcebf305">00109</a> <span class="keywordtype">short</span> <a class="code" href="structTBLENDtrajectory.html#a634900000f42e8f9cb24bbe3bcebf305">number_of_referencepoints</a>; <a name="l00110"></a><a class="code" href="structTBLENDtrajectory.html#ac70e69cdf585c3d8d1c4e7b5d44c2172">00110</a> <a class="code" href="structTBlendtrace.html">TBlendtrace</a>* <a class="code" href="structTBLENDtrajectory.html#ac70e69cdf585c3d8d1c4e7b5d44c2172">blendtrace</a>; <a name="l00111"></a><a class="code" href="structTBLENDtrajectory.html#a00eb80b82501d5f72c9287366affd17d">00111</a> <span class="keywordtype">short</span> <a class="code" href="structTBLENDtrajectory.html#a00eb80b82501d5f72c9287366affd17d">number_of_blends</a>; <a name="l00112"></a><a class="code" href="structTBLENDtrajectory.html#a8388ad2ec21066ed7b8cc6e4c62737ed">00112</a> <a class="code" href="structTSplinepoint.html">TSplinepoint</a>* <a class="code" href="structTBLENDtrajectory.html#a8388ad2ec21066ed7b8cc6e4c62737ed">splinepoints</a>; <a name="l00113"></a><a class="code" href="structTBLENDtrajectory.html#a81e661fc624461a3acec416290935319">00113</a> <span class="keywordtype">short</span> <a class="code" href="structTBLENDtrajectory.html#a81e661fc624461a3acec416290935319">number_of_splines</a>; <a name="l00114"></a><a class="code" href="structTBLENDtrajectory.html#aa3a9c5a5c7e71bb19b4421dae1e2e81e">00114</a> <span class="keywordtype">short</span> <a class="code" href="structTBLENDtrajectory.html#aa3a9c5a5c7e71bb19b4421dae1e2e81e">number_of_splinepoints</a>; <a name="l00115"></a><a class="code" href="structTBLENDtrajectory.html#ab8d3c268f3bb888e268e3e2a56852c2e">00115</a> <span class="keywordtype">double</span> <a class="code" href="structTBLENDtrajectory.html#ab8d3c268f3bb888e268e3e2a56852c2e">tEnd</a>; <a name="l00116"></a>00116 <a name="l00117"></a>00117 }; <a name="l00118"></a>00118 <a name="l00119"></a>00119 <span class="comment">//---------------------------------------------------------------------------//</span> <a name="l00120"></a>00120 <a name="l00125"></a>00125 <a name="l00126"></a>00126 <a name="l00129"></a><a class="code" href="classJointSpeedException.html">00129</a> <span class="keyword">class </span><a class="code" href="classJointSpeedException.html" title="Joint speed too high.">JointSpeedException</a> : <span class="keyword">public</span> <a class="code" href="classException.html">Exception</a> { <a name="l00130"></a>00130 <span class="keyword">public</span>: <a name="l00131"></a><a class="code" href="classJointSpeedException.html#abe3426f57f4f635accbf457ad42639eb">00131</a> <a class="code" href="classJointSpeedException.html#abe3426f57f4f635accbf457ad42639eb">JointSpeedException</a>() throw(): <a name="l00132"></a>00132 <a class="code" href="classException.html">Exception</a>("Joint speed too high", -70) {} <a name="l00133"></a>00133 }; <a name="l00134"></a>00134 <a name="l00137"></a><a class="code" href="classWaitParameterException.html">00137</a> <span class="keyword">class </span><a class="code" href="classWaitParameterException.html" title="Wait parameter set to false.">WaitParameterException</a> : <span class="keyword">public</span> <a class="code" href="classException.html">Exception</a> { <a name="l00138"></a>00138 <span class="keyword">public</span>: <a name="l00139"></a><a class="code" href="classWaitParameterException.html#a250c99ced1b868b67428d80eb39fba93">00139</a> <a class="code" href="classWaitParameterException.html#a250c99ced1b868b67428d80eb39fba93">WaitParameterException</a>() throw(): <a name="l00140"></a>00140 <a class="code" href="classException.html">Exception</a>("Wait parameter set to false", -71) {} <a name="l00141"></a>00141 }; <a name="l00142"></a>00142 <a name="l00146"></a>00146 <a name="l00147"></a>00147 <span class="comment">//---------------------------------------------------------------------------//</span> <a name="l00148"></a>00148 <a name="l00153"></a><a class="code" href="classCLMBase.html">00153</a> <span class="keyword">class </span><a class="code" href="dllexport_8h.html#ac90c32dc1ca0e4242af1b3b6ca71443e">DLLDIR_LM</a> <a class="code" href="classCLMBase.html" title="Linear movement Class.">CLMBase</a> : <span class="keyword">public</span> <a class="code" href="classCikBase.html">CikBase</a> { <a name="l00154"></a>00154 <a name="l00155"></a>00155 <span class="keyword">private</span>: <a name="l00156"></a><a class="code" href="classCLMBase.html#a5e3635cf4fe50f0937c2c5841a17feae">00156</a> <span class="keywordtype">double</span> <a class="code" href="classCLMBase.html#a5e3635cf4fe50f0937c2c5841a17feae">_maximumVelocity</a>; <a name="l00157"></a><a class="code" href="classCLMBase.html#a1a012f08b7a5c2d9e0bb40d02863c669">00157</a> <span class="keywordtype">bool</span> <a class="code" href="classCLMBase.html#a1a012f08b7a5c2d9e0bb40d02863c669">_activatePositionController</a>; <a name="l00158"></a><a class="code" href="classCLMBase.html#aa537fa2ef4f3f56265eaf410db7c43be">00158</a> <span class="keywordtype">bool</span> <a class="code" href="classCLMBase.html#aa537fa2ef4f3f56265eaf410db7c43be">_isInitialized</a>; <a name="l00159"></a>00159 <a name="l00160"></a>00160 <a name="l00161"></a><a class="code" href="classCLMBase.html#a8dc3ca0cfbc7b25892bc05d8bd7b33ca">00161</a> <a class="code" href="structTLMtrajectory.html" title="[LM] linear movement: parameters">TLMtrajectory</a> <a class="code" href="classCLMBase.html#a8dc3ca0cfbc7b25892bc05d8bd7b33ca">trajectory</a>; <a name="l00162"></a><a class="code" href="classCLMBase.html#a429d7e9435537e39386e8e3a23d3c1e5">00162</a> <a class="code" href="structTBLENDtrajectory.html" title="[LMBLEND] Trajectory points">TBLENDtrajectory</a> <a class="code" href="classCLMBase.html#a429d7e9435537e39386e8e3a23d3c1e5">blendtrajectory</a>; <a name="l00163"></a>00163 <a name="l00164"></a>00164 <a name="l00165"></a>00165 <a name="l00166"></a>00166 <span class="keywordtype">void</span> fillPoints(<span class="keywordtype">double</span> vmax); <a name="l00167"></a>00167 <span class="keywordtype">void</span> polDeviratives(); <a name="l00168"></a>00168 <span class="keywordtype">void</span> polCoefficients(); <a name="l00169"></a>00169 <a name="l00170"></a>00170 <span class="keywordtype">void</span> calcParameters(<span class="keywordtype">double</span>* arr_actpos, <span class="keywordtype">double</span>* arr_tarpos, <span class="keywordtype">double</span> vmax); <a name="l00171"></a>00171 <a name="l00172"></a>00172 <a name="l00183"></a>00183 <span class="keywordtype">double</span> totalTime(<span class="keywordtype">double</span> distance, <span class="keywordtype">double</span> acc, <span class="keywordtype">double</span> dec, <span class="keywordtype">double</span> vmax); <a name="l00184"></a>00184 <a name="l00196"></a>00196 <span class="keywordtype">double</span> relPosition(<span class="keywordtype">double</span> reltime, <span class="keywordtype">double</span> distance, <span class="keywordtype">double</span> acc, <span class="keywordtype">double</span> dec, <a name="l00197"></a>00197 <span class="keywordtype">double</span> vmax); <a name="l00198"></a>00198 <a name="l00215"></a>00215 <span class="keywordtype">void</span> splineCoefficients(<span class="keywordtype">int</span> steps, <span class="keywordtype">double</span> *timearray, <span class="keywordtype">double</span> *encoderarray, <a name="l00216"></a>00216 <span class="keywordtype">double</span> *arr_p1, <span class="keywordtype">double</span> *arr_p2, <span class="keywordtype">double</span> *arr_p3, <span class="keywordtype">double</span> *arr_p4); <a name="l00217"></a>00217 <a name="l00229"></a>00229 <span class="keywordtype">bool</span> checkJointSpeed(std::vector<int> lastsolution, <a name="l00230"></a>00230 std::vector<int> solution, <span class="keywordtype">double</span> time); <a name="l00231"></a>00231 <a name="l00232"></a>00232 <span class="comment">// TRetBLEND blend_calculate_blendtraces(double amax, double vmax, long tightness);</span> <a name="l00233"></a>00233 <span class="comment">// TRetBLEND blend_fill_splinepoints(double kappa, double amax, double vmax);</span> <a name="l00234"></a>00234 <span class="comment">// double blend_Ivontacc(double tp, double dist, double amax, double vmax);</span> <a name="l00235"></a>00235 <span class="comment">// TRetBLEND blend_Ivontdec(double tp, double dist, double amax, double vmax, double* I);</span> <a name="l00236"></a>00236 <a name="l00237"></a>00237 <span class="keyword">public</span>: <a name="l00238"></a>00238 <a name="l00239"></a><a class="code" href="classCLMBase.html#a97770ffc63896ec86a5b2bb719599ac2">00239</a> <a class="code" href="classCLMBase.html#a97770ffc63896ec86a5b2bb719599ac2">CLMBase</a>() : _maximumVelocity(20), _activatePositionController(true), _isInitialized(false) {} <a name="l00240"></a>00240 <a name="l00244"></a>00244 <span class="keywordtype">void</span> initLM(); <a name="l00245"></a>00245 <a name="l00247"></a>00247 <span class="keywordtype">void</span> movLM(<span class="keywordtype">double</span> X, <span class="keywordtype">double</span> Y, <span class="keywordtype">double</span> Z, <a name="l00248"></a>00248 <span class="keywordtype">double</span> Al, <span class="keywordtype">double</span> Be, <span class="keywordtype">double</span> Ga, <a name="l00249"></a>00249 <span class="keywordtype">bool</span> exactflag, <span class="keywordtype">double</span> vmax, <span class="keywordtype">bool</span> wait=<span class="keyword">true</span>, <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00250"></a>00250 <a name="l00254"></a>00254 <span class="keywordtype">void</span> movLM2PwithL(<span class="keywordtype">double</span> X1, <span class="keywordtype">double</span> Y1, <span class="keywordtype">double</span> Z1, <span class="keywordtype">double</span> Al1, <span class="keywordtype">double</span> Be1, <a name="l00255"></a>00255 <span class="keywordtype">double</span> Ga1, <span class="keywordtype">double</span> X2, <span class="keywordtype">double</span> Y2, <span class="keywordtype">double</span> Z2, <span class="keywordtype">double</span> Al2, <span class="keywordtype">double</span> Be2, <a name="l00256"></a>00256 <span class="keywordtype">double</span> Ga2, <span class="keywordtype">bool</span> exactflag, <span class="keywordtype">double</span> vmax, <span class="keywordtype">bool</span> wait=<span class="keyword">false</span>, <a name="l00257"></a>00257 <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00258"></a>00258 <a name="l00259"></a>00259 <span class="keywordtype">void</span> movLM2P4D(<span class="keywordtype">double</span> X1, <span class="keywordtype">double</span> Y1, <span class="keywordtype">double</span> Z1, <a name="l00260"></a>00260 <span class="keywordtype">double</span> Al1, <span class="keywordtype">double</span> Be1, <span class="keywordtype">double</span> Ga1, <a name="l00261"></a>00261 <span class="keywordtype">double</span> X2, <span class="keywordtype">double</span> Y2, <span class="keywordtype">double</span> Z2, <a name="l00262"></a>00262 <span class="keywordtype">double</span> Al2, <span class="keywordtype">double</span> Be2, <span class="keywordtype">double</span> Ga2, <a name="l00263"></a>00263 <span class="keywordtype">bool</span> exactflag, <span class="keywordtype">double</span> vmax, <span class="keywordtype">bool</span> wait=<span class="keyword">false</span>, <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00264"></a>00264 <a name="l00291"></a>00291 <span class="keywordtype">void</span> movLM2P(<span class="keywordtype">double</span> X1, <span class="keywordtype">double</span> Y1, <span class="keywordtype">double</span> Z1, <span class="keywordtype">double</span> Al1, <span class="keywordtype">double</span> Be1, <a name="l00292"></a>00292 <span class="keywordtype">double</span> Ga1, <span class="keywordtype">double</span> X2, <span class="keywordtype">double</span> Y2, <span class="keywordtype">double</span> Z2, <span class="keywordtype">double</span> Al2, <span class="keywordtype">double</span> Be2, <a name="l00293"></a>00293 <span class="keywordtype">double</span> Ga2, <span class="keywordtype">bool</span> exactflag, <span class="keywordtype">double</span> vmax, <span class="keywordtype">bool</span> wait=<span class="keyword">true</span>, <a name="l00294"></a>00294 <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00295"></a>00295 <a name="l00296"></a>00296 <span class="keywordtype">void</span> setMaximumLinearVelocity(<span class="keywordtype">double</span> maximumVelocity); <a name="l00297"></a>00297 <span class="keywordtype">double</span> getMaximumLinearVelocity() <span class="keyword">const</span>; <a name="l00298"></a>00298 <a name="l00302"></a>00302 <span class="keywordtype">void</span> setActivatePositionController(<span class="keywordtype">bool</span> activate); <a name="l00303"></a>00303 <a name="l00306"></a>00306 <span class="keywordtype">bool</span> getActivatePositionController(); <a name="l00307"></a>00307 <a name="l00309"></a>00309 <span class="keywordtype">void</span> moveRobotLinearTo( <a name="l00310"></a>00310 <span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z, <a name="l00311"></a>00311 <span class="keywordtype">double</span> phi, <span class="keywordtype">double</span> theta, <span class="keywordtype">double</span> psi, <a name="l00312"></a>00312 <span class="keywordtype">bool</span> waitUntilReached = <span class="keyword">true</span>, <a name="l00313"></a>00313 <span class="keywordtype">int</span> waitTimeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00314"></a>00314 <a name="l00319"></a>00319 <span class="keywordtype">void</span> moveRobotLinearTo( <a name="l00320"></a>00320 std::vector<double> coordinates, <a name="l00321"></a>00321 <span class="keywordtype">bool</span> waitUntilReached = <span class="keyword">true</span>, <a name="l00322"></a>00322 <span class="keywordtype">int</span> waitTimeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00323"></a>00323 <a name="l00324"></a>00324 <span class="comment">// TRetBLEND movLMBlend(double X1, double Y1, double Z1, </span> <a name="l00325"></a>00325 <span class="comment">// double Al1, double Be1, double Ga1, </span> <a name="l00326"></a>00326 <span class="comment">// double X2, double Y2, double Z2, </span> <a name="l00327"></a>00327 <span class="comment">// double Al2, double Be2, double Ga2,</span> <a name="l00328"></a>00328 <span class="comment">// double vmax, long tightness);</span> <a name="l00329"></a>00329 <a name="l00330"></a>00330 <a name="l00331"></a>00331 }; <a name="l00332"></a>00332 <a name="l00333"></a>00333 <span class="comment">/********************************************************************************/</span> <a name="l00334"></a>00334 <span class="preprocessor">#endif //_IKBASE_H_</span> <a name="l00335"></a>00335 <span class="preprocessor"></span><span class="comment">/********************************************************************************/</span> </pre></div></div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="lmBase_8h.html">lmBase.h</a> </li> <li class="footer">Generated on Tue Feb 8 2011 for KatanaNativeInterface by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> </ul> </div> </body> </html>