[전시회] SIOR Quadruped

작성자
박재현 이승민 이재홍 민승현 이성국 이승준 최태웅
작성일
2022-11-21 01:34
조회
555

SIOR Quadruped

팀원 (박재현, 이승민, 이재홍, 민성현, 이승준, 최태웅, 이성국)


개요

사족보행로봇에 대해 많은 지식과 경험이 있는 팀장님의 주도하에 프로젝트에 참여했는데 팀원들은 아직 사족보행로봇에 대해 지식과 경험이 많지 않아 사족보행로봇의 가장 기본적인 다리 부분을 설계하여 점프하거나 움직일 수 있도록 프로젝트를 진행하게 되었습니다. 또한 오픈소스를 사용하지 않고 인스타의 Ultra Robotics의 외형을 참고하여 설계부터 제어까지 전부 팀원끼리 자체적으로 하였습니다.

출처: https://www.instagram.com/ultra.robotics/


진행은 크게 제어, 설계 두 팀으로 나누어 진행하였고, 제어팀은 CAN 통신을 통한 Odrive 제어를 목표로,  설계팀은 다리 전반적인 설계를 목표를 두고 진행했습니다.

Hardware

하드웨어는 Autodesk Inventor를 이용하여 다리를 HIP과 KNEE로 나누어 설계하였습니다. 프린팅 재료는 PLA가 아닌 ABS재질을 활용하여 출력물의 퀄리티를 높였습니다.

간단한 하드웨어 부품 목록
    • Motor : Tarot 4108 3600KV
    • Motor Driver : Odrive v3.6
    • Incremental Encoder : AMT102-V
    • Controller : Raspberry4 4GB & can hat
    • 모터 축, 베어링, 볼트, 고정링 등 - 미스미

Knee



KNEE는 무릎 부분의 Joint를 뜻합니다.

KNEE에는 기어비가 다른 톱니바퀴 두개와 엔코더, 모터, 타이밍 풀리, 베어링, 인서트 너트, 샤프트, 타이밍 벨트가 사용되었습니다.

KNEE안쪽 모터의 샤프트에 엔코더를 설치하여 모터의 회전속도와 방향 등을 감지할 수 있게 하였습니다.

모터에서 다리 끝부분까지 기어비가 약 1:4.5가 되도록 설계하였습니다.

톱니바퀴와 타이밍풀리는 GT2 타이밍 벨트를 이용하여 함께 돌아가도록 연결하였습니다.

관통 부분은 원통형 축을 가공하여 베어링 및 고정링을 통해 아래 사진과 같이 고정하였습니다.

(고정링 확대 사진)

HIP

               

HIP Joint는 Hip 아래 다리 전체를 움직입니다.

HIP은 기어비가 타이밍풀리와 1:2.7인 두 개의 톱니바퀴와 모터, 타이밍풀리, 샤프트, 베어링, 인서트너트, 타이밍 벨트를 사용하여 설계하였습니다.

HIP도 KNEE와 마찬가지로 모터의 샤프트에 엔코더를 설치하여 모터의 회전속도와 방향 등을 감지할 수 있게 하였습니다.

Assembly

전체 조립한 사진입니다.

   


Control & Communication

Odrive



저희는 Odrive라는 모터드라이버를 사용했습니다. BLDC 모터 드라이버 중에서 범용성이 높고, 소스도 많이 공개되어 있기 때문에 해당 드라이버를 사용했습니다. Ultra robotics에서 UART 통신을 사용하니 끊김 현상이 발생하여 CAN 통신으로 전환했다는 글을 보고 저희는 처음부터 CAN 통신을 이용한 제어를 진행하기로 결정했습니다.

따라서 제어기인 라즈베리파이에서 CAN 통신이 가능하도록 CAN hat을 구매하여 장착하였고, Odrive 예제를 기반으로 CAN 통신 기반 제어 코드를 작성하였습니다.

이 부분에서 CAN 통신이 생소하기 때문에 제어팀이 많은 고생을 하였는데, 성공하고 난 뒤 가장 중요했던 점은 odrivetool을 통해 먼저 튜닝 후 모터 제어를 진행해보는 것 이였습니다. 홈페이지 글을 처음부터 하나하나 읽어가야지만 성공할 수 있었습니다. 코드의 경우 동아리 gitlab에 올려놓겠습니다.

또한 encoder와 같이 보내는 정보가 아닌 받는 정보의 경우에도  rtr 비트를 보내야지만 받아올 수 있다는 것을 아는 게 매우 중요했습니다.  이후 사족보행 로봇 전체를 제작할 경우 주의 바랍니다.

PD Control



전시회 날에는 튜닝할 시간이 없어서 Odrive에서 제공하는 Position Trajectory Control을 이용하여 제어했는데, 이것도 내부에는 PID 제어기를 통하여 Velocity, Current 제어를 진행하게 됩니다. 또한 이후 토크 제어를 진행해야 하는 경우 직접 Current PD Control을 빠른 주기로 진행해야 합니다. 전시회 진행 이후 전환 예정입니다.

Inverse Kinematics & Trajectory

현재 다리의 경우 Scapular Joint가 존재하지 않기 때문에 간단한 2-DOF입니다. 따라서 로봇공학을 적용하지 않고도 Hip joint contraint만으로도 쉽게 역기구학을 풀 수 있었습니다. Trajectory의 경우 간단한 보행 모션인 원운동, 일어서는 모션인 직선운동을 Swing Trajectory로 잡고 역기구학을 매 순간 풀어보았습니다.



중심점의 X,Y 좌표, Swing Velocity, Swing Radius등을 실시간으로 변경 가능하도록 하여 궤적의 변화를 확인할 수 있도록 하였습니다.

Future Work

현재 톱니의 부정확한 출력, 부정확한 체인 길이 계산으로 인하여 다리가 땅에 닿을 경우 하중이 가장 많이 가해지는 Knee joint 부분 체인이 헛도는 현상이 존재합니다 .  따라서 현재는 공중에서만 Swing을 진행하고 있는데, 이후 지면에서 움직일 수 있게 보완할 예정입니다.

전체 0