File tree 1 file changed +20
-16
lines changed
1 file changed +20
-16
lines changed Original file line number Diff line number Diff line change @@ -55,9 +55,9 @@ def bumperData():
55
55
56
56
def rotateTo (angle ):
57
57
tries = 0
58
- kp = 0.335
59
- ki = 0.06
60
- kd = 0.73
58
+ kp = 0.225
59
+ ki = 0.08
60
+ kd = 0
61
61
62
62
integral = 0
63
63
last_error = angle
@@ -117,10 +117,9 @@ def rotateTo(angle):
117
117
118
118
def moveTo (distance ):
119
119
tries = 0
120
- kp = 0.355
121
-
122
- ki = 0.001
123
- kd = 0.42
120
+ kp = 0.1
121
+ ki = 0.01
122
+ kd = 0
124
123
integral = 0
125
124
last_error = 0
126
125
derivative = 0
@@ -133,15 +132,13 @@ def moveTo(distance):
133
132
(trans ,rot ) = check_camera ()
134
133
x_init = trans [0 ]
135
134
y_init = trans [1 ]
136
-
137
-
135
+ """
138
136
if target >= 0:
139
- sign = 1
137
+ turn = 1
140
138
if target < 0:
141
- sign = - 1
142
-
139
+ turn = -1
140
+ """
143
141
while not target_achieved :
144
-
145
142
#check = bumperData()
146
143
147
144
#if check == True:
@@ -155,9 +152,16 @@ def moveTo(distance):
155
152
print "Error: " + str (error )
156
153
integral += error
157
154
derivative = error - last_error
155
+ if (error > 0 and last_error < 0 ) or (error < 0 and last_error > 0 ):
156
+ integral = 0
157
+ if abs (derivative ) * 1000.0 > 1.5 :
158
+ integral = 0
159
+ i = 0
158
160
lin_vel = kp * error + ki * integral + kd * derivative
159
- lin_vel *= sign
161
+
160
162
print "Lin_vel: " + str (lin_vel )
163
+ print "Derivative: " + str (derivative )
164
+ print "Integral: " + str (integral )
161
165
if abs (error ) < 0.01 :
162
166
lin_vel = 0
163
167
i += 1
@@ -168,20 +172,20 @@ def moveTo(distance):
168
172
target_achieved = True
169
173
for j in range (0 ,5 ):
170
174
publish_cmd_vel (0 ,0 )
171
- rate .sleep ()
172
175
tries += 1
173
176
if tries >= 500 :
174
177
target_achieved = True
175
178
print "Giving up"
176
179
publish_cmd_vel (0 ,0 )
180
+ rate .sleep ()
177
181
"""
178
182
check = bumperData()
179
183
180
184
if check == True:
181
185
for i in range(0,5):
182
186
publish_cmd_vel(0,0)
183
187
rate.sleep()
184
- sleep(2)
188
+ sleep(2)
185
189
for i in range(0,10):
186
190
publish_cmd_vel(-0.2, 0)
187
191
rate.sleep()
You can’t perform that action at this time.
0 commit comments