Journal of Korea Robotics Society
[ ARTICLE ]
Journal of Korea Robotics Society - Vol. 9, No. 2, pp.111-116
ISSN: 1975-6291 (Print) 2287-3961 (Online)
Print publication date May 2014
Received 28 Jan 2014 Revised 3 Mar 2014 Accepted 2 Apr 2014
DOI: https://doi.org/10.7746/jkros.2014.9.2.111

속도 오차 기반의 충돌 감지 알고리즘

조창노1 ; 이상덕1 ; 송재복
1기계 공학, 고려 대학교 sdfzz@korea.ac.krysdchris@korea.ac.kr
Collision Detection Algorithm based on Velocity Error
Chang-Nho Cho1 ; Sang-Duck Lee1 ; Jae-Bok Song
1Mechanical Engineering, Korea University sdfzz@korea.ac.krysdchris@korea.ac.kr

This research was supported by Basic Science Research Program through the NRF of Korea (No. 2007-0056094) and supported by the Ministry of Trade, Industry and Energy under the Industrial Foundation Technology Development Program supervised by the KEIT (No. 10038660).
Corresponding author: Mechanical Engineering, Korea University, Anam-dong, Seongbuk-gu, Seoul, Korea ( jbsong@korea.ac.kr)


© KROS

Abstract

Human-robot co-operation becomes increasingly frequent due to the widespread use of service robots. However, during such co-operation, robots have a high chance of colliding with humans, which may result in serious injury. Thus, many solutions were proposed to ensure collision safety, and among them, collision detection algorithms are regarded as one of the most practical solutions. They allow a robot to quickly detect a collision so that the robot can perform a proper reaction to minimize the impact. However, conventional collision detection algorithms required the precise model of a robot, which is difficult to obtain and is subjected to change. Also, expensive sensors, such as torque sensors, are often required. In this study, we propose a novel collision detection algorithm which only requires motor encoders. It detects collisions by monitoring the high-pass filtered version of the velocity error. The proposed algorithm can be easily implemented to any robots, and its performance was verified through various tests.

Keywords:

Collision Detection, Physical Human-Robot Interaction, Robot Safety
1. 

서 론

최근 서비스용 로봇에 대한 수요가 늘어나고 있다. 이러 한 로봇은 사람과 같은 공간에서 여러 임무를 수행하므로 사람과 충돌할 가능성이 높고, 이러한 충돌은 사람에게 큰 상해를 입힐 수 있다. 따라서 사람과 로봇간의 충돌안전은 반드시 해결되어야 할 문제이며, 이를 위해 많은 연구가 진행되어 왔다. 충돌을 미연에 방지하기 위해 비접촉 센서 를 이용하여 충돌을 예측하는 알고리즘이 개발되었으나, 이는 계산량이 많고, 주변환경에 민감하여 실제로 적용되 기 힘들다[1]. 또한, 스프링 등의 메커니즘을 이용한 충격흡 수장치가 개발되었지만, 이는 다양한 상황에 적용되기 힘 들다[2]. VSA(Variable Stiffness Actuator)을 사용하여 충돌안전 을 확보하려는 연구가 진행되었으나, VSA는 복수의 액츄 에이터의 사용을 요구하므로 로봇의 가격을 상승시키는 요인이 된다[3,4].

반면에, 관절토크 정보를 이용하여 충돌로 인한 외력을 측정하고, 이를 이용하여 충돌을 감지하는 방식이 제시되 었다[5]. 그러나 이러한 알고리즘은 측정이 힘들고 부정확 한 가속도 정보를 요구한다는 문제가 있었다. 슬라이딩 섭 동 관측기 기반의 외력 감지 알고리즘이 제시되었으나 정 확한 마찰 모델을 필요로 한다는 단점이 있었다[6]. 또한, 일반화 운동량(generalized momentum) 기반의 관측기를 이 용, 가속도 정보가 없이 외력을 추출하고, 이를 이용하여 충돌을 감지하는 알고리즘도 개발되었다[7]. 그러나 모터전 류의 측정으로부터 얻은 관절토크는 관절에서의 마찰의 영향이 고려되지 않아서 실제 링크에 인가되는 토크와는 차이가 커서 사용이 힘들다는 문제가 있다. 이러한 문제를 해결하기 위하여 관절토크센서를 사용할 수 있지만, 이는 로봇의 가격 상승 요인이 되며, 또한 관절의 강성을 낮추 어서 로봇의 위치정밀도가 저하된다는 문제가 있다. 또한, 외력추정을 위한 기존의 충돌 감지 알고리즘은 로봇의 정 확한 모델을 필요로 하였다. 정확한 로봇모델은 CAD (Computer-Aided Design) 정보를 통해 얻을 수 있지만[8], 이 러한 CAD 모델만으로는 로봇이 물체를 파지하는 등의 작 업에 따른 로봇 모델의 변화를 반영할 수 없다. 이를 위하 여 로봇 동역학 파라미터 식별 알고리즘[9] 및 적응제어 기반의 충돌 감지기[10]가 개발되었지만 이러한 알고리즘들 은 가속도 정보를 요구하거나 계산량이 증가한다는 문제 가 있다.

따라서 기존의 충돌 감지 알고리즘은 로봇에 실제로 적 용하기가 힘들었으며, 모델오차에 민감하여 로봇이 물체를 파지할 시에는 충돌 감지가 불가능하다는 단점이 있었다. 본 연구에서는 로봇의 모터 엔코더 정보만을 이용한 속도 오차 기반의 충돌 감지 알고리즘을 제시한다. 제시된 알고 리즘은 로봇의 모델 정보 및 추가적인 센서를 요구하지 않으므로 다양한 상황에 쉽게 적용할 수 있다.

본 논문은 다음과 같이 구성되어 있다: 2절에서는 제시 된 충돌 감지 전략에 대해 설명하고, 3절에서 실험을 통해 제시된 알고리즘의 성능을 검증한다. 연구의 결론은 4절에 제시한다.


2. 

충돌 감지 알고리즘

로봇이 동작 중 어떠한 물체와 충돌하게 되면 그림 1과 같이 로봇의 각 관절에는 충돌로 인한 외력토크가 작용한 다. 이러한 충돌로 인한 외력을 측정하여도 충돌 감지가 가능하지만, 이는 로봇의 정확한 물성치 정보와 관절토크 측정을 요구하므로 본 연구에서는 배제되었다.

충돌 발생 시에 로봇에는 충돌로 인한 외란이 가해지므 로 정해진 궤적을 추종하지 못하게 되고, 순간적으로 위치 및 속도 오차가 발생하게 된다. 이러한 위치 및 속도 오차 는 모터 엔코더를 이용하여, 별도의 센서 없이도 쉽게 측 정이 가능하다. 충돌 시에 위치 및 속도 오차 중에서 속도 오차에 더 큰 변화가 발생하므로, 본 연구에서는 속도 오 차를 이용하여 충돌을 감지하였다. 로봇의 속도 오차는 다 음과 같이 정의될 수 있다.

e=qd-qm(1) 

여기서 e는 속도 오차, qd 는 목표 관절속도, qm 는 엔 코더에서 측정한 실제 관절속도이다. 그러나 속도 오차는 충돌뿐만 아니라, 로봇 제어기 성능이나 수행하고 있는 작 업에 의해서도 발생할 수 있다. 이러한 충돌 이외의 요인 에 의한 속도 오차는 충돌 감지기의 오작동을 야기할 수 있으므로, 충돌 감지에는 속도 오차 중 충돌에 의한 오차 만을 추출하여야 사용하여야 한다.

이러한 충돌에 의한 속도 오차는 고역통과필터(high-pass filter, HPF)를 사용하여 추출할 수 있다. 로봇 자체의 중량 과 모터 성능의 한계로 인해서 로봇은 주로 저주파수 영 역에서 동작하므로, 로봇의 정상 동작 중에 나타나는 속도 오차 역시 저주파수 영역에서 나타난다. 그러나 충돌에 의 한 속도 오차는 급격하게 변동하므로 고주파수 성분을 포 함하게 되므로, HPF를 사용하면 충돌에 의한 속도 오차만 을 효과적으로 감지할 수 있다. 이때 필터의 차단주파수는 로봇의 동작속도를 고려하여 설정한다.

그러나 HPF의 사용으로 인해서 제시된 알고리즘은 HPF 의 차단주파수 이하의 주파수를 가진 충돌은 감지할 수 없다. 즉, 느린 충돌이나 정적 충돌에는 대응할 수 없다. 그러나 이러한 느린 충돌은 사람에게 큰 해를 끼칠 가능 성이 작으므로, 본 연구에서는 사람에게 실제로 해를 입힐 수 있는 빠른 충돌만을 고려하였다. 본 연구에서 제시된 충돌 감지기를 그림 2에 나타내었다.

그림 2에서 ef는 HPF에서 처리된 속도 오차다. 그림에서 볼 수 있듯이, 제시된 충돌 감지기는 추가적인 센서를 요 구하지 않으므로, 기존의 로봇에 쉽게 적용이 가능함을 알 수 있다. 또한, 충돌을 감지함에 있어서 로봇의 모델 정보 를 전혀 사용하지 않으므로 로봇의 모델 변화에 관계없이 안정적인 충돌 감지가 가능하며, 속도 오차만을 사용하므 로 많은 계산량을 요구하지도 않는다.

충돌 감지를 위해서는 위의 충돌 감지기를 통해 계산한 ef를 미리 설정한 임계치(threshold)와 비교하여야 한다. 이 때 임계치는 로봇에 설치된 엔코더 신호의 잡음신호와 충 돌 감지의 민감도 등을 고려해서 설정되는데, 이러한 충돌 감지를 식으로 나타내면 다음과 같다:

Ci=1 ifefi>threshold0 ifefithresholdi=1,...,n(2) 

여기서 i는 로봇의 관절번호이며, Ci는 관절 i의 충돌 여부 를 나타내는 인덱스이다. 만약 m(mn) 번째 관절에서 충 돌이 발생한다면 0부터 m까지의 관절에는 외력토크가 작 용하므로 C0부터 Cm까지가 1이 된다. 따라서 본 알고리즘 을 사용하면 충돌의 위치를 유추할 수 있다. 또한, 속도 오 차의 방향으로부터 충돌의 방향을 유추할 수 있으며, 오차 의 크기로부터 상대적인 충돌의 크기 또한 알 수 있다. 따 라서 이를 이용하면 효율적인 충돌대응이 가능하다. 한편, 이러한 충돌에 대한 로봇의 대응으로, 본 연구에서는 충돌 이 감지되면 로봇이 충돌의 반대 방향으로 미리 정해진 각도만큼 후퇴하도록 하였다.


3. 

실험 결과

3.1. 

실험장치 구성

제안한 충돌 감지 알고리즘의 성능을 검증하기 위해서 그림 3과 같은 2자유도 스카라(SCARA) 로봇을 사용하여 실험을 수행하였다. 로봇의 말단에는 로봇의 물체 파지를 모사하기 위해 1kg의 무게추를 설치하기 위한 소켓을 부 착하였다. 로봇은 사용자를 위한 GUI를 제공하는 호스트 (host) PC와 실질적인 제어를 담당하는 타겟(target) PC를 이 용하여 제어하였으며, 이 두 PC는 TCP/IP를 이용하여 서 로 통신을 하게 된다. 타겟 PC에는 실시간 운영체제인 NI 사의 PharLab ETS를 설치하여 안정적인 제어가 가능하게 하였다. 타겟 PC는 1ms의 제어 주기로 구동되며, 로봇의 모션제어와 충돌 감지를 수행한다. 또한 로드셀(load cell)를 설치할 수 있도록 하여 충돌 감지에 걸리는 시간을 측정 할 수 있도록 하였다. 이때 충돌 감지 임계치는 0.3°/s으 로, 고역통과필터의 차단주파수 값은 5Hz로 설정하였다. 이는 실험적으로 구한 값이며, 로봇마다 잡음 특성 등이 다를 수 있으므로 주의하여야 한다.

3.2. 

충돌 실험

우선 제시된 알고리즘이 실제로 충돌을 감지할 수 있는 지를 확인하기 위하여 로봇의 1, 2축을 각각 ±60°과 ± 30°로 움직이는 도중에 링크 2에 양 방향으로 한 번씩, 총 2번의 충돌을 가하였다. 이때의 필터 처리된 속도 오차 ef를 그림 4에 나타내었다.

그림 4에서 알 수 있듯이, HPF로 처리된 속도 오차는 평 소에는 0에 가까운 값을 유지하지만, 충돌이 발생하는 7초 및 18초에서 급격히 상승함을 알 수 있다. 이를 이용하여 로봇은 효과적으로 충돌을 감지하게 된다. 이때 관절 1의

충돌속도는 각각 67.3°/s 및 -48.7°/s이었으며, 관절 2의 충 돌속도는 각각 32.9°/s 및 -23.7°/s이었다. 또한, 실험 결과를 보면, 충돌 후 속도 오차가 양에서 음의 방향으로 크게 변 하는 것을 볼 수 있는데, 이는 로봇이 빠른 충돌 대응을 위해 급격하게 뒤로 후퇴하면서 발생하는 속도 오차에 의 한 것이다.

앞서 언급한 바와 같이 제시된 충돌 감지 알고리즘은 HPF의 사용으로 인해 로봇은 정적 충돌은 감지할 수 없게 되는데, 이를 검증하기 위해 다음과 같은 두 가지 충돌 상 황을 비교하였다. 우선 동적 충돌을 보이기 위해 그림 5(a) 와 같이 로봇이 시작 지점으로부터 가속하여 로드셀과 충 돌하도록 하였다. 또한, 정적 충돌을 묘사하기 위해 그림 5(b)와 같이 로봇이 로드셀과 접촉한 상태에서 이동하여 로드셀에 지속적으로 힘을 가하도록 하였다.

그림 67에 동적 충돌의 실험 결과를 나타내었다. 그 림 6은 충돌 시 각 관절의 속도 오차며, 그림 7은 이때 로 드셀로 측정한 외력이다.

충돌속도는 관절 1, 2가 각각 36.7°/s 와 18.3°/s였으며, 결 과에서 보듯이 이러한 동적 충돌 시에는 급격한 외력이 발생하며, 이에 따라 속도 오차 역시 빠르게 변하는 것을 알 수 있다. 따라서 이러한 동적 충돌은 제시된 감지기로 쉽게 감지가 가능하다.

또한 정적인 충돌시의 속도 오차를 그림 8에, 로드셀에 가해진 외력을 그림 9에 나타내었다. 로드셀에 측정된 외 력으로부터 알 수 있듯이, 이러한 정적 충돌은 힘의 크기 는 동적 충돌과 거의 유사하지만, 급격한 외력의 변화를 야기하지 않는다. 따라서 속도 오차 역시 저주파수가 되므 로 제시된 충돌 감지 알고리즘으로는 측정이 불가능함을 알 수 있다.

3.3. 

물성치 변화에 따른 충돌 실험

그림 2에서 알 수 있듯이, 제시된 충돌 감지 알고리즘은 로봇의 물성치 정보를 요구하지 않으며, 따라서 로봇이 물 체를 파지하여 물성치가 변하더라도 안정적인 충돌 감지 가 가능하여야 한다. 이를 검증하기 위해 로봇에 1kg 무게 추를 추가한 뒤 충돌 실험을 반복하였고, 그 결과를 그림 10에 나타내었다.

이때 관절 1의 충돌속도는 52.6°/s와 -56.7°/s였으며, 관 절 2의 충돌속도는 27°/s와 -25.8°/s였다. 그림 4에 나타 낸 1kg 무게추의 추가 전의 결과와 비교해 보면, 충돌로 인해 발생한 속도 오차의 크기에는 다소 차이가 있으나, 전체적인 경향은 동일함을 알 수 있다. 따라서 제시된 알 고리즘은 물체의 파지로 인해 로봇의 모델 정보가 크게 변하더라도 안정적으로 충돌 감지가 가능함을 알 수 있다.

3.4. 

충돌 감지 시간

마지막으로, 제안한 충돌 감지 알고리즘의 충돌 감지 시 간 측정을 위한 실험을 수행하였다. 충돌로부터 사람을 보 호하기 위해선 빠르게 충돌을 감지하여야 한다. 일반적으 로 충돌은 10ms 내에 최대로 상승하므로 충돌 감지 알고 리즘은 그 안에 충돌을 감지할 수 있어야 한다[11]. 충돌 감 지 시간을 측정하기 위하여 로드셀을 이용하여 실제 충돌 이 일어난 시간과 감지된 시간을 비교하였으며, 사람에게 큰 상해를 줄 수 있는 빠른 충돌을 가정하여 충돌속도를 관절 1과 2를 각각 75°/s 와 25°/s로 설정하였다.

그림 11(a)는 충돌이 가해진 로드셀의 출력을 그림 11(b) 는 충돌 인덱스를 나타낸다. 결과로부터 알 수 있듯이, 제 시된 충돌 감지 알고리즘을 사용하면 3~4 ms 내에 충돌 감 지가 가능함을 알 수 있다. 따라서 본 알고리즘을 사용하 면 충격력이 최대가 되기 전에 충돌을 감지하고 대응함으 로써 사용자를 보호할 수 있음을 알 수 있다. 이때 충돌 인덱스는 충돌이 발생하였음을 알리며, 충돌 해제 신호가 들어오기 전까지는 1로 유지되도록 하였다.


4. 

결 론

본 연구에서는 모델오차에 민감하고 추가적인 센서를 요구하는 기존의 충돌 감지 알고리즘의 한계를 보안하기 위하여 속도 오차 기반의 충돌 감지기를 제안하였다. 로봇 의 모터 엔코더를 통해 속도 오차는 쉽게 측정할 수 있으 며, 로봇 동작에 의한 속도 오차를 배제하고 충돌로 인한 오차만을 사용하기 위하여 고역통과필터를 사용하였다. 다 양한 실험을 통해 제시된 충돌 감지 알고리즘의 성능을 검증하였으며, 다음의 결론을 도출하였다:

  1. 제시한 충돌 감지기는 고가의 토크센서나 측정이 힘든 로봇의 모델 정보 없이도 안정적인 충돌 감지가 가능 하다. 또한, 로봇의 모델정보의 변화에도 상관 없이 충 돌 감지가 가능하다.
  2. 제시된 충돌 감지기는 계산량이 적고, 적용이 간편하여 기존의 로봇에 쉽게 적용될 수 있다.
  3. 제시된 충돌 감지기는 충돌의 위치와 방향, 그리고 상 대적인 크기를 측정함으로써 효율적인 대응을 가능하 게 한다.

REFERENCES

  • Morikawa, S, Senoo, T, Namiki, A, Ishikawa, M, “Real-time collision avoidance using a robot manipulator with Light-weight small high-speed vision system,”, (2007), Proc. of the IEEE Int. Conf. on Robotics and Automation, p794-799. [https://doi.org/10.1109/robot.2007.363083]
  • Park, J. J, Song, J. B, “A nonlinear stiffness safe joint mechanism design for human robot interactions,”, ASME Journal of Mechanical Design, (2010), 132(6), p061005-1-8. [https://doi.org/10.1115/1.4001666]
  • Kim, B. S, Park, J. J, Song, J. B, “A serial-type dual actuator unit with planetary gear train: basic design and applications,”, IEEE/ASME Transactions on Mechatronics, (2010), 15(1), p108-116. [https://doi.org/10.1109/tmech.2009.2019639]
  • Tonietti, G, Schiavi, R, Bicchi, A, “Design and control of a variable stiffness actuator for safe and fast physical human/robot interaction,”, (2005), Proc. of the IEEE Int. Conf. on Robotics and Automation, p526-531. [https://doi.org/10.1109/robot.2005.1570172]
  • Takakura, S, Murakami, T, Ohnishi, K, , “An approach to collision detection and recovery motion in industrial robot,”, (1989), Proc. of 15th Annual Conf. of IEEE Industrial Electronics Society, p421-426. [https://doi.org/10.1109/iecon.1989.69669]
  • Yoon, S. M, Lee, M. C, Kim, C. Y, Kang, B. H, “Evaluation of a possibility of estimation of reaction force of surgical robot instrument using sliding perturbation observer,”, Journal of Korea Robotics Society, (2012), 7(1), p20-28. [https://doi.org/10.7746/jkros.2012.7.1.020]
  • De Luca, A, Albu-Schaffer, A, Haddadin, S, Hirzinger, G, “Collision detection and safe reaction with the DLR-III lightweight manipulator arm,”, (2006), Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robotics and Systems, p1623-1630. [https://doi.org/10.1109/iros.2006.282053]
  • Albu-Schaffer, A, Hirzinger, G, “Parameter identification and passivity based joint control for a 7 DOF torque controlled light weight robot,”, (2001), Proc. of the IEEE Int. Conf. on Robotics and Automation, p2852-2858. [https://doi.org/10.1109/robot.2001.933054]
  • Choi, Y, “Dynamic parameters identification of robotic manipulator using momentum,”, Journal of Korea Robotics Society, (2012), 7(3), p222-230. [https://doi.org/10.7746/jkros.2012.7.3.222]
  • De Luca, A, Mattone, R, “An adapt-and-detect actuator FDI scheme for robot manipulators,”, (2004), Proc. of the IEEE Int. Conf. on Robotics and Automation, p4875-4980. [https://doi.org/10.1109/robot.2004.1302506]
  • Haddadin, S, Albu-Schaffer, A, Hirzinger, G, “Safety evaluation of physical human-robot interaction via crashtesting,”, (2007), Robotics: Science and Systems Conf, p217-224. [https://doi.org/10.15607/rss.2007.iii.028]

Fig. 1.

Fig. 1.
Collision of robot manipulator

Fig. 2.

Fig. 2.
Proposed collision detector

Fig. 3.

Fig. 3.
Experimental setup

Fig. 4.

Fig. 4.
Velocity Error upon collision without payload

Fig. 5.

Fig. 5.
Experimental setup: (a) Dynamic collision and (b) Static collision

Fig. 6.

Fig. 6.
Velocity error upon dynamic collision

Fig. 7.

Fig. 7.
Load cell output upon dynamic collision

Fig. 8.

Fig. 8.
Velocity error upon static collision

Fig. 9.

Fig. 9.
Load cell output upon static collision

Fig. 10.

Fig. 10.
Velocity Error upon collision with 1kg payload

Fig. 11.

Fig. 11.
Load cell output and collision index upon collision