ROS2를 활용한 6축 로봇 제작 가이드 1
재미있는 주제 하나 가지고 왔습니다.
오드로이드로 재밌는걸 만들어볼까 하다가 집에 있던 기계팔 하나 집어왔습니다.
[picture 1] Six-Axis robot arm
구매는 link
혹은 국내 사이트에서도 판매합니다.
모터 드라이버( pca9685 )와 모터( MG996R 6개)는 별도로 구매해야 합니다.
제어는 C 나 파이썬으로 제작해도 되지만, ros2를 사용해 보고 싶어서 ros2를 선택했습니다.
조금씩 시간을 들여서 하나씩 기능도 추가하고 완성해 보겠습니다.
준비물은 다음과 같습니다.
- Odroid C4 ... (x1)
- MG996R ... (x6)
- PCA9685 ... (x1)
- Robot frame set ... (x1)
C4 보드에서 pca9685를 사용할 수 있는 환경을 미리 세팅해야 합니다.
이 포스트와 패키지 문서를 참고해서 미리 세팅합니다.
OS는 C4 ROS2 이미지를 사용합니다.
조립하기
이 제품의 조립 메뉴얼이 놀랍게도 없습니다..
작성 안하려고 했지만 제가 조립했다 풀었다를 계속 반복했기 때문에 정리했습니다.
아래 사진처럼 부품들을 조립해 줍니다.
[picture 2] assembly 1
pca9685 보드에 MG996R 모터 6개를 연결해 줍니다.
연결한 후 프레임에 붙여 줍니다.
저는 프레임 포장상자에 있던 스펀지를 잘라 붙였습니다.
[picture 3] assembly 2
처음에 조립했던 부분들 합쳐서 팔 완성합니다.
[picture 4] assembly 3
그리퍼 부분 조립합니다.
[picture 4] assembly 3
여기까지 잘 따라 왔으면 다음 사진처럼 조립이 되었을 겁니다.
[picture 5] parts
피드백 제어로 오토 캘리브레이션 같은건 없습니다.
기능을 점진적으로 추가할 예정이여서 지금은 모터 기본값으로 돌려놓고 조립하겠습니다.
[picture 6] motor cali
패키지 소스코드를 다운로드 합니다.
이 코드는 완성본이며, 포스팅에서 처음부터 하나씩 채워나갈 것입니다.
$ git clone --recurse-submodules https://github.com/how2flow/ros2_axis6
소스코드를 다운로드 받는다고 바로 프로그램들이 실행되지 않습니다.
위에서도 언급했지만 ros2 패키지 동작 환경을 README 를 참고하여 구성해 줍니다.
전체 회로도입니다.
[picture 7] circuit
회로를 구성할 때 DIP-SWITCH 부분을 GND로 묶어줍니다.
[picture 8] circuit for test
사진과 다를것 없이 브레드보드는 그대로 두면 욉니다.
pca9685에 외부 전원(6V/3A 이상)을 연결합니다.
다운로드 받은 ros2 패키지를 빌드하고 프로그램을 실행합니다.
$ cd ~/robot_ws
$ ln -s ~/ros2_axis6 .
$ ln -s ~/ros2_axis6/how2flow_interfaces .
$ cb
$ source ~/.bashrc
$ ros2 run axis6 operator
그리퍼를 제외한 나머지 모터의 날개를 다음사진처럼 연결하고 고정합니다.
[picture 9] calibrated motors
모터 날개를 고정한 사진입니다.
[picture 10] calibrated motors 2
사진에서는 모터가 외부전원에 연결 되어 있지 않지만, 조립할 때 연결되어 있어야 합니다.
그리퍼는 이렇게 고정합니다.
[picture 11] calibrated motors 3
그리퍼를 팔에 연결할 때는 길이 더 짧은 볼트를 사용합니다.
제품 구매시 같이 들어있습니다.
[picture 12] endeffector bolt
그리퍼를 조립합니다.
사진에 나온 순서대로 조립합니다.
[picture 13] link endeffector 1
[picture 14] link endeffector 2
팔 프레임에 모터를 고정합니다
역시 사진 순서대로 조립합니다.
[picture 15] link motor 1
[picture 16] link motor 2
[picture 17] link motor 3
조립을 이렇게 하시면 됩니다.
[picture 18] assembly arm
이제 아래 기둥과 팔을 연결합니다.
[picture 19] link arm and base
나머지 모터를 연결하면 다음과 같은 모습이 나옵니다.
[picture 20] assembly 2
선정리가 가능하면 하는게 좋습니다.
[picture 21] clean up the wires
전체 회로도를 다시 보고 회로 구성합니다.
저는 브레드보드 위에서 회로 구성했습니다.
[picture 22] circuit
[picture 23] breadboard circuit 1
[picture 24] breadboard circuit 2
이제 패키지를 다시 실행해서 로봇팔이 초기 위치로 이동하는지 확인합니다.
$ ros2 run axis6 operator
Leave a comment