순서
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.
'Project > Robot Monitoring Tool' 카테고리의 다른 글
[Project][Robot Monitoring Tool] Data Save (.csv) (0) | 2021.01.09 |
---|---|
[Project][Robot Monitoring Tool] Data Plotting (0) | 2021.01.08 |
[Project][Robot Monitoring Tool] Data Exchange (0) | 2021.01.08 |
[Project][Robot Monitoring Tool] UI Design_Pyqt (0) | 2021.01.08 |