Project

General

Profile

Statistics
| Revision:

root / trunk / docs / libdragonfly / group__move.html @ 1398

History | View | Annotate | Download (12.5 KB)

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>libdragonfly: Movement</title>
4
<link href="tabs.css" rel="stylesheet" type="text/css">
5
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
</head><body>
7
<!-- Generated by Doxygen 1.5.9 -->
8
<div class="navigation" id="top">
9
  <div class="tabs">
10
    <ul>
11
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
13
      <li><a href="modules.html"><span>Modules</span></a></li>
14
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
15
      <li><a href="files.html"><span>Files</span></a></li>
16
    </ul>
17
  </div>
18
</div>
19
<div class="contents">
20
<h1>Movement</h1>Functions fo controlling robot motion Higher level functions to control the movement of robots.  
21
<a href="#_details">More...</a>
22
<p>
23
<table border="0" cellpadding="0" cellspacing="0">
24
<tr><td></td></tr>
25
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
26
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga02f16883c5ce325e2dbb8c3835aa9a1"></a><!-- doxytag: member="move::FWD" ref="ga02f16883c5ce325e2dbb8c3835aa9a1" args="" -->
27
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#ga02f16883c5ce325e2dbb8c3835aa9a1">FWD</a>&nbsp;&nbsp;&nbsp;0</td></tr>
28

    
29
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Move forwards. <br></td></tr>
30
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb8d9d2e1ff6a03ce3b45a32e0002a405"></a><!-- doxytag: member="move::BCK" ref="gb8d9d2e1ff6a03ce3b45a32e0002a405" args="" -->
31
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#gb8d9d2e1ff6a03ce3b45a32e0002a405">BCK</a>&nbsp;&nbsp;&nbsp;1</td></tr>
32

    
33
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Move backwards. <br></td></tr>
34
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gff79b776dbd665d08a0cfcb4c2931c98"></a><!-- doxytag: member="move::SLOW_SPD" ref="gff79b776dbd665d08a0cfcb4c2931c98" args="" -->
35
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#gff79b776dbd665d08a0cfcb4c2931c98">SLOW_SPD</a>&nbsp;&nbsp;&nbsp;96</td></tr>
36

    
37
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A slow speed. <br></td></tr>
38
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0dd7c6a61a43fb8a3698988c414a9bf"></a><!-- doxytag: member="move::HALF_SPD" ref="ga0dd7c6a61a43fb8a3698988c414a9bf" args="" -->
39
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#ga0dd7c6a61a43fb8a3698988c414a9bf">HALF_SPD</a>&nbsp;&nbsp;&nbsp;128</td></tr>
40

    
41
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Half of the full speed. <br></td></tr>
42
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gab20a9de15efe0d1b5599a3dd2ae9fea"></a><!-- doxytag: member="move::NRML_SPD" ref="gab20a9de15efe0d1b5599a3dd2ae9fea" args="" -->
43
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#gab20a9de15efe0d1b5599a3dd2ae9fea">NRML_SPD</a>&nbsp;&nbsp;&nbsp;160</td></tr>
44

    
45
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A normal speed. <br></td></tr>
46
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1f2e117ff854d46ca84f16a1eb8419a"></a><!-- doxytag: member="move::FAST_SPD" ref="ga1f2e117ff854d46ca84f16a1eb8419a" args="" -->
47
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#ga1f2e117ff854d46ca84f16a1eb8419a">FAST_SPD</a>&nbsp;&nbsp;&nbsp;192</td></tr>
48

    
49
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A fast speed. <br></td></tr>
50
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g35819c1d24f97763dab51cd367514443"></a><!-- doxytag: member="move::FULL_SPD" ref="g35819c1d24f97763dab51cd367514443" args="" -->
51
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#g35819c1d24f97763dab51cd367514443">FULL_SPD</a>&nbsp;&nbsp;&nbsp;255</td></tr>
52

    
53
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum speed. <br></td></tr>
54
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4e9e38cfcdb9bfd0f80c69a574301731"></a><!-- doxytag: member="move::SLOW_TURN" ref="g4e9e38cfcdb9bfd0f80c69a574301731" args="" -->
55
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#g4e9e38cfcdb9bfd0f80c69a574301731">SLOW_TURN</a>&nbsp;&nbsp;&nbsp;64</td></tr>
56

    
57
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A slow turning speed. <br></td></tr>
58
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdfc67eeed7b52f97b8483af04e27a9ce"></a><!-- doxytag: member="move::NRML_TURN" ref="gdfc67eeed7b52f97b8483af04e27a9ce" args="" -->
59
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#gdfc67eeed7b52f97b8483af04e27a9ce">NRML_TURN</a>&nbsp;&nbsp;&nbsp;96</td></tr>
60

    
61
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A medium turning speed. <br></td></tr>
62
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb900792066abf52697bd19cc5240ae24"></a><!-- doxytag: member="move::FAST_TURN" ref="gb900792066abf52697bd19cc5240ae24" args="" -->
63
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#gb900792066abf52697bd19cc5240ae24">FAST_TURN</a>&nbsp;&nbsp;&nbsp;128</td></tr>
64

    
65
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A high turning speed. <br></td></tr>
66
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
67
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#g4e27eab618b1d874ff25fd2b2a65493b">move</a> (int velocity, int omega)</td></tr>
68

    
69
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Move the robot at the specified velocity.  <a href="#g4e27eab618b1d874ff25fd2b2a65493b"></a><br></td></tr>
70
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__move.html#g8e79749d6af4a0aa12aceee41ad62ebd">move_avoid</a> (int velocity, int omega, int strength)</td></tr>
71

    
72
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Move the robot while avoiding obstacles.  <a href="#g8e79749d6af4a0aa12aceee41ad62ebd"></a><br></td></tr>
73
</table>
74
<hr><a name="_details"></a><h2>Detailed Description</h2>
75
Functions fo controlling robot motion Higher level functions to control the movement of robots. <hr><h2>Function Documentation</h2>
76
<a class="anchor" name="g4e27eab618b1d874ff25fd2b2a65493b"></a><!-- doxytag: member="move.c::move" ref="g4e27eab618b1d874ff25fd2b2a65493b" args="(int velocity, int omega)" -->
77
<div class="memitem">
78
<div class="memproto">
79
      <table class="memname">
80
        <tr>
81
          <td class="memname">void move           </td>
82
          <td>(</td>
83
          <td class="paramtype">int&nbsp;</td>
84
          <td class="paramname"> <em>velocity</em>, </td>
85
        </tr>
86
        <tr>
87
          <td class="paramkey"></td>
88
          <td></td>
89
          <td class="paramtype">int&nbsp;</td>
90
          <td class="paramname"> <em>omega</em></td><td>&nbsp;</td>
91
        </tr>
92
        <tr>
93
          <td></td>
94
          <td>)</td>
95
          <td></td><td></td><td></td>
96
        </tr>
97
      </table>
98
</div>
99
<div class="memdoc">
100

    
101
<p>
102
Move the robot at the specified velocity. 
103
<p>
104
Causes the robot to move with the given translation and rotational velocities. motors_init must be called before this function can be used.<p>
105
<dl compact><dt><b>Parameters:</b></dt><dd>
106
  <table border="0" cellspacing="2" cellpadding="0">
107
    <tr><td valign="top"></td><td valign="top"><em>velocity</em>&nbsp;</td><td>the translational velocity of the robot, in the range -255 to 255. A positive value indicates forward motion, while a negative value indicates backwards motion.</td></tr>
108
    <tr><td valign="top"></td><td valign="top"><em>omega</em>&nbsp;</td><td>the rotational velocity of the robot, in the range -255 to 255. A positive value indicates a counterclockwise velocity, while a negative value indicates a clockwise velocity.</td></tr>
109
  </table>
110
</dl>
111
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__motors.html#gbad32bfc46c9f31ba81955775611bd21" title="Initialize the motors.">motors_init</a>, <a class="el" href="group__motors.html#g751a431c19cdb52bbbc8127455bd41ee" title="Set speed and direction of motor1.">motor1_set</a>, <a class="el" href="group__motors.html#g23940fd8408c23fcf312b1d5937f0ab0" title="Set speed and direction of motor2.">motor2_set</a> </dd></dl>
112

    
113
<p>References <a class="el" href="motor_8h_source.html#l00050">BACKWARD</a>, <a class="el" href="motor_8h_source.html#l00048">FORWARD</a>, <a class="el" href="motor_8c_source.html#l00079">motor1_set()</a>, and <a class="el" href="motor_8c_source.html#l00112">motor2_set()</a>.</p>
114

    
115
</div>
116
</div><p>
117
<a class="anchor" name="g8e79749d6af4a0aa12aceee41ad62ebd"></a><!-- doxytag: member="move.c::move_avoid" ref="g8e79749d6af4a0aa12aceee41ad62ebd" args="(int velocity, int omega, int strength)" -->
118
<div class="memitem">
119
<div class="memproto">
120
      <table class="memname">
121
        <tr>
122
          <td class="memname">void move_avoid           </td>
123
          <td>(</td>
124
          <td class="paramtype">int&nbsp;</td>
125
          <td class="paramname"> <em>velocity</em>, </td>
126
        </tr>
127
        <tr>
128
          <td class="paramkey"></td>
129
          <td></td>
130
          <td class="paramtype">int&nbsp;</td>
131
          <td class="paramname"> <em>omega</em>, </td>
132
        </tr>
133
        <tr>
134
          <td class="paramkey"></td>
135
          <td></td>
136
          <td class="paramtype">int&nbsp;</td>
137
          <td class="paramname"> <em>strength</em></td><td>&nbsp;</td>
138
        </tr>
139
        <tr>
140
          <td></td>
141
          <td>)</td>
142
          <td></td><td></td><td></td>
143
        </tr>
144
      </table>
145
</div>
146
<div class="memdoc">
147

    
148
<p>
149
Move the robot while avoiding obstacles. 
150
<p>
151
Moves the robot with the given translational and angular velocities while avoiding obstacles. To be effective, this function must be called repeatedly throughout the motion. It relies on the IR rangefinders to detect obstacles. Before calling this function, motors_init and range_init must be called.<p>
152
<dl compact><dt><b>Parameters:</b></dt><dd>
153
  <table border="0" cellspacing="2" cellpadding="0">
154
    <tr><td valign="top"></td><td valign="top"><em>velocity</em>&nbsp;</td><td>the translational velocity of the robot, in the range -255 to 255. A positive value indicates forward motion.</td></tr>
155
    <tr><td valign="top"></td><td valign="top"><em>omega</em>&nbsp;</td><td>the rotational velocity of the robot, in the range -255 to 255. A positive value indicates a counterclockwise velocity.</td></tr>
156
    <tr><td valign="top"></td><td valign="top"><em>strength</em>&nbsp;</td><td>the strength of the avoid behavior, in the range 0 to 100.</td></tr>
157
  </table>
158
</dl>
159
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__motors.html#gbad32bfc46c9f31ba81955775611bd21" title="Initialize the motors.">motors_init</a>, <a class="el" href="group__rangefinder.html#g52d0666b725e6d3a14b5bddc28190e59" title="Initialize the rangefinders.">range_init</a>, <a class="el" href="group__move.html#g4e27eab618b1d874ff25fd2b2a65493b" title="Move the robot at the specified velocity.">move</a> </dd></dl>
160

    
161
<p>References <a class="el" href="motor_8h_source.html#l00050">BACKWARD</a>, <a class="el" href="motor_8h_source.html#l00048">FORWARD</a>, <a class="el" href="rangefinder_8h_source.html#l00046">IR1</a>, <a class="el" href="rangefinder_8h_source.html#l00048">IR2</a>, <a class="el" href="rangefinder_8h_source.html#l00050">IR3</a>, <a class="el" href="rangefinder_8h_source.html#l00052">IR4</a>, <a class="el" href="rangefinder_8h_source.html#l00054">IR5</a>, <a class="el" href="motor_8c_source.html#l00079">motor1_set()</a>, <a class="el" href="motor_8c_source.html#l00112">motor2_set()</a>, and <a class="el" href="rangefinder_8c_source.html#l00131">range_read_distance()</a>.</p>
162

    
163
</div>
164
</div><p>
165
</div>
166
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 7 19:07:28 2009 for libdragonfly by&nbsp;
167
<a href="http://www.doxygen.org/index.html">
168
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
169
</body>
170
</html>