본문으로 건너뛰기
Project Nodus
목록으로

C++ 모션 생성기로 직선·원호 동작 구현

C++로 직선·원호 모션을 생성하고, 실제 로봇에 연결해 동작을 시연했다. 위치와 자세의 경로를 구성하고 속도·가속도·저크 제한을 반영해 시간에 따른 목표를 만들었다.

실물 시연

직접 생성한 모션을 실제 로봇 제어에 연결한 동작 시연.

구현한 내용

경로 결과

C++로 생성한 직선 위치 경로

C++로 생성한 원호 위치 경로

그래프는 모션 생성 결과이고, 영상은 실제 로봇에 연결한 시연이다. 원호 모션은 제한을 보수적으로 처리하는 방식으로 구현했다.

TOPP 시간 계획 결과

직선은 약 3.48초, 원호는 약 4.03초의 목표 궤적을 생성했다. 같은 시작·도착 위치와 자세에 운동 제한을 적용하고, 원호에는 경유점을 추가했다. 두 예제 모두 정지 상태에서 출발해 정지 상태로 도착한다.

TOPP 단계에서 7구간 시간 프로파일을 계획하고, 위치·자세 경로와 결합했다. 아래는 C++ 모션 생성기에서 출력한 시간별 위치·자세·속도·가속도·저크다.

직선 모션

약 3.48초 직선 모션의 병진·회전 위치, 속도, 가속도, 수치 저크와 크기 제한 그래프
직선 경로와 자세 변화에 시간 계획을 적용한 결과. 그래프를 누르면 원본 크기로 볼 수 있다.

원호 모션

약 4.03초 원호 모션의 병진·회전 위치, 속도, 가속도, 수치 저크와 크기 제한 그래프
경유점을 지나는 원호와 자세 변화에 시간 계획을 적용한 결과. 그래프를 누르면 원본 크기로 볼 수 있다.

왼쪽 열은 병진, 오른쪽 열은 회전이다. 위에서부터 위치·자세, 속도, 가속도, 저크를 표시했다. 속도·가속도·저크 그래프의 검은 점선은 벡터의 크기(norm), 주황 점선은 설정한 크기 제한이다.

운동 제한병진회전
속도0.45 m/s0.80 rad/s
가속도0.90 m/s²1.60 rad/s²
저크3.60 m/s³6.40 rad/s³

저크는 출력 가속도를 수치 미분한 표본값이다. 이 그래프는 생성한 목표 궤적을 보여주며, 실물 추종 오차는 별도로 측정해야 한다. 원호 예제는 운동 제한을 만족하도록 보수적으로 시간 계획을 적용했다.



이전 글
기준 Frame 이동과 TCP offset 변경을 동시에 적용
다음 글
음성 명령으로 물체를 집는 휠체어 장착형 로봇팔 제작