added calculation of diagnoal approach
This commit is contained in:
@@ -3,7 +3,7 @@ from __future__ import division
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from math import pi
|
from math import pi,tan,asin
|
||||||
from time import sleep, time
|
from time import sleep, time
|
||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
@@ -41,6 +41,7 @@ class Striker(object):
|
|||||||
self.rot_dir = 0
|
self.rot_dir = 0
|
||||||
self.timer_start = 0
|
self.timer_start = 0
|
||||||
self.timer_stop = 0
|
self.timer_stop = 0
|
||||||
|
self.dy = False
|
||||||
|
|
||||||
def _speaker(self):
|
def _speaker(self):
|
||||||
while not self.is_over:
|
while not self.is_over:
|
||||||
@@ -147,6 +148,27 @@ class Striker(object):
|
|||||||
x, y = ball_angles
|
x, y = ball_angles
|
||||||
self.timer_start = time()
|
self.timer_start = time()
|
||||||
in_sight = True
|
in_sight = True
|
||||||
|
if cam==self.upper_camera and not self.dy:
|
||||||
|
#angles= self.video_top.to_angles(x,y)
|
||||||
|
angles=ball_angles
|
||||||
|
print("y (in radians) angle is:"+str(angles[1]))
|
||||||
|
|
||||||
|
# calculate distance to the ball
|
||||||
|
y_angle=angles[1]
|
||||||
|
y_angle=pi/2-y_angle-15*pi/180
|
||||||
|
distance = 0.5 * tan(y_angle)
|
||||||
|
|
||||||
|
# vertical distance to ball at the end
|
||||||
|
vert_dist=0.3
|
||||||
|
|
||||||
|
# calculate angle of the walk
|
||||||
|
angle_to_walk=asin(vert_dist/distance)
|
||||||
|
self.dy=1*tan(angle_to_walk)
|
||||||
|
|
||||||
|
print("Dy ist ----- "+str(self.dy))
|
||||||
|
|
||||||
|
print("Distance --------------- ="+str(distance))
|
||||||
|
print('Top camera\n')
|
||||||
break
|
break
|
||||||
if in_sight:
|
if in_sight:
|
||||||
break
|
break
|
||||||
@@ -162,7 +184,7 @@ class Striker(object):
|
|||||||
print()
|
print()
|
||||||
|
|
||||||
def run_to_ball(self):
|
def run_to_ball(self):
|
||||||
self.mover.move_to_fast(1, 0, 0)
|
self.mover.move_to_fast(1, self.dy, 0)
|
||||||
|
|
||||||
def turn_to_ball(self, ball_x, ball_y, tol=0.15, soll=0, fancy=False,
|
def turn_to_ball(self, ball_x, ball_y, tol=0.15, soll=0, fancy=False,
|
||||||
m_delta=0.2):
|
m_delta=0.2):
|
||||||
@@ -411,7 +433,7 @@ if __name__ == '__main__':
|
|||||||
# (see diagram above)
|
# (see diagram above)
|
||||||
else:
|
else:
|
||||||
try: # Hit Ctrl-C to stop, cleanup and exit
|
try: # Hit Ctrl-C to stop, cleanup and exit
|
||||||
state = 'align'
|
state = 'tracking'
|
||||||
init_soll = 0.0
|
init_soll = 0.0
|
||||||
align_start = 0.15
|
align_start = 0.15
|
||||||
curve_start = -0.1
|
curve_start = -0.1
|
||||||
|
|||||||
Reference in New Issue
Block a user