안녕하세요. 3번째 X-review 작성자 최인하입니다. 이번 리뷰는 연구에 사용하기 위한 Robot hand를 제작하는 과정에서 논문이 있어서 읽고 정리해봤습니다. 그럼 바로 시작해보겠습니다.

Abstract
Robot hand는 어떤 task를 사람과 같이 dexterity(손재주있게) 수행하는 것을 목적으로 합니다. 또한 사람과 같은 hardware design은 사람의 데이터를 이용하기 편리합니다. 따라서 dextreous manipulation은 software 적인 측면과 hardware 적인 측면 둘다 중요하다고 생각합니다. 하지만 시중에 나와있는 인간 수준의 robot hand들은 가격이 비싸거나, 유지 보수가 높거나 등등의 문제로 연구를 위한 접근에 장애물이 많습니다.
따라서 이 논문에서는 위의 문제를 해결하기 위해서 open source 17-DOF, tendon-driven hand인 ORCA-Hand를 제공합니다. 또한 뒤에서 설명하겠지만 popping joint, auto-calibration 등을 제공하여 복잡성을 줄이면서 신뢰성, 강건성을 확보했다고 합니다. (가격도 합리적이라고 합니다.)
Orca-hand는 이 논문을 통해 teleoperation, imitation-learning, reinforcement learning 등 다양한 분야에서 활용이 가능함을 입증하였고, 20시간 구동을 통해서 장시간 구동에도 문제가 없다는 것을 보였습니다.
Introduction
지금 사용되는 그리퍼는 좋은 성능을 가지지만 인간 손을 위해 설계된 도구나 다양한 task를 수행하는데 어려움을 겪었습니다. 따라서 인간 손을 닮은 5지 그리퍼를 만들기 위한 연구가 계속 되었지만, 자유도가 높아지면서 complexity가 증가하고 비용이 증가했습니다. 또한 실험을 위해 내구성 반복성 다용도성을 만족 시켜야 되며, teleoperation, imitation-learning 등 정교한 조작을 위해서 근본적으로 하드웨어 적인 측면의 중요도가 올라갔습니다.
Orca-hand는 tendon 구동 방식을 채택하였습니다. 이는 각 관절을 tendon으로 구동시키는 방식입니다. 이전에도 이러한 시도는 많았으나 dexerity의 제한과 real world에서 autonomous manipulation tasks의 적용 가능성을 입증하지는 못하였습니다. 또한 각 구동부에 모터를 장착하는 direct-driven hands 같은 경우에는 부피가 커지고 움직임이 둔해지며, 관성이 증가하여 인간의 손의 부드러움을 모사할 수 없다는 단점이 있습니다.
위와 같은 문제를 해결한 Orca-hand의 key contribution은 다음과 같습니다.
- Open source이고 3D 프린팅이 가능한 디자인, 낮은 가격, 쉬운 조립
- Auto calibration을 통한 joint error 보정
- 내부 tendon과 함께 연결되는 깔끔한 tactile sensor 구조
- 파손되기 전에 분리되는 joint 구조
또한 real world에서 autonomous manipulation tasks를 장시간 수행할 수 있다는 시연 결과도 공개하였습니다.

System Design
이 부분에서는 Orca-hand의 설계 부분에 대해 자세하게 설명합니다. ORCA는 wrist 관절을 제외한 다른 관절들은 모두 tendon-driven 방식입니다. 각 관절은 두개의 0.4mm tendon을 이용하여 구동되며, 각각의 줄이 관절의 신전과 굽힘을 담당합니다. 이러한 방식을 사용하여 direct-driven 방식보다 inertia가 적어 더욱 민첩하고 빠른 움직임이 가능하므로, 사람의 손 같은 자연스러운 움직임이 가능하게 됩니다.
하지만 시간이 지날 수록 이러한 방식에는 마찰, 마모, tendon의 텐션 감소 등의 문제점이 있습니다. ORCA는 이러한 문제점들을 다음과 같이 해결하였습니다.
- 우선 PLA와 tendon의 관절 부분에서 직접적인 접촉을 피하기 위해 metal pin과 rod를 사용했습니다.
- Teflon tube를 사용함으로써 tendon이 비선형적으로 연결되는 부분에서 마찰을 감소시켰습니다.
- tendon의 장력이 감소하는 것을 고려하여 다시 사용자가 다시 텐션을 수동으로 조절할 수 있도록 ratchet spool mechanism 방식을 모터에 적용하였습니다.

poppable pin joint
ORCA hand는 각 조인트마다 베어링 구조를 사용하여 조인트가 큰 하중을 받을 때 부러지는 대신 빠지도록 설계하였습니다.
Finger and Palm Design

각 관절 용어에 대해서 더 알아보기 편하게 그림을 가져왔습니다. 이 그림을 보면서 밑에 글을 읽으시면 더 쉬울 것 같습니다.

위의 표는 각 관절의 RoM을 나타낸 표입니다. ORCA-hand는 의도적으로 2~5번 손가락의 DIP 관절을 제거하였습니다. 이는 인간의 손에서 DIP 관절은 일반적인 task에서 구동되지 않기 때문에 정교한 조작에서 다른 관절보다 중요성이 낮다고 보았기 때문입니다. 이를 통해 조립과정이 단순화 되었다고 설명합니다. 따라서 2~5번 손가락은 3자유도 엄지 손가락은 4자유도를 갖게됩니다.
Wrist Design
ORCA는 손목 부분을 추가함으로써 파지 성능을 크게 향상시켰다고 합니다. 손목 관절은 1개의 자유도를 가지며, 60도 굴곡 및 신전이 가능합니다. 또한 손목 관절은 벨트 구동 방식을 채택하였으며, 이로 인해 하중 고려와 장력 손실을 최소화 했다고 합니다. 또한 실제 인간의 손목은 양측 움직임이 있지만 ORCA에서는 이를 제한하였는데, 논문에서는 양측 움직임이 신전 굴곡에 비해 제한적이고, 복잡성과 비용성 증가로 추가하지 않았다고 합니다.
Tactile sensing
논문에서 나온 Tactile sensing 방식을 소개하면 FSR 센서를 사용하여 이진 촉각 피드백을 제공한다고 합니다. (제가 알고있는 FSR 센서는 가해지는 힘의 크기를 측정할 수 있는 것으로 아는데 ORCA에서는 구현하지 않은 것 같습니다. 생각해보면 실리콘 밑에 들어가는 구조여서 힘의 크기를 측정하는 것이 어려울 것 같습니다.) 센서는 0.2mm의 구리선을 통해서 회로랑 연결되며 구리선은 PTFE 튜브로 인해 외부 손상으로 부터 보호 됩니다. 참고로 저희는 ORCA hand의 Tactile 부분은 구현하지 않았습니다.
Self-Calibration for Accurate Control
제가 생각하기에 ORCA에서 중요한 부분은 Calibration 부분인 것 같습니다. 특히 imitation learning을 위한 데이터를 수집하는 과정에는 기록의 일관성이 중요합니다. 만약 여러 실험에서 인간의 Teleoperation 입력과 로봇 손의 실제 움직임 간의 차이가 크게 변동한다면, policy가 인간 동작을 정확히 모방하기 어렵다고 합니다. 이러한 일관성은 데이터 수집뿐 아니라 policy 실행시에도 필수적입니다. train data와 실제 시스템 간에 offset이 존재하면 학습된 모델은 mismatched condition 상황에서 generalization에 실패하여 성능 저하를 초래 할 수 있습니다. 이는 특히 sim to real gap을 줄이려는 경우 매우 중요합니다. 센서를 이용할 경우 신뢰할 수 있는 제어 일관성을 확보 할 수 있지만, 비용이 증가하므로 orca에서는 보다 cost effective하고 단순한 접근법을 소개합니다. 우선 다음과 같이 정의합니다.
- θᵢ: 관절 i의 실제 각도
- θ̃ᵢ: 관절 i의 명령 각도
- φᵢ: 동일 관절 i에 대응하는 모터의 회전 변위
- 이상적인 경우에는 θ̃ᵢ = θᵢ가 성립합니다.

여기서 f는 비선형적 모터 관절 매핑 함수이며, 모델 오차 ε는 다음을 포함합니다.
- 관절 및 모터의 tendon radius of joint and motor: rj, rm (모터와 각 관절에 tendon이 감긴정도)
- motor drift: d
- build-up slack: s (시간이 지날 수록 변하는 실의 tension으로 인한 오차)
- 측정 오차: m
이런 비선형 함수와 큰 오차를 통하여 제어를 시도하는 것은 어렵고 복잡하기 때문에 ORCA에서는 CoR(Center of rotation) 즉 회전 중심을 적용하여 문제를 해결했습니다. 설명해 보면 각 관절의 tendon이 동일한 CoR을 통과하거나 비슷한 위치에 있도록 하여 moment arm을 일정하게 유지하도록 합니다. 이로인해 실의 길이가 변할 때마다 각 관절이 일정하게 회전할 수 있도록 합니다. 이로인해 비선형적 모터 관절 매핑 함수가 다음과 같이 선형적 관계로 나타날 수 있게 됩니다.

즉 이제 관절의 명령 각도와 모터의 회전 변위 사이의 관계 R을 구하고, 오차항을 최소화 하기 위해 Auto calibration을 진행합니다. 방식을 설명해보면 다음과 같습니다.
- 우선 제공된 각 관절의 RoM을 확보합니다. 그 다음으로 각 관절을 최대 굴곡및 최대 신전 지점까지 이동시킨 후 관절의 전체 운동 범위에서 모터가 회전한 양을 구합니다. 이는 다음과 같습니다

- 이제 관절의 RoM과 운동 범위를 통해 모터의 변속비 R을 다음과 같이 구할 수 있습니다. 여기서 R은 위의 식 R’의 역수라고 생각하시면 됩니다. R’ * φ = θ̃ᵢ 이므로 모터의 회전 각 φ = R * θ̃ᵢ로 나타낼 수 있기 때문입니다.

위의 방식을 통해 최종적으로 다음과 같은 식이 나오며, 오차항이 간소화되고 크기 또한 감소하게 됩니다.

헷갈릴 수 있어서 풀어서 설명해보면 rj와 rm은 CoR을 지정해 주면서 사라지게 되고, 측정 오차 m은 수동으로 진행되는 calibration이 아니라 auto로 진행되므로 사라지게 됩니다.
Hardware Performance Tests
Reliability and Robustness
이 부분에서는 ORCA의 장시간 작업에 대한 Reliability와 Robustness를 측정하기 위해 손바닥에 인형을 고정 후 모든 손가락을 2시간 반동안 4초마다 한번씩 grasp하도록 test를 구성했다고 합니다. 또한 손목 관절은 40도의 범위로 굴곡 신전 시키되 16초마다 한 번의 빈도로 구성했다고 합니다.

그림에서 C는 2.5 시간동안 중지의 MCP, PIP 관절을 구동하는 모터의 파지 주기별 최대 전류값, 그리고 손목 관절의 신전 굴곡 주기별 최대 전류값이 표시되어 있습니다. 전류값이 동일하게 찍히는 것을 보아 ORCA의 구조적 강건성, 반복성 장시간 수행 능력 등을 확인할 수 있습니다. 또한 본체의 cooling fan이 overheating을 방지해 사실상 무한한 작동이 가능하도록 합니다. 논문에서는 2.5 시간 이상으로도 할 수 있는데 신뢰성 입증에 이미 충분하다고 보아 중간에 test를 중단했다고 합니다.
A는 LEAP Hand와 Orca hand의 정확도 및 지연시간을 비교하기 위해 2Hz, 5Hz의 사인파 패턴으로 작동 시킨 것을 나타내며, LEAP Hand 보다 더 부드러운 움직임이 가능하다는 것을 보였습니다. 하지만 tendon driven 방식 특성상 tendon을 장기적으로 조여야 된다는 단점이 있다고 합니다.
Experiment

위의 사진으로 ORCA hand가 Imitation learning 과 RL model을 사용하여 학습하여도 신뢰성 있는 결과를 보여줍니다. B는 A2C architecture 로 sim 상황에서 병렬로 학습을 진행 후 실제 Orca hand가 손 안에서 물체를 돌리는 모습을 보여주며, A는 Imitation learning으로 학습된 policy를 통해 7시간 동안 pick and place를 하는 모습입니다. 저자는 7시간이 tendon이 끊어지거나 하드웨어적 이슈가 발생해서 7시간 동안 진행 한 것이 아니라 더 이상 진행해도 의미가 없겠다 싶어서 멈춘 것이라고 강하게 어필합니다.
Conclusion
논문에서는 장기적으로 사용시 수동으로 다시 tendon에 텐션을 주는 작업을 해결하기 위해 tension을 자동으로 줄 수 있는 방법을 개발하겠다고 합니다. 또한 센서를 학습 파이프라인에 통합해서 다양한 환경과 효과적으로 상호작용 할 수 있도록 딥러닝 알고리즘을 포함한다고 합니다.
저도 빠른 시일내 지금 조립한 Orca hand에서 발생하고 있는 소프트웨어, 하드웨어 적 이슈?를 해결하고 vision based teleoperation까지 시도하고 싶습니다. 긴글 읽어주셔서 감사합니다.