-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample_tg_8cc-example.html
96 lines (94 loc) · 13.2 KB
/
example_tg_8cc-example.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
<!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</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><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><!-- top -->
<!-- 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 class="header">
<div class="headertitle">
<div class="title">example_tg.cc</div> </div>
</div><!--header-->
<div class="contents">
<p>Examples of trajectory generator usage. trajectory generator, you can see the source code in <a class="el" href="example_tg_8cc-example.html">example_tg.cc</a></p>
<div class="fragment"><div class="line"><span class="preprocessor">#include "<a class="code" href="create__robot__model_8hh.html">create_robot_model.hh</a>"</span></div><div class="line"><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"><span class="preprocessor">#include "<a class="code" href="lmc__tg_8h.html">motion_control/lmc_tg.h</a>"</span></div><div class="line"></div><div class="line"><span class="keywordtype">int</span> <a name="a0"></a><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">{</div><div class="line"> <span class="keyword">auto</span> robot_model_config = <a name="a1"></a><a class="code" href="create__robot__model_8cc.html#abc42856d9c4855c8d625e245b0d7fed8">createLM3Config</a>();</div><div class="line"> <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 name="a2"></a><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="a3"></a><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 name="a4"></a><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="_a5"></a><a class="code" href="structlmc__tg__config.html">lmc_tg_config_t</a> tg_config;</div><div class="line"> <a name="_a6"></a><a class="code" href="structlmc__tg__limit.html">lmc_tg_limit_t</a> tg_limit;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 6; i++)</div><div class="line"> {</div><div class="line"> tg_limit.<a name="a7"></a><a class="code" href="structlmc__tg__limit.html#a181a0dca18c193a09416df7f353b4248">jnt_max_acc</a>[i] = 4;</div><div class="line"> tg_limit.<a name="a8"></a><a class="code" href="structlmc__tg__limit.html#a064a4cb69cc3b143e649bb79fa9374d6">jnt_max_v</a>[i] = 2;</div><div class="line"> tg_limit.<a name="a9"></a><a class="code" href="structlmc__tg__limit.html#a84f2b9cdfbc9fb9c75a7bdbddd75c348">jnt_pos_positive_limit</a>[i] = 6.28;</div><div class="line"> tg_limit.<a name="a10"></a><a class="code" href="structlmc__tg__limit.html#a387aa90486c9a39adb69539c03b3af65">jnt_pos_negative_limit</a>[i] = -6.28;</div><div class="line"> }</div><div class="line"> tg_limit.<a name="a11"></a><a class="code" href="structlmc__tg__limit.html#ad03877e98063f07aafaecb06f08f8c1d">cartesian_max_v</a> = 1;</div><div class="line"> tg_limit.<a name="a12"></a><a class="code" href="structlmc__tg__limit.html#a46cfb6bf5cb843b39c57e41e070aa0ec">cartesian_max_acc</a> = 1;</div><div class="line"> tg_limit.<a name="a13"></a><a class="code" href="structlmc__tg__limit.html#af7632e7ee3f3778eb6a7608901cf5a94">cartesian_max_rot_v</a> = 1;</div><div class="line"> tg_limit.<a name="a14"></a><a class="code" href="structlmc__tg__limit.html#aa88be07ebbc100a209f2162903aa154e">cartesian_max_rot_acc</a> = 1;</div><div class="line"> tg_limit.<a name="a15"></a><a class="code" href="structlmc__tg__limit.html#a9619dfce215261164f67aac14e6d73b0">jnt_acc_time_constant</a> = 10;</div><div class="line"></div><div class="line"> tg_config.<a name="a16"></a><a class="code" href="structlmc__tg__config.html#a772977d3af9ea2c8a7d41eb425b5eb60">cycle_time</a> = 0.01;</div><div class="line"> tg_config.<a name="a17"></a><a class="code" href="structlmc__tg__config.html#a799a743b3abd553a37fc01ad3097df08">buffer_size</a> = 10;</div><div class="line"> <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 name="a18"></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#gaa3d8f2c786cb5f0a72811f63d420a8cb">lmc_tg_new</a>();</div><div class="line"></div><div class="line"> <a name="_a19"></a><a class="code" href="structlmc__joint__state.html">lmc_joint_state_t</a> joint_state[6];</div><div class="line"> <a name="_a20"></a><a class="code" href="structlmc__joint__cmd.html">lmc_joint_cmd_t</a> joint_cmd[6];</div><div class="line"> <a name="_a21"></a><a class="code" href="structlmc__tg__runtime__data.html">lmc_tg_runtime_data_t</a> runtime_data;</div><div class="line"></div><div class="line"> joint_state[0].<a name="a22"></a><a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.0;</div><div class="line"> joint_state[1].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.1;</div><div class="line"> joint_state[2].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.2;</div><div class="line"> joint_state[3].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.3;</div><div class="line"> joint_state[4].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.4;</div><div class="line"> joint_state[5].<a class="code" href="structlmc__joint__state.html#a5e9dd75fc35bca3ebe4981821077aebe">pos</a> = 0.5;</div><div class="line"></div><div class="line"> <a name="a23"></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#ga025b98e19721993da776678fa76472bc">lmc_tg_init</a>(tg, robot_model, &tg_config);</div><div class="line"> <a name="a24"></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#gafe31a2a7ecd7c535a51cc91cd088a7d4">lmc_tg_set_limit</a>(tg, &tg_limit);</div><div class="line"> <a name="a25"></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#gaf03551a5f860ca8f0c1ed82af187bef9">lmc_tg_set_joint_pos</a>(tg, joint_state);</div><div class="line"> <a name="_a26"></a><a class="code" href="structlmc__tg__update__ret.html">lmc_tg_update_ret_t</a> tg_ret = <a name="a27"></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#ga3e21ef2b09777097e8bf91ed74abe10a">lmc_tg_update</a>(tg);</div><div class="line"></div><div class="line"> <span class="keywordtype">double</span> move_joint_pos1[6];</div><div class="line"> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < 6; ++i) {</div><div class="line"> move_joint_pos1[i] = 0.8;</div><div class="line"> }</div><div class="line"> <a name="_a28"></a><a class="code" href="structlmc__tg__move__param.html">lmc_tg_move_param_t</a> move_joint_param;</div><div class="line"> move_joint_param.<a name="a29"></a><a class="code" href="structlmc__tg__move__param.html#a3b90d5a73541ab9402511d87bed076ef">v</a> = 1.0;</div><div class="line"> move_joint_param.<a name="a30"></a><a class="code" href="structlmc__tg__move__param.html#a3f5829fb406b1eb98443802e65c97fc5">acc</a> = 1.0;</div><div class="line"> move_joint_param.<a name="a31"></a><a class="code" href="structlmc__tg__move__param.html#a962c71044f642c0cea9082579d406aa8">blend_radius</a> = 0.0;</div><div class="line"> move_joint_param.<a name="a32"></a><a class="code" href="structlmc__tg__move__param.html#a29dd7df940655841d66eb2272654b390">interruptable</a> = 0;</div><div class="line"> move_joint_param.<a name="a33"></a><a class="code" href="structlmc__tg__move__param.html#a63881ba6f507f76063e1388aca4c87b4">smooth_move_to_next</a> = 0;</div><div class="line"> move_joint_param.<a name="a34"></a><a class="code" href="structlmc__tg__move__param.html#ab2d5aa7fce1a14d8bddfb2c333ea9679">time</a> = 0.0;</div><div class="line"> <a name="a35"></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#gade00ed8b56c0e2c6f02bdef071723db2">lmc_tg_buffer_move_joint</a>(tg, 1, move_joint_pos1, &move_joint_param);</div><div class="line"> <span class="keywordflow">while</span>(tg_ret.<a name="a36"></a><a class="code" href="structlmc__tg__update__ret.html#ada1d7bb5acc52ee48b5dbe9c6276ca41">state</a> != <a name="a37"></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"> {</div><div class="line"> 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="a38"></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#gad1c84fcc5a5905bf3ef098a0b85963e2">lmc_tg_get_updated_date</a>(tg, joint_cmd, &runtime_data);</div><div class="line"> }</div><div class="line"> <a name="a39"></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#gaea9fd7e22f6133a50a743f467130bade">lmc_tg_delete</a>(&tg);</div><div class="line"> <a name="a40"></a><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"> <span class="keywordflow">return</span> 0;</div><div class="line">}</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>