-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample__tg_8cc_source.html
151 lines (149 loc) · 33.6 KB
/
example__tg_8cc_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>lebai-motion-control: example_tg.cc Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">lebai-motion-control
 <span id="projectnumber">3.1.6</span>
</div>
<div id="projectbrief">lebai motion control C interface</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</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>Globals</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">example_tg.cc</div> </div>
</div><!--header-->
<div class="contents">
<a href="example__tg_8cc.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#include "<a class="code" href="create__robot__model_8hh.html">create_robot_model.hh</a>"</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#include "<a class="code" href="lmc__tg__config_8h.html">motion_control/lmc_tg_config.h</a>"</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor">#include "<a class="code" href="lmc__tg_8h.html">motion_control/lmc_tg.h</a>"</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> </div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="example__tg_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627"> 16</a></span> <span class="keywordtype">int</span> <a class="code" href="example__tg_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="keyword">auto</span> robot_model_config = <a class="code" href="create__robot__model_8cc.html#abc42856d9c4855c8d625e245b0d7fed8">createLM3Config</a>();</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  <a class="code" href="group___r_o_b_o_t___m_o_d_e_l.html#ga88801e600508c29bfd792993c252af02">lmc_robot_model_t</a>* robot_model = <a class="code" href="group___r_o_b_o_t___m_o_d_e_l.html#ga81ac8042a2dee4b88356281d68d82091">lmc_rm_new</a>(); </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <a class="code" href="group___r_o_b_o_t___m_o_d_e_l.html#gac05cc9996f8b1a4fd8b9995df8132ceb">lmc_rm_init</a>(robot_model, &robot_model_config,<a class="code" href="group___r_o_b_o_t___m_o_d_e_l.html#gga08bee6d36564814992527da9b752c53aa7ff0c2aec32991b69852c5f523b69462">STRUCT_TYPE_61</a>);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <a class="code" href="structlmc__tg__config.html">lmc_tg_config_t</a> tg_config;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <a class="code" href="structlmc__tg__limit.html">lmc_tg_limit_t</a> tg_limit;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 6; i++)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#a181a0dca18c193a09416df7f353b4248">jnt_max_acc</a>[i] = 4;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#a064a4cb69cc3b143e649bb79fa9374d6">jnt_max_v</a>[i] = 2;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#a84f2b9cdfbc9fb9c75a7bdbddd75c348">jnt_pos_positive_limit</a>[i] = 6.28;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#a387aa90486c9a39adb69539c03b3af65">jnt_pos_negative_limit</a>[i] = -6.28;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  }</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#ad03877e98063f07aafaecb06f08f8c1d">cartesian_max_v</a> = 1;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#a46cfb6bf5cb843b39c57e41e070aa0ec">cartesian_max_acc</a> = 1;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#af7632e7ee3f3778eb6a7608901cf5a94">cartesian_max_rot_v</a> = 1;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#aa88be07ebbc100a209f2162903aa154e">cartesian_max_rot_acc</a> = 1;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  tg_limit.<a class="code" href="structlmc__tg__limit.html#a9619dfce215261164f67aac14e6d73b0">jnt_acc_time_constant</a> = 10;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  tg_config.<a class="code" href="structlmc__tg__config.html#a772977d3af9ea2c8a7d41eb425b5eb60">cycle_time</a> = 0.01;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  tg_config.<a class="code" href="structlmc__tg__config.html#a799a743b3abd553a37fc01ad3097df08">buffer_size</a> = 10;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ga315fdb9ab1a67d40e74660eb4045e25a">lmc_tg_t</a> * tg = <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gaa3d8f2c786cb5f0a72811f63d420a8cb">lmc_tg_new</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="structlmc__joint__state.html">lmc_joint_state_t</a> joint_state[6];</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="structlmc__joint__cmd.html">lmc_joint_cmd_t</a> joint_cmd[6];</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="structlmc__tg__runtime__data.html">lmc_tg_runtime_data_t</a> runtime_data;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  joint_state[0].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  joint_state[1].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.1;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  joint_state[2].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.2;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  joint_state[3].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.3;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  joint_state[4].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.4;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  joint_state[5].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.5;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ga025b98e19721993da776678fa76472bc">lmc_tg_init</a>(tg, robot_model, &tg_config);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gafe31a2a7ecd7c535a51cc91cd088a7d4">lmc_tg_set_limit</a>(tg, &tg_limit);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gaf03551a5f860ca8f0c1ed82af187bef9">lmc_tg_set_joint_pos</a>(tg, joint_state);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="structlmc__tg__update__ret.html">lmc_tg_update_ret_t</a> tg_ret = <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ga3e21ef2b09777097e8bf91ed74abe10a">lmc_tg_update</a>(tg);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">double</span> move_joint_pos1[6];</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < 6; ++i) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  move_joint_pos1[i] = 0.8;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="structlmc__tg__move__param.html">lmc_tg_move_param_t</a> move_joint_param;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  move_joint_param.<a class="code" href="structlmc__tg__move__param.html#a3b90d5a73541ab9402511d87bed076ef">v</a> = 1.0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  move_joint_param.<a class="code" href="structlmc__tg__move__param.html#a3f5829fb406b1eb98443802e65c97fc5">acc</a> = 1.0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  move_joint_param.<a class="code" href="structlmc__tg__move__param.html#a962c71044f642c0cea9082579d406aa8">blend_radius</a> = 0.0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  move_joint_param.<a class="code" href="structlmc__tg__move__param.html#a29dd7df940655841d66eb2272654b390">interruptable</a> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  move_joint_param.<a class="code" href="structlmc__tg__move__param.html#a63881ba6f507f76063e1388aca4c87b4">smooth_move_to_next</a> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  move_joint_param.<a class="code" href="structlmc__tg__move__param.html#ab2d5aa7fce1a14d8bddfb2c333ea9679">time</a> = 0.0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gade00ed8b56c0e2c6f02bdef071723db2">lmc_tg_buffer_move_joint</a>(tg, 1, move_joint_pos1, &move_joint_param);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">while</span>(tg_ret.<a class="code" href="structlmc__tg__update__ret.html#ada1d7bb5acc52ee48b5dbe9c6276ca41">state</a> != <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ggacae7fe8e813fa89279f555ecd382ac4ca991a88df7b875078d34dabf61d87de89">TGS_IDLE</a>)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  tg_ret = <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ga3e21ef2b09777097e8bf91ed74abe10a">lmc_tg_update</a>(tg);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gad1c84fcc5a5905bf3ef098a0b85963e2">lmc_tg_get_updated_date</a>(tg, joint_cmd, &runtime_data);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gaea9fd7e22f6133a50a743f467130bade">lmc_tg_delete</a>(&tg);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="group___r_o_b_o_t___m_o_d_e_l.html#gafa84ddba856eb939c5b8b353bd9b276c">lmc_rm_delete</a>(&robot_model);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div><div class="ttc" id="structlmc__tg__limit_html"><div class="ttname"><a href="structlmc__tg__limit.html">lmc_tg_limit</a></div><div class="ttdoc">Limitation data structure for trajectory generator. </div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00027">lmc_tg_config.h:27</a></div></div>
<div class="ttc" id="structlmc__tg__update__ret_html"><div class="ttname"><a href="structlmc__tg__update__ret.html">lmc_tg_update_ret</a></div><div class="ttdoc">Trjecotry generator update ret value. </div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00082">lmc_tg.h:82</a></div></div>
<div class="ttc" id="group___r_o_b_o_t___m_o_d_e_l_html_gac05cc9996f8b1a4fd8b9995df8132ceb"><div class="ttname"><a href="group___r_o_b_o_t___m_o_d_e_l.html#gac05cc9996f8b1a4fd8b9995df8132ceb">lmc_rm_init</a></div><div class="ttdeci">int lmc_rm_init(lmc_robot_model_t *const robot_model, lmc_robot_model_config_t const *const robot_model_config, lmc_robot_model_struct_t struct_type)</div><div class="ttdoc">Init a robot model using lmc_robot_model_config_t. </div></div>
<div class="ttc" id="structlmc__tg__limit_html_a181a0dca18c193a09416df7f353b4248"><div class="ttname"><a href="structlmc__tg__limit.html#a181a0dca18c193a09416df7f353b4248">lmc_tg_limit::jnt_max_acc</a></div><div class="ttdeci">double jnt_max_acc[LMC_MAX_JOINT_NUM]</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00029">lmc_tg_config.h:29</a></div></div>
<div class="ttc" id="structlmc__tg__config_html_a799a743b3abd553a37fc01ad3097df08"><div class="ttname"><a href="structlmc__tg__config.html#a799a743b3abd553a37fc01ad3097df08">lmc_tg_config::buffer_size</a></div><div class="ttdeci">size_t buffer_size</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00047">lmc_tg_config.h:47</a></div></div>
<div class="ttc" id="structlmc__tg__limit_html_aa88be07ebbc100a209f2162903aa154e"><div class="ttname"><a href="structlmc__tg__limit.html#aa88be07ebbc100a209f2162903aa154e">lmc_tg_limit::cartesian_max_rot_acc</a></div><div class="ttdeci">double cartesian_max_rot_acc</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00037">lmc_tg_config.h:37</a></div></div>
<div class="ttc" id="structlmc__joint__state_html_a5e9dd75fc35bca3ebe4981821077aebe"><div class="ttname"><a href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">lmc_joint_state::pos</a></div><div class="ttdeci">double pos</div><div class="ttdef"><b>Definition:</b> <a href="lmc__joint_8h_source.html#l00022">lmc_joint.h:22</a></div></div>
<div class="ttc" id="group___r_o_b_o_t___m_o_d_e_l_html_gafa84ddba856eb939c5b8b353bd9b276c"><div class="ttname"><a href="group___r_o_b_o_t___m_o_d_e_l.html#gafa84ddba856eb939c5b8b353bd9b276c">lmc_rm_delete</a></div><div class="ttdeci">void lmc_rm_delete(lmc_robot_model_t **robot_model_addr)</div><div class="ttdoc">Delete a robot model instance. </div></div>
<div class="ttc" id="structlmc__tg__runtime__data_html"><div class="ttname"><a href="structlmc__tg__runtime__data.html">lmc_tg_runtime_data</a></div><div class="ttdoc">Trjecotry generator runtime data. </div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00112">lmc_tg.h:112</a></div></div>
<div class="ttc" id="structlmc__tg__move__param_html_a29dd7df940655841d66eb2272654b390"><div class="ttname"><a href="structlmc__tg__move__param.html#a29dd7df940655841d66eb2272654b390">lmc_tg_move_param::interruptable</a></div><div class="ttdeci">unsigned int interruptable</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00130">lmc_tg.h:130</a></div></div>
<div class="ttc" id="structlmc__tg__limit_html_a9619dfce215261164f67aac14e6d73b0"><div class="ttname"><a href="structlmc__tg__limit.html#a9619dfce215261164f67aac14e6d73b0">lmc_tg_limit::jnt_acc_time_constant</a></div><div class="ttdeci">unsigned int jnt_acc_time_constant</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00038">lmc_tg_config.h:38</a></div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_gafe31a2a7ecd7c535a51cc91cd088a7d4"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gafe31a2a7ecd7c535a51cc91cd088a7d4">lmc_tg_set_limit</a></div><div class="ttdeci">int lmc_tg_set_limit(lmc_tg_t *const tg, lmc_tg_limit_t const *const limit)</div><div class="ttdoc">Set trajectory generator limit parameters. </div></div>
<div class="ttc" id="lmc__tg_8h_html"><div class="ttname"><a href="lmc__tg_8h.html">lmc_tg.h</a></div><div class="ttdoc">Trajectory generator related data structures and functions. </div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_ggacae7fe8e813fa89279f555ecd382ac4ca991a88df7b875078d34dabf61d87de89"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ggacae7fe8e813fa89279f555ecd382ac4ca991a88df7b875078d34dabf61d87de89">TGS_IDLE</a></div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00041">lmc_tg.h:41</a></div></div>
<div class="ttc" id="structlmc__tg__limit_html_a84f2b9cdfbc9fb9c75a7bdbddd75c348"><div class="ttname"><a href="structlmc__tg__limit.html#a84f2b9cdfbc9fb9c75a7bdbddd75c348">lmc_tg_limit::jnt_pos_positive_limit</a></div><div class="ttdeci">double jnt_pos_positive_limit[LMC_MAX_JOINT_NUM]</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00030">lmc_tg_config.h:30</a></div></div>
<div class="ttc" id="structlmc__joint__cmd_html"><div class="ttname"><a href="structlmc__joint__cmd.html">lmc_joint_cmd</a></div><div class="ttdoc">joint command data </div><div class="ttdef"><b>Definition:</b> <a href="lmc__joint_8h_source.html#l00035">lmc_joint.h:35</a></div></div>
<div class="ttc" id="lmc__tg__config_8h_html"><div class="ttname"><a href="lmc__tg__config_8h.html">lmc_tg_config.h</a></div><div class="ttdoc">Trajectory generator configuration data structure. </div></div>
<div class="ttc" id="structlmc__tg__config_html"><div class="ttname"><a href="structlmc__tg__config.html">lmc_tg_config</a></div><div class="ttdoc">Configuration data structure for trajectory generator. </div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00045">lmc_tg_config.h:45</a></div></div>
<div class="ttc" id="structlmc__tg__limit_html_a46cfb6bf5cb843b39c57e41e070aa0ec"><div class="ttname"><a href="structlmc__tg__limit.html#a46cfb6bf5cb843b39c57e41e070aa0ec">lmc_tg_limit::cartesian_max_acc</a></div><div class="ttdeci">double cartesian_max_acc</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00035">lmc_tg_config.h:35</a></div></div>
<div class="ttc" id="structlmc__tg__move__param_html_a63881ba6f507f76063e1388aca4c87b4"><div class="ttname"><a href="structlmc__tg__move__param.html#a63881ba6f507f76063e1388aca4c87b4">lmc_tg_move_param::smooth_move_to_next</a></div><div class="ttdeci">unsigned int smooth_move_to_next</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00128">lmc_tg.h:128</a></div></div>
<div class="ttc" id="structlmc__tg__move__param_html_a3b90d5a73541ab9402511d87bed076ef"><div class="ttname"><a href="structlmc__tg__move__param.html#a3b90d5a73541ab9402511d87bed076ef">lmc_tg_move_param::v</a></div><div class="ttdeci">double v</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00126">lmc_tg.h:126</a></div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_gade00ed8b56c0e2c6f02bdef071723db2"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gade00ed8b56c0e2c6f02bdef071723db2">lmc_tg_buffer_move_joint</a></div><div class="ttdeci">lmc_tg_buffer_ret_t lmc_tg_buffer_move_joint(lmc_tg_t *const tg, int id, double const *const target, lmc_tg_move_param_t const *const param)</div><div class="ttdoc">Try to add a move joint trajectory to buffer. </div></div>
<div class="ttc" id="group___r_o_b_o_t___m_o_d_e_l_html_ga81ac8042a2dee4b88356281d68d82091"><div class="ttname"><a href="group___r_o_b_o_t___m_o_d_e_l.html#ga81ac8042a2dee4b88356281d68d82091">lmc_rm_new</a></div><div class="ttdeci">lmc_robot_model_t * lmc_rm_new()</div><div class="ttdoc">Create a robot model instance. </div></div>
<div class="ttc" id="structlmc__tg__move__param_html_a962c71044f642c0cea9082579d406aa8"><div class="ttname"><a href="structlmc__tg__move__param.html#a962c71044f642c0cea9082579d406aa8">lmc_tg_move_param::blend_radius</a></div><div class="ttdeci">double blend_radius</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00130">lmc_tg.h:130</a></div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_gad1c84fcc5a5905bf3ef098a0b85963e2"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gad1c84fcc5a5905bf3ef098a0b85963e2">lmc_tg_get_updated_date</a></div><div class="ttdeci">int lmc_tg_get_updated_date(lmc_tg_t const *const tg, lmc_joint_cmd_t *const joint_cmd, lmc_tg_runtime_data_t *const tg_runtime_data)</div><div class="ttdoc">Get usefull trajectory generator update data. </div></div>
<div class="ttc" id="structlmc__tg__limit_html_ad03877e98063f07aafaecb06f08f8c1d"><div class="ttname"><a href="structlmc__tg__limit.html#ad03877e98063f07aafaecb06f08f8c1d">lmc_tg_limit::cartesian_max_v</a></div><div class="ttdeci">double cartesian_max_v</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00034">lmc_tg_config.h:34</a></div></div>
<div class="ttc" id="structlmc__tg__limit_html_af7632e7ee3f3778eb6a7608901cf5a94"><div class="ttname"><a href="structlmc__tg__limit.html#af7632e7ee3f3778eb6a7608901cf5a94">lmc_tg_limit::cartesian_max_rot_v</a></div><div class="ttdeci">double cartesian_max_rot_v</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00036">lmc_tg_config.h:36</a></div></div>
<div class="ttc" id="group___r_o_b_o_t___m_o_d_e_l_html_ga88801e600508c29bfd792993c252af02"><div class="ttname"><a href="group___r_o_b_o_t___m_o_d_e_l.html#ga88801e600508c29bfd792993c252af02">lmc_robot_model_t</a></div><div class="ttdeci">struct lmc_robot_model lmc_robot_model_t</div><div class="ttdoc">Robot model data structure. </div><div class="ttdef"><b>Definition:</b> <a href="lmc__robot__model_8h_source.html#l00031">lmc_robot_model.h:31</a></div></div>
<div class="ttc" id="structlmc__tg__config_html_a772977d3af9ea2c8a7d41eb425b5eb60"><div class="ttname"><a href="structlmc__tg__config.html#a772977d3af9ea2c8a7d41eb425b5eb60">lmc_tg_config::cycle_time</a></div><div class="ttdeci">double cycle_time</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00046">lmc_tg_config.h:46</a></div></div>
<div class="ttc" id="structlmc__tg__update__ret_html_ada1d7bb5acc52ee48b5dbe9c6276ca41"><div class="ttname"><a href="structlmc__tg__update__ret.html#ada1d7bb5acc52ee48b5dbe9c6276ca41">lmc_tg_update_ret::state</a></div><div class="ttdeci">lmc_tg_update_state_t state</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00083">lmc_tg.h:83</a></div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_gaf03551a5f860ca8f0c1ed82af187bef9"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gaf03551a5f860ca8f0c1ed82af187bef9">lmc_tg_set_joint_pos</a></div><div class="ttdeci">void lmc_tg_set_joint_pos(lmc_tg_t *const tg, lmc_joint_state_t const *const joint_state)</div><div class="ttdoc">This function set current joint anchor point of trajectory generator caculation. It must be called wh...</div></div>
<div class="ttc" id="structlmc__joint__state_html"><div class="ttname"><a href="structlmc__joint__state.html">lmc_joint_state</a></div><div class="ttdoc">joint state data </div><div class="ttdef"><b>Definition:</b> <a href="lmc__joint_8h_source.html#l00021">lmc_joint.h:21</a></div></div>
<div class="ttc" id="structlmc__tg__limit_html_a387aa90486c9a39adb69539c03b3af65"><div class="ttname"><a href="structlmc__tg__limit.html#a387aa90486c9a39adb69539c03b3af65">lmc_tg_limit::jnt_pos_negative_limit</a></div><div class="ttdeci">double jnt_pos_negative_limit[LMC_MAX_JOINT_NUM]</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00031">lmc_tg_config.h:31</a></div></div>
<div class="ttc" id="structlmc__tg__move__param_html_a3f5829fb406b1eb98443802e65c97fc5"><div class="ttname"><a href="structlmc__tg__move__param.html#a3f5829fb406b1eb98443802e65c97fc5">lmc_tg_move_param::acc</a></div><div class="ttdeci">double acc</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00127">lmc_tg.h:127</a></div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_ga3e21ef2b09777097e8bf91ed74abe10a"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ga3e21ef2b09777097e8bf91ed74abe10a">lmc_tg_update</a></div><div class="ttdeci">lmc_tg_update_ret_t lmc_tg_update(lmc_tg_t *const tg)</div><div class="ttdoc">Core calculation function of trajectory generator, always call it in realtime loop,. </div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_gaea9fd7e22f6133a50a743f467130bade"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gaea9fd7e22f6133a50a743f467130bade">lmc_tg_delete</a></div><div class="ttdeci">void lmc_tg_delete(lmc_tg_t **tg_addr)</div><div class="ttdoc">Delete a trajectory generator instance. </div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_ga315fdb9ab1a67d40e74660eb4045e25a"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ga315fdb9ab1a67d40e74660eb4045e25a">lmc_tg_t</a></div><div class="ttdeci">struct lmc_tg lmc_tg_t</div><div class="ttdoc">Trajectory generator data structure. </div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00033">lmc_tg.h:33</a></div></div>
<div class="ttc" id="example__tg_8cc_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="example__tg_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdoc">Example of tg usage. </div><div class="ttdef"><b>Definition:</b> <a href="example__tg_8cc_source.html#l00016">example_tg.cc:16</a></div></div>
<div class="ttc" id="structlmc__tg__move__param_html_ab2d5aa7fce1a14d8bddfb2c333ea9679"><div class="ttname"><a href="structlmc__tg__move__param.html#ab2d5aa7fce1a14d8bddfb2c333ea9679">lmc_tg_move_param::time</a></div><div class="ttdeci">double time</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00127">lmc_tg.h:127</a></div></div>
<div class="ttc" id="structlmc__tg__move__param_html"><div class="ttname"><a href="structlmc__tg__move__param.html">lmc_tg_move_param</a></div><div class="ttdoc">Trjecotry generator move parameter. </div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg_8h_source.html#l00125">lmc_tg.h:125</a></div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_gaa3d8f2c786cb5f0a72811f63d420a8cb"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#gaa3d8f2c786cb5f0a72811f63d420a8cb">lmc_tg_new</a></div><div class="ttdeci">lmc_tg_t * lmc_tg_new()</div><div class="ttdoc">Create a trajectory generator instance. </div></div>
<div class="ttc" id="create__robot__model_8hh_html"><div class="ttname"><a href="create__robot__model_8hh.html">create_robot_model.hh</a></div><div class="ttdoc">create robot model function. </div></div>
<div class="ttc" id="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r_html_ga025b98e19721993da776678fa76472bc"><div class="ttname"><a href="group___t_r_a_j_e_c_t_o_r_y___g_e_n_e_r_a_t_o_r.html#ga025b98e19721993da776678fa76472bc">lmc_tg_init</a></div><div class="ttdeci">int lmc_tg_init(lmc_tg_t *const tg, lmc_robot_model_t const *const robot_model, lmc_tg_config_t const *const config)</div><div class="ttdoc">Init a trajectory generator. </div></div>
<div class="ttc" id="create__robot__model_8cc_html_abc42856d9c4855c8d625e245b0d7fed8"><div class="ttname"><a href="create__robot__model_8cc.html#abc42856d9c4855c8d625e245b0d7fed8">createLM3Config</a></div><div class="ttdeci">lmc_robot_model_config_t createLM3Config()</div><div class="ttdoc">Create a robot model config instance. </div><div class="ttdef"><b>Definition:</b> <a href="create__robot__model_8cc_source.html#l00011">create_robot_model.cc:11</a></div></div>
<div class="ttc" id="group___r_o_b_o_t___m_o_d_e_l_html_gga08bee6d36564814992527da9b752c53aa7ff0c2aec32991b69852c5f523b69462"><div class="ttname"><a href="group___r_o_b_o_t___m_o_d_e_l.html#gga08bee6d36564814992527da9b752c53aa7ff0c2aec32991b69852c5f523b69462">STRUCT_TYPE_61</a></div><div class="ttdef"><b>Definition:</b> <a href="lmc__robot__model_8h_source.html#l00042">lmc_robot_model.h:42</a></div></div>
<div class="ttc" id="structlmc__tg__limit_html_a064a4cb69cc3b143e649bb79fa9374d6"><div class="ttname"><a href="structlmc__tg__limit.html#a064a4cb69cc3b143e649bb79fa9374d6">lmc_tg_limit::jnt_max_v</a></div><div class="ttdeci">double jnt_max_v[LMC_MAX_JOINT_NUM]</div><div class="ttdef"><b>Definition:</b> <a href="lmc__tg__config_8h_source.html#l00028">lmc_tg_config.h:28</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>