Edit on GitHub

개요

img

로봇핸드(3 FINGER HAND PHN-33B_R/L)

주의 : 로봇핸드(MX-28)는 현재 단종되어 더 이상 판매되지 않습니다.

주요 사양

항목 사양
크기(손을 편 상태) 167mm x 164mm x 98mm
무게 400g
자유도 3 DOF (RX-28 x 3)
Actuator의 최소 제어각 0.29°
힘(손가락 끝) 2kgf (19.6N)
동작 온도 -5°C ~ +85°C
사용 전압 12 ~ 18.5V (권장 전압 14.4V)
사용 전류 0.45A ~ 5.7A (at 18.5V)
인터페이스 RS-485 Multi Drop BUS

시작하기

제품 구성

부품 설명
img Hand 본체 (1개)
오른손과 왼손 옵션에 따라 다릅니다.
img CM-700 세트 (1개)
Hand와 연결되어 제어하는 장치입니다.
(구성품은 첨부되어 있는 문서를 참고하시기 바랍니다.)
img USB 다운로더 LN-101 (1개)
PC와 CM-700을 연결하기 위한 장치입니다.
img 실리콘 파트 세트 (1개)
여분으로 사용할 수 있는 실리콘 손가락 커버입니다.
img CABLE-PWR01 (1개)
SMPS(직류 전원 공급 장치)를 가지고 있는 경우 연결하여 사용할 커넥터입니다.
img WB M2.5*6 (20개)
NUT M2.5 (20개)
다이나믹셀과 프레임을 체결할 수 있는 스크류세트입니다.
img 4PCABLE-100 (2개)
4PCABLE-200 (1개)
Hand와 CM-700을 연결하거나 RX-28끼리 연결할 수 있는 케이블입니다.

설치

  1. RoboPlus CD를 이용해서 PC에 RoboPlus를 설치합니다. (CD가 없는 경우는 홈페이지 자료실에서 받을 수 있습니다.)

    img

  2. Hand와 CM-700을 4P케이블을 이용해서 연결합니다.

    img

  3. LN-101을 이용해서 CM-700과 PC를 연결합니다. (LN-101 드라이버 설치)

    img

  4. CM-700에 전원을 연결합니다.

    • SMPS를 이용하는 경우는 CABLE-PWR01을 이용합니다.
    • 직접 전원을 공급하는 경우는 권장 전압과 +/-방향을 주의하시기 바랍니다.

    img

작동

바로 실행할 수 있는 데모 프로그램을 제공하며 최초 구매시에는 설치되어 있습니다. (데모 프로그램 설치 방법)
PC와 연결하지 않고 바로 데모를 실행할 수 있습니다.

img

아래 단계로 PC와 연결하여 제어할 수도 있습니다.

  1. LN-101로 PC와 CM-700이 연결된 상태에서 로보플러스 터미널을 실행합니다.
  2. 올바른 포트 번호를 이용해서 RoboPlus Terminal을 포트와 연결시킵니다.
  3. CM-700의 전원을 켭니다.
  4. RoboPlus Terminal에 메시지가 출력되면 정상입니다.
  5. help를 입력하면 사용 가능한 명령어 목록이 나오며 해당 명령을 입력하면 작동합니다

로봇핸드 프로그래밍

개발자는 CM-700에 들어가는 Hand 제어 프로그램을 만들 수 있습니다.

개발환경 구축하기

CM-700에서 동작하는 프로그램을 만들기 위해서는 Atmega2561 개발 환경인 WinAVR과 Atmel Studio를 설치해야 합니다.

개발에 필요한 정보

개발에 필요한 정보를 얻을 수 있습니다.

데모 프로그램 분석

소스 구조

공용 소스(플랫폼에 상관 없이 Hand 어플리케이션 개발을 위해 사용할 수 있는 소스)

플랫폼 의존 소스(하드웨어에 의존적인 소스이며 다른 플랫폼에서 동작시키려면 포팅이 필요합니다.)

데모 소스

dynamixel.h, dynamixel.c, dxl_hal.h, dxl_hal.c

이 소스에 대한 정보는 다이나믹셀 SDK에서 보다 자세히 확인할 수 있습니다.

serial.h, serial.c

CM-700에서 UART1을 통해서 PC와 통신하기 위한 소스가 구현되어 있습니다.
PC와 통신은 다음의 설정 값으로 고정되어 있습니다.

표준 입출력 방식을 지원하여 <stdio.h>관련 함수를 사용할 수 있습니다.
각 함수의 사용법은 다음과 같습니다.

hand.h, hand.c

Dynamixel API를 이용해서 Hand를 보다 직관적으로 제어하기 위해 재구성한 API입니다.
소스를 이해하기에 앞서서 다음을 먼저 알아야 합니다.

각 함수의 사용법은 다음과 같습니다.

Hand의 설정을 값을 바꾸고 싶다면 Define된 값을 수정할 수 있습니다.

Demo.c

Hand 데모 프로그램 예제가 구현되어 있습니다.
프로그램의 동작 구조는 다음과 같습니다.

  1. Hand를 초기화시킵니다.
    • serial/dynamixel 통신을 초기화합니다.
    • compliance와 torque limit값을 설정합니다.
  2. Start버튼이 눌렸는지 확인하여 데모를 실행합니다. (PC연결 없이 데모 실행 기능 제공)
  3. PC로부터 문자열 입력을 기다립니다.
  4. 입력된 문자열로부터 명령어를 분리하여 각 기능을 실행하는 것을 반복합니다. (명령어와 파라미터는 공백 문자로 구분됩니다.)
    • help: 명령어 설명을 출력합니다. disp_help()
    • demo: 데모를 실행합니다. demo()
    • bend: 파라미터를 분리하여 hand_bend를 실행합니다.
    • unbend: 파라미터를 분리하여 hand_unbend를 실행합니다.
    • compliance: 파라미터를 분리하여 hand_compliance를 실행합니다.
    • limit: 파라미터를 분리하여 hand_torque_limit를 실행합니다.
    • torque: 파라미터를 분리하여 hand_torque_on 혹은 hand_torque_off를 실행합니다.
    • exit: 프로그램을 종료합니다.
    • 그 외의 명령어는 에러를 출력합니다.

이 프로그램은 일반적인 터미널 프로그램을 이용해서 텍스트기반으로 제어할 수 있습니다.
만약, PC로 Hand를 제어할 경우에는 시리얼 통신 프로그래밍을 통해 해당 명령어를 텍스트로 전송하여 제어 시스템을 구축할 수도 있습니다.

유용한 정보

Force Feedback

이 제품은 접촉면의 힘을 측정할 센서가 부착되어 있지 않아서 Force Feedback을 구현할 수 없습니다.
하지만, 관절에 사용된 Actuator인 다이나믹셀은 Load를 센싱할 수 있는 기능이 있습니다. 이 기능은 많은 제약이 있지만, 아주 기초적으로 Force Feedback을 구현할 수 있습니다.
다이나믹셀의 현재 하중 감지는 다음과 같은 특징이 있습니다.

필요에 따라 이 기능을 이용해서 Hand가 물체를 집었는지 안 집었는지를 판단하는 용도로 사용할 수 있습니다.
만약, 접촉면의 힘을 꼭 측정하려면 센서를 부착할 수 있습니다. 구현은 사용자가 직접 해야하며 아래의 절차를 참고하시기 바랍니다.

  1. 센서를 선정한다. FSR센서 같이 ADC로 입력 받을 수 있는 간단한 센서를 추천합니다.
  2. CM-700에 연결하는 권장 회로도와 핀 정보는 아래와 같습니다.

    img

    img

    (1) OUT : 5V 포트 제어용
    (2) VCC (5V)
    (3) ADC : 센서의 아날로그 신호 입력 있음.
    (4) GND
    (5) NC : 사용하지 않음

  3. Hand의 손가락에 집을 물건의 접촉이 잘 되도록 센서를 부착합니다.
  4. CM-700의 ADC 예제를 참고하여 센서의 값을 이용해서 프로그래밍합니다. (하드웨어 포트맵 참고)

로보플러스 사용하기

비 전문가를 위한 개발 환경인 RoboPlus를 이용해서 Hand를 제어할 수 있습니다.

다운로드

도면