forked from Telos4/RoboRally
playing around with different markers and sizes
This commit is contained in:
parent
e93ae65e0f
commit
0bc6b68a20
|
@ -107,36 +107,30 @@ class ArucoEstimator:
|
||||||
|
|
||||||
gray = cv2.cvtColor(color_image, cv2.COLOR_BGR2GRAY)
|
gray = cv2.cvtColor(color_image, cv2.COLOR_BGR2GRAY)
|
||||||
|
|
||||||
# aruco_dict = aruco.Dictionary_get(aruco.DICT_5X5_250)
|
#aruco_dict = aruco.Dictionary_get(aruco.DICT_APRILTAG_16H5)
|
||||||
aruco_dict = aruco.Dictionary_get(aruco.DICT_ARUCO_ORIGINAL)
|
#aruco_dict = aruco.Dictionary_get(aruco.DICT_7X7_50)
|
||||||
|
#aruco_dict = aruco.Dictionary_get(aruco.DICT_4X4_50)
|
||||||
|
aruco_dict = aruco.Dictionary_get(aruco.DICT_5X5_1000)
|
||||||
|
#aruco_dict = aruco.Dictionary_get(aruco.DICT_ARUCO_ORIGINAL) # fast
|
||||||
parameters = aruco.DetectorParameters_create()
|
parameters = aruco.DetectorParameters_create()
|
||||||
corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, aruco_dict, parameters=parameters)
|
corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, aruco_dict, parameters=parameters)
|
||||||
frame = aruco.drawDetectedMarkers(color_image.copy(), corners, ids)
|
frame = aruco.drawDetectedMarkers(color_image.copy(), corners, ids)
|
||||||
|
|
||||||
if ids is not None:
|
if ids is not None:
|
||||||
for id, corner in zip(ids, corners):
|
for id, corner in zip(ids, corners):
|
||||||
|
if id in self.corner_marker_ids.values():
|
||||||
|
marker_size = 0.1
|
||||||
|
else:
|
||||||
|
marker_size = 0.07
|
||||||
corner_pixel_coord = np.mean(corner[0], axis=0)
|
corner_pixel_coord = np.mean(corner[0], axis=0)
|
||||||
res = aruco.estimatePoseSingleMarkers(corner, 0.10, self.camera_matrix, self.dist_coeffs)
|
# res = aruco.estimatePoseSingleMarkers(corner, marker_size, self.camera_matrix, self.dist_coeffs)
|
||||||
rvecs = res[0][0][0]
|
# rvecs = res[0][0][0]
|
||||||
tvecs = res[1][0][0]
|
# tvecs = res[1][0][0]
|
||||||
|
#
|
||||||
self.update_estimate(id[0], corner_pixel_coord, rvecs, tvecs)
|
# self.update_estimate(id[0], corner_pixel_coord, rvecs, tvecs)
|
||||||
|
|
||||||
frame = self.draw_grid_lines(frame, corners, ids)
|
frame = self.draw_grid_lines(frame, corners, ids)
|
||||||
frame = self.draw_robot_pos(frame, corners, ids)
|
frame = self.draw_robot_pos(frame, corners, ids)
|
||||||
else:
|
|
||||||
# pretent we detected some markers
|
|
||||||
pass
|
|
||||||
self.update_estimate(0, rvec=np.array([0, 0, 0]), tvec=np.array([-1, 1, 0]))
|
|
||||||
self.update_estimate(1, rvec=np.array([0, 0, 0]), tvec=np.array([1, 1.5, 0]))
|
|
||||||
self.update_estimate(2, rvec=np.array([0, 0, 0]), tvec=np.array([1, -1.5, 0]))
|
|
||||||
self.update_estimate(3, rvec=np.array([0, 0, 0]), tvec=np.array([-1, -1, 0]))
|
|
||||||
#import random
|
|
||||||
#self.update_estimate(12, rvec=np.array([0.0, 0.0, 0.0]), tvec=np.array([-1.0 + random.random() * 2, -1.0 + random.random() * 2, 0]))
|
|
||||||
self.update_estimate(12, rvec=np.array([0.0, 0.0, 0.0]),
|
|
||||||
tvec=np.array([1.2, 0.42, 0]))
|
|
||||||
self.update_estimate(13, rvec=np.array([0.0, 0.0, 0.0]),
|
|
||||||
tvec=np.array([-1.2, -0.42, 0]))
|
|
||||||
|
|
||||||
# Show images
|
# Show images
|
||||||
cv2.imshow('RoboRally', frame)
|
cv2.imshow('RoboRally', frame)
|
||||||
|
@ -344,6 +338,6 @@ class ArucoEstimator:
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
estimator = ArucoEstimator()
|
estimator = ArucoEstimator(use_realsense=False)
|
||||||
|
|
||||||
estimator.run_tracking()
|
estimator.run_tracking()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user