eBook

챕터 2

하드웨어 및 센서를 사용해 작업하기


AMR(자율 이동 로봇) 개발은 다음과 같은 작업을 수반합니다.

  1. 기초 하드웨어 플랫폼의 시뮬레이션 및 구축
  2. 하드웨어 플랫폼에 센서 및 컴퓨팅 보드 추가

기존의 이동 로봇 플랫폼에 자율성을 추가하려면 2단계부터 시작하면 됩니다.

섹션

이동 로봇의 하드웨어 플랫폼 구축하기

복잡한 조립체에 대한 하드웨어 플랫폼은 기계적 구성요소 외에도 센서 및 임베디드 보드로 구성되어 있습니다. 이러한 플랫폼에는 라이다 센서 및 마이크로컨트롤러 등의 전기 회로도 포함될 수 있습니다. 물리적 하드웨어를 개발하기 전에 플랫폼 모델을 시뮬레이션하면 고장 위험과 개발 비용을 줄일 수 있습니다.

모델 기반 설계는 효과적인 하드웨어 플랫폼 개발 방법입니다. 이를 통해 모든 구성요소와 동적 제약 조건을 나타내는 타겟 플랫폼의 시뮬레이션 모델을 만들 수 있습니다. 다양한 실제 상황에서 타겟의 거동을 시뮬레이션하면 개발 시간과 비용을 절감할 수 있습니다. Simulink는 모델 기반 설계 환경에 관한 사실상의 표준으로서 오랫동안 엔지니어들을 지원해 왔으며, 이동 로봇 플랫폼 개발에서도 효율적으로 활용될 수 있습니다.  

백지 상태부터 하드웨어를 개발할 때에는 적절한 사양을 개발하기 위해 반드시 아키텍처를 정의하고 분석해야 하며, 소프트웨어 설계는 반드시 하드웨어의 기계적 설계와 병행하여 구성해야 합니다. 시스템은 구성요소와 인터페이스로 기술되는 아키텍처 모델로 표현할 수 있으며, System Composer™Requirements Toolbox™를 사용하여 이렇게 기술된 아키텍처 모델을 생성하거나 가져올 수 있습니다. 시뮬레이션 기반 테스트를 사용하여 시스템 요구사항을 확인하고 시스템 아키텍처를 검증할 수도 있습니다. Simulink의 모델 기반 설계를 사용하여, 요구사항을 시뮬레이션 및 구현 준비가 된 구성요소를 갖는 아키텍처로 변환하고 미세 조정할 수 있습니다. Simulink 설계 또는 C/C++ 코드의 아키텍처 요소에서 아키텍처 모델을 구축할 수도 있습니다. 이러한 아키텍처 모델들을 사용하여 요구사항을 분석하고 스테레오타이핑을 통해 속성을 수집하며 상쇄 연구를 수행하고 사양을 생성할 수 있습니다.

System Composer로 아키텍처 정의하고 분석하기.

System Composer로 아키텍처 정의하고 분석하기.

사양을 정의하고 분석한 다음은 제어할 물리적 모델을 생성하는 단계입니다. Simulink에서 Simscape™를 사용하여 로봇의 물리적 모델을 표현할 수 있습니다. 기계적 구성요소는 Simscape Multibody™를, 전기적 구성요소는 Simscape Electrical™을 사용할 수 있습니다. Simscape는 물리적 구성요소를 통한 직관적인 모델링을 지원하며, 또한 전달 함수나 실험 데이터 등 수학 공식을 기반으로 한 모델링도 지원합니다. Simscape Multibody를 사용하면 CAD 가져오기 함수를 통해 기존의 CAD 모델을 사용할 수 있으며, SolidWorks®, Autodesk Inventor®, PTC® Creo™ 같은 다양한 CAD 툴로부터 기계적 모델링을 가져올 수 있습니다.

물리적 모델을 시뮬레이션하고 개발한 다음은 제어 모델을 정의하는 단계입니다. 로봇의 기구학적 운동 모델에 따라, 제어 모델을 표현하기 위해 몇 가지 구성요소(예: 휠 인코더)를 추가해야 합니다. Simulink를 사용하여 차동 구동 또는 애커만 조향 등 통상적인 AMR 운동 모델을 시뮬레이션할 수 있습니다. Control System Toolbox™Simulink Control Design™을 사용하면 전달 함수 기반 설계 및 PID 제어를 위한 제어 모델을 개발할 수 있습니다. Stateflow®는 상태 천이 및 플로우 차트 같은 논리를 작성하기에 이상적인 툴입니다. 이러한 툴로 물리적 모델 및 제어 모델을 통합하는 시뮬레이션을 통해 여러분의 개발 검증 속도를 높일 수 있습니다.

 

제어기 및 물리적 모델.

제어기 및 물리적 모델.

또한 자동 코드 생성을 통해 제어 모델로부터 C 코드를 생성하여 RCP(신속 제어 프로토타이핑)에 사용할 수 있습니다. RCP는 임베디드 보드에 대한 고정소수점 변환 같은 모델을 생성할 필요 없이 제어 알고리즘을 실제 기기에서 검증할 수 있는 접근법을 제공합니다.

모델 기반 설계의 이점.

모델 기반 설계의 이점.

Simulink를 사용한 모델 기반 설계를 통해 개발 검증을 가속화하고, 효율적이고도 효과적으로 이동 로봇 플랫폼을 시뮬레이션하고 구축할 수 있습니다.

섹션

센서 데이터 수집

하드웨어 플랫폼을 구축한 다음은 센서 데이터를 수집할 센서 그룹을 이동 플랫폼이나 차량에 배치하는 단계입니다. 센서 그룹에는 카메라, 라이다, 레이다, 초음파 센서, GPS(위성 측위 시스템) 및/또는 IMU(관성 측정 장치) 같은 여러 센서 소자가 포함될 수 있습니다. 이러한 센서는 AMR 인근 객체까지의 거리 같은 정보를 제공합니다. 정확도가 생명이기 때문에 센서를 적절히 보정해야 할 필요가 있습니다. 여러 센서에서 나오는 데이터 스트림을 융합하여 추정 값을 개선하고, 그렇게 하기 위해서는 센서의 좌표계의 보정 및 시간 동기화가 필요합니다.

센서 시뮬레이션 모델.

센서 시뮬레이션 모델.

여러 센서의 좌표계 보정하기

여러 센서에서 나오는 데이터를 융합할 때는 센서들의 위치와 방향을 종합하여 환경을 인식해야 합니다. 예를 들어 단안 카메라로 위치 추정을 수행하려면 내부 파라미터(초점 거리, 광학적 중심 등), 외부 파라미터(위치, 방향), 왜곡 계수 등이 필요합니다. 여기서 보정이란 이런 카메라 파라미터를 추정하고 수정하는 과정을 가리킵니다. Computer Vision Toolbox™에는 핀홀 및 어안 카메라를 보정하는 응용 사례가 있습니다. Lidar Toolbox™는 컴퓨터 비전과 라이다 처리를 조합하는 워크플로를 위한 라이다 카메라 교차 보정을 지원합니다.

카메라 보정.

카메라 보정.

뿐만 아니라, 센서는 여러 장착 위치를 기반으로도 보정해야 합니다. 객체 검출을 위한 단안 카메라와 거리 추정을 위한 포인트 클라우드 센서 같은 센서의 이점을 모두 살리기 위해서는 라이다 또는 RGB-D 카메라로 획득한 포인트 클라우드 데이터를 단안 카메라의 좌표와 연관시켜 수정해야 합니다.

카메라 및 라이다 보정.

센서들 간 시간 동기화

여러 센서를 통합할 때 중요한 작업 중 하나는 시간 동기화입니다. 센서 유형마다 샘플링 속도, 위상, 지터 등의 다양한 파라미터가 있습니다. 주변 객체의 위치를 정확히 추정하기 위해서는 정확한 파라미터를 알고 타임 스탬프를 동기화해야 합니다.

ROS(로봇 운영 체제) 같은 미들웨어를 사용하여 다양한 속도로 된 센서 데이터들을 통합할 수 있습니다. 다양한 센서 공급업체는 ROS 드라이버를 제공해 사용자가 여러 센서에 연결하거나 구독함으로써 손쉽게 센서 데이터를 획득할 수 있도록 합니다. 각각의 ROS 노드가 출력하는 토픽에는 타임 스탬프 정보가 있으며, 이를 통해 시간 동기화가 용이해집니다. ROS의 rosbag 함수를 사용하면 센서 데이터를 저장했다가 재생하고 분석할 수도 있습니다. ROS Toolbox를 사용하면 rosbag으로 기록한 타임 스탬프가 찍힌 데이터를 MATLAB 및 Simulink에서 재생하여 시간 동기화에 활용할 수 있습니다.

하드웨어 및 센서 데이터에 대해 자세히 알아보기