ROS 강좌 109 역운동학을 풀다
환경
이 기사는 다음 환경에서 작동합니다.
품목
값
CPU
Core i5-8250U
우분투
16.04
ROS
키네틱
설치에 대한 자세한 내용은 ROS 강좌02 설치을 참조하십시오.
또한이 기사의 프로그램은 github에 업로드되었습니다. ROS 강좌 11 git 저장소을 참조하십시오.
개요
로봇 암의 제어에서는 암의 선단을 한 지점으로 이동시키는 제어가 잘 이루어집니다. 그러나 로봇 암에 대한 입력으로 각 축의 각도를 전달합니다. 이 두 가지를 변환하는 것이 암 제어의 기본이됩니다.
로봇 암의 제어에서는 암의 선단을 한 지점으로 이동시키는 제어가 잘 이루어집니다. 그러나 로봇 암에 대한 입력으로 각 축의 각도를 전달합니다. 이 두 가지를 변환하는 것이 암 제어의 기본이됩니다.
라고 부릅니다. 이것들을 프로그램합니다.
대상 팔
특히 역운동학은 암이 복잡해지면 원래 해석해 없이 반복법으로 풀 필요가 있고, 거기까지 복잡하게 되지 않아도 베어로 쓰는 데는 한계가 있습니다. 여기에서는 잘 잡히는 4축의 암을 예로 든다.
아래 그림과 같이 근원에서 yaw 회전을 하는 축이 1개, pitch 회전을 하는 축이 3개 있습니다. 이 구성이라면 첨단의 각도를 수평 등으로 지정한 채로 첨단의 xyz의 위치를 지정할 수 있도록 간이적인 로봇 암에서 자주 사용되는 형식입니다.
계산의 원리
운동학
그렇다고 하는 이름이 붙어 있습니다만, 단지 삼각 함수의 계산을 하는 것뿐입니다.
x, y, z의 좌표계에, 제1 관절의 향하고 있는 쪽의 방향에 L축을 취합니다.
L軸: L3sin(a2) + L4sin(a2+a3) + L5sin(a2+a3+a4)\\
Z軸: L1 + L2 + L3cos(a2) + L4cos(a2+a3) + L5cos(a1+a2+a3)\\
\left(
\begin{array}{ccc}
x \\
y \\
z
\end{array}
\right)
=
\left(
\begin{array}{ccc}
L軸 cos(a1) \\
L軸 sin(a1) \\
Z軸
\end{array}
\right)
역운동학
여기는 조금 복잡합니다. 최종적으로 2축으로 코사인 정리를 사용하는 곳까지 몰아넣습니다.
출력은 (a1, a2, a3, a4)의 4 변수가 되므로 고유한 입력을 얻으려면 첨단의 (x, y, z) 위치와 선택 각도 (φ)를 입력으로 합니다. φ=0은 선단이 바로 위를 향하고 있다. φ=π/2는 바로 옆을 향하고 있는 것을 나타냅니다.
문제 설정에서 첫 번째 링크의 끝과 세 번째 링크의 끝 (L, Z)면에서 좌표를 구합니다.
여기서 제3, 제4 링크만을 잘라내면 다음과 같이 됩니다. 여기서 할 수 있는 삼각형의 3변의 길이를 알 수 있으므로, 코사인 정리로부터 각도를 구할 수 있습니다.
소스 코드
역운동학을 푸는 프로그램은 arm_lecture/src/arm_ik.h 에 있습니다.
arm_ik_node 에서 이것을 사용해 움직입니다.
빌드
cd ~/catkin_ws
catkin_make
실행
roslaunch arm_lecture arm4d_ik.launch
역운동학의 입력이 되는 입력의 x, y, z위치를 빨간색 구로 표시합니다. 해당 위치로 이동할 암의 각도를 계산하고 이동합니다.
목차 페이지 링크
ROS 강좌의 목차에 대한 링크
Reference
이 문제에 관하여(ROS 강좌 109 역운동학을 풀다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/srs/items/45117df32d9030331f9d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
운동학
그렇다고 하는 이름이 붙어 있습니다만, 단지 삼각 함수의 계산을 하는 것뿐입니다.
x, y, z의 좌표계에, 제1 관절의 향하고 있는 쪽의 방향에 L축을 취합니다.
L軸: L3sin(a2) + L4sin(a2+a3) + L5sin(a2+a3+a4)\\
Z軸: L1 + L2 + L3cos(a2) + L4cos(a2+a3) + L5cos(a1+a2+a3)\\
\left(
\begin{array}{ccc}
x \\
y \\
z
\end{array}
\right)
=
\left(
\begin{array}{ccc}
L軸 cos(a1) \\
L軸 sin(a1) \\
Z軸
\end{array}
\right)
역운동학
여기는 조금 복잡합니다. 최종적으로 2축으로 코사인 정리를 사용하는 곳까지 몰아넣습니다.
출력은 (a1, a2, a3, a4)의 4 변수가 되므로 고유한 입력을 얻으려면 첨단의 (x, y, z) 위치와 선택 각도 (φ)를 입력으로 합니다. φ=0은 선단이 바로 위를 향하고 있다. φ=π/2는 바로 옆을 향하고 있는 것을 나타냅니다.
문제 설정에서 첫 번째 링크의 끝과 세 번째 링크의 끝 (L, Z)면에서 좌표를 구합니다.
여기서 제3, 제4 링크만을 잘라내면 다음과 같이 됩니다. 여기서 할 수 있는 삼각형의 3변의 길이를 알 수 있으므로, 코사인 정리로부터 각도를 구할 수 있습니다.
소스 코드
역운동학을 푸는 프로그램은 arm_lecture/src/arm_ik.h 에 있습니다.
arm_ik_node 에서 이것을 사용해 움직입니다.
빌드
cd ~/catkin_ws
catkin_make
실행
roslaunch arm_lecture arm4d_ik.launch
역운동학의 입력이 되는 입력의 x, y, z위치를 빨간색 구로 표시합니다. 해당 위치로 이동할 암의 각도를 계산하고 이동합니다.
목차 페이지 링크
ROS 강좌의 목차에 대한 링크
Reference
이 문제에 관하여(ROS 강좌 109 역운동학을 풀다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/srs/items/45117df32d9030331f9d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
cd ~/catkin_ws
catkin_make
실행
roslaunch arm_lecture arm4d_ik.launch
역운동학의 입력이 되는 입력의 x, y, z위치를 빨간색 구로 표시합니다. 해당 위치로 이동할 암의 각도를 계산하고 이동합니다.
목차 페이지 링크
ROS 강좌의 목차에 대한 링크
Reference
이 문제에 관하여(ROS 강좌 109 역운동학을 풀다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/srs/items/45117df32d9030331f9d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
roslaunch arm_lecture arm4d_ik.launch
ROS 강좌의 목차에 대한 링크
Reference
이 문제에 관하여(ROS 강좌 109 역운동학을 풀다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/srs/items/45117df32d9030331f9d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)