0

이것은 현재 작업중인 로봇 시뮬레이션을위한 것입니다. 제공된 다이어그램을 보면 두 개의 좌표 프레임이 표시됩니다. 프레임 A, 프레임 B; 당신은 p 포인트를 발견 할 것입니다.시뮬레이션 된 로봇의 로컬 프레임에서 점 얻기

프레임 은 세계 프레임 협조하고, 프레임 B 내 로봇에 대한 로컬 프레임합니다 (X이시킴으로써 행한다 규칙에 따라, 로봇의 제목 방향이다) . 로봇은 전세계에서 회전하고 운전할 수 있습니다. 여기

내 목표는 점을 페이지을 찾을 수 있습니다, 프레임 표현, 프레임 B의 관점에서 다시 표현한다.

point_in_frameB_x = point_in_frameA_x * cos(theta) - point_in_frameA_y * sin(theta) + t_x 
point_in_frameB_y = point_in_frameA_x * sin(theta) + point_in_frameA_y * cos(theta) + t_y 

경우 t_xt_y을 프레임에 프레임 B의 번역 변화를 만들어 : 나는 다음과 같이 될 것이다 구현하는 데 사용할 것

My set-up

표준 방정식 . 로봇이 기본으로 북쪽 진행 방향에있는 포즈 (약 회전 할 수 있기 때문에

-이 0의 회전이 있습니다

그러나, 내 원하는 결과를 얻기에서 저를 방지 여기에 몇 가지 합병증입니다 라디안), 위의 코드에서 t_xt_y을 어떻게 정의 할 지 모르겠습니다. 로봇이 프레임 의 y 축에 평행 한 진행 방향 (즉, x 축)을 갖는 경우 이동 벡터는 로봇의 진행 방향이 프레임의 x 축과 평행 한 경우와 다를 수 있습니다 A. 당신은 프레임 에서 변환이 B 구도를 알 것

은 간단하지 않다. 나는 이미지 프레임을 위해이 규칙을 사용하는이 시뮬레이터를 구현하고 있기 때문에이 규칙을 사용하고있다.

모든 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

0

좌표 프레임 지정을 위해 right hand rule을 따르십시오. 프레임 A 또는 프레임 B의 그림 축을 변경해야합니다.

enter image description here

+0

문제는, 어떻게 합동 프레임을 변경하기 위해 t_x, t_y를 결정하는 것입니까? 특히 내가 돌고있을 때? 나는 이미 동질적인 좌표를 사용하고있다. (내가 게시 한 의사 코드에서 분명히 알 수 있듯이). – arkate

+0

로봇의 자세 (t_x, t_y, theta)를 결정 하시겠습니까? 어떻게 로봇을 움직이고 있니? – nayab