배너
닫기

테크노트

배너

[TECHNOLOGY FOCUS_Future Convenience Store Contest ⑧]Future Convenience Store Challenge를 위한 이동 매니퓰레이터 개발

  • 등록 2019.05.02 11:41:46
URL복사

[첨단 헬로티]


오사카시립대학에서는 옥외에서 2km 이상의 자율이동을 가능하게 하는 로봇 시스템을 기반으로, FCSC(Future Convenience Store Challenge)에 참가하기 위한 이동 매니퓰레이터를 개발했다.


대차의 이동 제어 시스템은 옥외의 사양과 동일하게 하고, FCSC의 진열·폐기 과제에 대응하기 위해 파지 대상의 인식과 매니퓰레이터 기능을 추가하는 것에 중점을 두고 개발했다. 이동 매니퓰레이터의 완성도를 그림 1에 나타냈다. 진열·폐기 과제에서 로봇은 백야드에서 진열 선반까지 이동한 후, 컨테이너 내에 들어간 상품을 진열하고 진열 작업 완료 후에 진열 선반의 상품을 회수하는 작업을 한다.



이 글에서는 이동 매니퓰레이터의 하드웨어 구성과 진열·폐기 과제를 수행하기 위한 소프트웨어 구성에 대해 설명한다. 또한, 소프트웨어 개발은 ROS(Robot Operating System)를 사용해서 하고 있다.


하드웨어의 구성


1. 이동대차

이동대차에는 본 연구실에서 개발한 Dulcinea을 사용했다. Dulcinea는 오카테크제의 MECROBOT을 채용하고 있으며, 차동식 2륜구동 이동대차이다. Dulcinea는 모터 드라이버(Tiny Power OKA-D-102N)에 의해 엔코더 DC 기어모터(24V, 250W) 2개를 제어하고 있으며, 모터 드라이버에 이동대차의 치수 파라미터를 입력함으로써 차동형 2륜구동 이동로봇의 속도 제어가 가능하다. 이동한 결과는 하나 전 통신에서의 휠 오도메트리 적산 결과를 모터 드라이버로부터 얻을 수 있다. 또한, Dulcinea 내부에 1축 자이로 센서(Analog Devices ADIS16136)를 탑재, 휠 오도메트리의 각도 성분을 자이로에 의한 적분값으로 전환한 자이로 오도메트리를 한다.


2. 로봇 암과 핸드

로봇 암에는 Universal Robots사의 UR5을 사용한다. UR5는 수직 다관절형 6자유도의 로봇 암으로, 최대 리치가 850[mm], 최대 가반중량이 5[kg]이다. ROS용 프로그램이 공개되어 있으며, 시뮬레이션 모델을 사용한 동역학 시뮬레이션이나 ROS 노드 경유로 UDP 통신에 의한 실제 기기의 제어가 가능하다.



로봇 핸드에는 SAKE Robotics의 EZGripper Quad를 사용한다(그림 2). EZGripper Quad는 개폐식 2손가락 구성의 핸드가 2단으로 된 4손가락 구성의 핸드로, 1개의 모터마다 2손가락의 개폐를 제어한다. 열구동의 손가락으로 되어 있으며, 작은 대상물은 집어서 파지하고 큰 대상물은 감싸서 파지할 수 있다. 폭이 넓은 도시락의 경우, 최대로 연 로봇 핸드를 도시락의 상면에 눌러 붙인 후 닫는 지령을 함으로써 열구동 손가락을 도시락 끝에 걸어서 파지 할 수 있다. 서보모터는 Dynamixel MX-64이며, 공개되어 있는 ROS 드라이버를 통해 관절 각도와 토크를 제어한다.


3. 센서 구성

UR5의 끝단에 뎁스 카메라 RealSence SR300을 설치한다. RealSence는 취득한 화상이나 거리 정보로부터 상품 인식을 하기 위해 사용한다. 이동대차의 전면에는 호쿠요전기의 3D-LiDAR(3D-URG)을 설치, 주변 환경의 장해물 회피에 사용한다. 3D-LiDAR는 2D 레이저로는 인식이 어려운 선반 주변의 단차 부분을 인식하는 것이 가능하며, 상품 선반까지 정확한 접근을 가능하게 한다.


4. 이동 매니퓰레이터

UR5를 이동대차의 앞바퀴 상부에 설치, 이동대차 후부에 UR5의 손끝이 닿는 범위에 컨테이너를 탑재한다. 컨테이너는 산코 SN 컨테이너 C#32을 사용했으며, 외형 치수는 0.46(W)×0.716(D)×0.128(H)[m]이다.


대회 규정상 컨테이너 내의 상품 위치는 참가자마다 자유롭게 결정해도 되는 것이었기 때문에 상품을 꺼내는 작업은 미리 궤도를 계획해 두고 재생하는 것만으로 했다. 폐기 작업은 진열 선반에 놓인 폐기 예정인 샌드위치를 식별해 컨테이너 내에 회수한다.


이동 매니퓰레이터에는 이동대차의 위치 제어를 하는 노트북 PC(HP EliteBook 820 G3 Notebook PC : 메모리 16GB, CPU Intel Core i7-6600U)를 1대, 매니퓰레이터의 제어, 핸드 카메라에 의한 물체 인식, 그리퍼 제어를 하는 PC(Intel NUC7i7BNH: 메모리 16GB, CPU Intel Core i77567U)를 1대 탑재하고 있다.


소프트웨어 구성


ROS(Robot Operating System)의 패키지군을 사용해 시스템 개발을 했다. UR5의 역운동학 계산·궤도 계획에는 MoveIt!을 사용한다. MoveIt!는 rviz 상에 표시한 로봇 모델이나 장해물의 모델을 기초로 해, 자기 간섭이나 장해물 회피를 하면서 궤도 계획을 할 수 있다.


소프트웨어는 내비게이션 파트와 매니퓰레이션 파트로 나누어 구축한다. 내비게이션 파트는 백야드에서 진열 선반까지 로봇의 이동 및 진열 선반 간의 이동을 한다. 매니퓰레이션 파트는 진열·폐기 작업 시의 대상 상품을 조작한다. 매니퓰레이션 파트는 내비게이션 파트의 상위로서 기능하고, 센서에 의해 취득된 자기 위치 정보로부터 매니퓰레이션을 가능하게 하는 위치까지의 이동을 내비게이션 파트에 지시한다.


1. 내비게이션

백야드에서 진열 선반까지의 자율이동은 주변 환경의 지도 정보가 필요하다고 생각했지만, 진열 선반 이외의 환경은 위치가 변화하는 것이 많아 옥외 로봇 콘테스트에서 이용하고 있던 2D의 지도 정보를 사전에 구축하고, 그 지도 정보로부터 현재 위치를 추정하는 방법을 이용할 수 없었다. 따라서 대회 규정의 모의 점포 환경 치수보다 진열 선반까지의 이동은 단거리이기 때문에 이동 중의 위치 관리는 오도메트리 정보만으로도 충분한 정도를 유지할 수 있다고 생각, 적절하게 이차원 바코드를 이용한 화상처리에 의해 위치 인식을 하는 방법을 채용했다.


이차원 바코드는 작업 목표가 되는 각 진열 선반의 안쪽 벽면에 붙이고, 일단 떨어진 장소에서 카메라로 이차원 바코드를 확인해 작업을 하는 선반까지의 정확한 거리를 측정한 후에 매니퓰레이션 가능한 위치까지 접근한다. 대상 상품을 진열할 수 있는 위치까지 이동한 후에 다시 한 번 카메라에 의한 이차원 바코드와의 상대 거리를 측정, 최종적인 이동대차의 위치 정보를 매니퓰레이션 파트에 송신하고 내비게이션 파트를 종료한다.


2. 물체 인식

이동대차에 탑재 컨테이너 내에 적재하는 도시락, 주먹밥, 드링크의 3상품은 작업 시간 단축을 위해 미리 컨테이너 내의 정해진 장소에 배치하고, 센서에 의한 상품 위치 확인은 하지 않는다. 샌드위치의 폐기와 페이스업 작업은 경기 시작 전에 무작위로 배치되기 때문에 이차원 바코드를 사용한 화상 인식에 의해 대상물의 위치 검출을 한다.



샌드위치의 이차원 바코드 부착 위치를 그림 3에 나타냈다. 이차원 바코드로부터 인식되는 ID 번호에서 데이터베이스를 참조함으로써 대상 상품의 종류, ID, 상품 상의 바코드 부착 위치 정보를 얻을 수 있다. 인식을 할 수 있었던 대상 물체는 매니퓰레이션 궤도 생성을 위한 대상 위치 및 충돌 회피를 위한 3D 모델을 시뮬레이터 상에 반영해 rviz 상에서 가시화한다.


3. 매니퓰레이션

매니퓰레이션의 소프트웨어 구성을 그림 4에 나타냈다. Manipulation Core 노드는 매니퓰레이션만이 아니라 시나리오를 포함한 전체를 관리하고 있으며, 이동이 필요한 장면에서는 목적지까지의 이동을 내비게이션 파트에 지시하고 내비게이션 파트의 종료 보고를 기다린다. 



샌드위치의 폐기와 페이스업의 매니퓰레이션 태스크에서는 선반에 핸드 카메라를 향해 스캔하기 위한 손끝 궤도를 미리 결정해 두고, Object Detector 노드로 핸드 카메라(RealSence)에서 대상물의 종류·위치·자세 정보를 취득한다.


Object Detector는 앞에서 설명한 이차원 바코드에 의해 검출한 물체 정보를 Object Handler에 송신한다. Object Handler는 얻은 물체 정보를 검출 물체 관리용 데이터 구조에 격납한다. Object Handler는 인식한 물체를 관리하는 노드로, 다른 노드로부터 요구가 있으면 격납하고 있는 물체 정보를 송신한다.


Manipulation Core는 Object Handler에서 얻은 물체 정보로부터 대상물의 파지 자세 계획의 지시를 Grasp Planner에 지시한다. Grasp Planner에서는 대상물을 파지 가능한 최적 자세를 계획하고, 결과를 Object Handler에 송신한다. Object Handler는 생성된 파지 자세로 대상물을 파지하기 위한 매니퓰레이터의 궤도 계획과 실행을 Move Group에 지시한다.


Move Group에서 로봇 암의 역운동학 계산에는 IKFast을 이용하고, 궤도 계획에는 RRT-Connect를 사용한다. 궤도 계획에 의해 생성된 궤도 데이터는 각 관절의 각도·속도·가속도의 시계열 데이터로 되어 있으며, Move Group 상의 계획 궤도의 실행 명령을 지시함으로써 Motor driver Handler를 통해 로봇 암을 계획 궤적을 따라 작동시킬 수 있다. 또한, 로봇 핸드의 개폐 동작은 Move Group에서 지시하고, 각 상품의 파지 위치마다 정해진 핸드의 목표 개폐각으로 최대 토크로 닫는 지시를 했다.


폐기·진열 태스크의 시뮬레이션


개발한 매니퓰레이션 시스템의 시뮬레이션을 동역학 시뮬레이터 Gazebo로 했다. 시뮬레이션의 모습을 그림 5에 나타냈다. 시뮬레이션에서는 선반 위의 샌드위치 모델을 카메라로 촬영, 이차원 바코드로 위치를 인식한 후 상품의 픽업을 한다. 



Gazebo 상의 시뮬레이터에서 카메라 화상으로 인식된 샌드위치의 위치 정보는 ROS의 GUI 툴인 rviz 상에 표시된다. 샌드위치가 서 있을 때는 상부의 필름을 잡기 위해 그림에 있는 3개의 화살표 방향으로 손끝을 향한 경우에 대해 접근을 할 수 있는 궤도가 존재하는지 계산한다.


모두 존재하는 경우에는 바로 위에서 접근하는 방법을 우선하고, 2번째는 앞에서 접근하는 자세로 한다. 샌드위치가 쓰러져 있는 경우에는 샌드위치 옆을 끼우게 해 파지한 후 일단 선반 위에 세운 다음에, 다시 이차원 바코드를 계측해 상부의 필름을 파지하는 궤도를 계산한다.


실제 기기 실험


실제 기기 실험의 모습을 그림 6에 나타냈다. 컨테이너 내의 도시락, 드링크, 주먹밥은 소정의 장소에서 움직이지 않도록 배치되어 있기 때문에 이동대차와 진열 선반까지의 위치가 정확하게 계측되어 있는 경우에는 진열 작업에서 실패할 일은 없었다.


한편, 샌드위치의 폐기·진열 태스크는 이차원 바코드의 계측 실수나 무작위로 놓인 샌드위치에 의해 발생하는 오클루전으로 인식을 할 수 없는 등의 트러블이 자주 발생, 진열 선반의 스캔 동작 조정이 마지막까지 끝나지 않았다. 그림의 예에서는 진열되어 있는 샌드위치 5개에 대해 2개 폐기, 2개 진열에 성공했다. 나머지 1개는 인식할 수 없었다.


이동대차의 운동 성능에도 문제가 있고, 진열 선반 부근으로 이동하기 위해서는 여러 번의 방향 전환 동작이 필요하므로 ROS 노드의 move base만의 기능으로는 실행할 수 없는 장면이 있었다. 또한, 선반 부근으로 이동하는 것은 장해물에 근접하는 동작과 같으며, 방향 전환 동작에 따른 차체의 큰 이동이 장해물 주위에 설정하는 위험 영역과 겹쳐 궤도 생성이 실패하는 문제점이 있었다. 이번 실장에서는 일단 선반에서 떨어진 목적 위치를 부여한 후 다시 진열 선반 부근에 접근하는 중계점을 생성하는 것으로 대응했다.


맺음말


ROS를 이용함으로써 적은 인원으로 종합적인 애플리케이션 개발을 단기간에 하는 것이 가능했다. 2020년 본 대회를 위한 연구 과제를 많이 발견할 수 있었으며, 이들은 하드웨어와 소프트웨어 양쪽에서 개선이 가능하다고 생각하고 있다.


田窪 朋仁·松本 悠·内堀 祐希·上野 敦志, 오사카시립대학



















주요파트너/추천기업