Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > c72d609d39bfe5656f218382a504969f > files > 816

libkni3-doc-3.9.2-13.fc15.i686.rpm

<!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&#160;<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&#160;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&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;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 &quot;KNI_InvKin/ikBase.h&quot;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &quot;common/exception.h&quot;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;vector&gt;</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 &amp;#39;L&amp;#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>(&quot;Joint speed too high&quot;, -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>(&quot;Wait parameter set to false&quot;, -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&lt;int&gt; lastsolution,
<a name="l00230"></a>00230                 std::vector&lt;int&gt; 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 &amp;#39;endless&amp;#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 &amp;#39;endless&amp;#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 &amp;#39;endless&amp;#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 &amp;#39;endless&amp;#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 &amp;#39;endless&amp;#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&lt;double&gt; 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 &amp;#39;endless&amp;#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&#160;
<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>