NAO 로봇은 모양의 각 점의 (x, y) 좌표에서 시작하여 화이트 보드에 몇 가지 모양을 그려야합니다.로봇 로봇 이동 로봇 (x, y, z) 좌표 변환
square = [[251, 184], #point 1
[22, 192], #point 2
[41, 350], #point 3
[244, 346]] #point 4
을 지금은 화이트 보드에 그려하기 위해 NAO 로봇에 대한 사람들의 좌표를 제공 할 수 있습니다
그래서 내가 예 목록 (x, y)를 위해 가지고하는 것은 사각형의 좌표. 문제는 그 NAO 로봇의 팔을 이동하는 것입니다, 다음 예제 코드 extracted from here은 (난 당신이 이해하는 코드의 부분 만이 중요 여기에 붙여 넣기) 알데바란에 의해 주어진다 : 그래서 당신이 할 수
effector = "LArm"
space = motion.FRAME_ROBOT
axisMask = almath.AXIS_MASK_VEL # just control position
isAbsolute = False # Since we are in relative, the current position is zero
currentPos = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
# Define the changes relative to the current position
dx = 0.03 # translation axis X (meters)
dy = 0.03 # translation axis Y (meters)
dz = 0.00 # translation axis Z (meters)
dwx = 0.00 # rotation axis X (radians)
dwy = 0.00 # rotation axis Y (radians)
dwz = 0.00 # rotation axis Z (radians)
targetPos = [dx, dy, dz, dwx, dwy, dwz]
# Go to the target and back again
path = [targetPos, currentPos]
times = [2.0, 4.0] # seconds
화이트 보드에 그려지는 점의 좌표 만 (x, y) 있지만, NAO 로봇은 설정할 변수가 훨씬 더 필요합니다. 내가 처음 내가 미터 픽셀에서 좌표를 변환 할 필요가 있음을 알고, 변환은 다음과 같다 : 다음
1 pixel (px) = 1/3779.52755905511 meter [m]
, 나는 (X, Y를 얻기 위해 좌표에 하나 개의 차원을 추가해야 할 것 같습니다 , z) 좌표.
물론 선을 그리려면 currentPos를 첫 번째 점으로 설정하고 targetPos를 두 번째 점으로 설정해야합니다. 따라서, 변환 다음
(251, 184) pixels coordinates = (0.066, 0.047) meters coordinates
(22, 192) pixels coordinates = (0.035, 0.011) meters coordinates
결과적 :
currentPos = [0.066, 0.047, 0.0, 0.0, 0.0, 0.0]
dx = 0.035 # translation axis X (meters)
dy = 0.011 # translation axis Y (meters)
dz = 0.00 # translation axis Z (meters)
dwx = 0.00 # rotation axis X (radians)
dwy = 0.00 # rotation axis Y (radians)
dwz = 0.00 # rotation axis Z (radians)
난이 올바른 경우에도 정말 모르겠습니다. 이 문제를 어떻게 해결할 수 있습니까?
로봇의 좌표 시스템과 관련하여 화이트 보드가 어느 평면에 있습니까? 이 좌표계에서 화이트 보드 좌표계의 원점은 어디입니까? – Hyperboreus
화이트 보드는 로봇 앞에 서 있거나 테이블 위에있을 수 있습니다. –