순서

I. 소개

II. petercorke github
1. 세팅
2. 사용


I. 소개

데이터를 가지고 Plotting은 완료했지만 이것만 보고
내 데이터가 실제 로봇 구동과 일치하는 데이터인지 확인할 수 없습니다.
따라서 보통 시뮬레이션이라고 말하는 실시간 렌더링 이미지가 필요합니다.

이런 느낌이죠

이건 좀 복잡한 모델이고 우리가 사용할 모델은
Petercorke 교수님 github에 있는 오픈소스입니다

바로 이런 모습입니다.
아래 빨간 봉이 로봇의 Link, 파란색이 Joint(모터)입니다.
데이터를 받아 업데이트를 하며 실시간으로 움직이죠.

 


II. Petercorke Github

github.com/petercorke/robotics-toolbox-python

1. 세팅

Petercorke 연구실에서 원래 C++? 기반으로 만들었다가
python 모듈도 개발했다고 알고 있습니다.

아나콘다 환경 세팅을 하고 이 toolbox도 설치를 해주어야 합니다.
아나콘다 설명은 이 포스팅에서 생략!

Readme에 나온 방법으로는 두 가지가 있네요.
1. pip로 설치
2. github로부터 clone후 설치


pip를 이용해도 되지만 저는 어떻게 사용해야 하는지 참고하기 위해
$git clone을 이용해서 코드도 같이 가져와서 설치했습니다.

$pip3 install -e는 pip설치에 관한 옵션입니다.

아나콘다의 가상 환경과 실제 컴퓨터 base환경이 있는데
pip3는 실제 base가 기본이기 때문에 -e 옵션으로 가상 환경 내 설치로 바꿔준 모습이네요!
(base에 하면 내 컴퓨터 관리가 어려워져서...? 무조건 가상!!)


2. 사용

a. 사용 위젯
b. 로봇 모델 설정
c. Plotting


a. 사용 위젯

Plotting을 할 때는 graphicsview를 사용했지만
roboticstoolbox는 matplotlib를 사용했습니다.
따라서 "mplWidget"을 사용합니다!


b. 로봇 모델 설정

로봇 팔의 "모델"이 다 다릅니다.
여기서 말하는 "모델"
6개의 Angle과 6개의 Link의 길이, 위치 관계를 나타냅니다.

이것을 로보틱스에서는 "DH-Parameter"(이하 DH)라고 이야기합니다.

"roboticstoolbox/ model/" 디렉토리의 다양한 DH코드를 ref로 하여
우리에게 맞는 DH로 수정해줍니다.

self.cobot5 = Cobot5DH() // 우리의 모듈
self.cobot5Fig = self.cobot5.plot(self.cobot5.qz,
                                  backend='Pyplot',
                                  block=False,
                                  MyFig= self.ui.MplWidget.canvas)
                                  
plot에 관한 설명은
roboticstoolbox/ robot/ Robot.py

 


c. Plotting

원래 ReadMe에 나와있는 설명에는 "trajectory"가 필요합니다.

"trajectory"

로봇이 A->B 위치로 이동할 때 어떤 속도, 가속도 +(jerk)를 가지고
움직이게 할 것인지 이동 궤적을 설정해주는 정보

+) 이전에 그린 데이터 Plotting이 Trajectory이다.

 

하지만 현 Program의 경우 10ms마다 Window(UI화면) 업데이트가 이루어집니다.
따라서 그 주기마다 그림만(위치만) 업데이트해주면 됩니다.

이것은 그림 한 컷 한 컷을 그려서
촤라락~ 펼치면 애니메이션처럼 되는 방식
을 쓴 것입니다.
(만약 뭔가 끊기고 어색하다면 주기를 줄여야겠죠!!)

따라서 현재 로봇 각 축의(6개) 업데이트된 위치 데이터를 저장해주고
다음 step() 함수로 업데이트해줍니다.

self.cobot5.q = self.robotFdbPos
self.cobot5Fig.step()

 

이렇게 되면 화면 업데이트 시마다
"Robot rendering Plotting"이 모두 완료됩니다.

위에서 보여준 이 이미지처럼 나오게 되고
데이터를 받아와 움직이게 됩니다!!

 

+) 원하는 3D. step file로 겉모습도 씌울 수 있을 것 같은데
아직 안 해봤습니다!! 우선 여기서 Fix.

+ Recent posts