퍼스널로봇을위한시스템엔지니어링기술개발 Robot Software Platform 한국생산기술연구원 양광웅 2007. 9
목차 개요 기술개발동향 1단계기술개발결과 2단계기술개발결과
What is robotics software platform? 통일된프로그래밍환경, 통일된서비스실행환경, 재활용가능한요소들의집합, 디버깅및시뮬레이션환경, 로봇하드웨어에대한드라이버패키지 컴퓨터비전 / 주행 / 암제어등과같은공통수단에대한패키지 여러종류의로봇장치들에대한프로그래밍을단순화하는소프트웨어패키지
Why robotics software platform? 로봇개발비용의증가 system integration software development/customization Software platform simplify the job of robotics software engineers 로봇개발비용의감소 신뢰할수있는다양한소프트웨어컴포넌트 + 단일플랫폼
Robotic Software Platform Platform Evolution Robotics E RSP Microsoft Robotics St udio OROCOS Type Platform Platform Machine and robot control libra ries Commercial Commercial Free of charge f or research and hobby Open source & free Skilligent Robot learning add-on Commercial URBI Platform Commercial Webots Simulation environment Commercial Player, Stage, Gazebo Platform Open Source & Free irobot AWARE Platform Commercial OpenJAUS Platform Open source CLARAty Platform Open source
Overview of main players Evolution Microsoft OROCOS Skilligent URBI Webots Open source No No Yes No No No Yes Free of charge No Edu/hby Yes No No No Yes Player, Sta ge, Gazebo Windows Yes Yes No Yes Yes Yes Yes (sim) Linux Yes No Yes Yes Yes Yes Yes Distributed environment No Yes No Yes Yes No Behavior coordination Yes Yes No Yes Yes No No Built-in robotic arm control No No Yes Yes No No No Built-in object recognition Yes No No Yes No No No Built-in navigation Yes No No Yes No No No Task/skill learning No No No Yes No No No Simulation environment No Yes No No Yes (Web ots) Yes Yes (limite d) Range of supported hardware Small Large Medium Medium Large Large Medium Reusable service building blo cks Yes Yes Yes Not applc bl Yes Yes No No Real-time No No Yes No No No No
Evolution Robotics s ERSP ERSP Architecture TEL: Task Execution Layer BEL: Behavior Execution Layer HAL: Hardware Abstraction Layer 4 개의모듈이하나의패키지로구성된라이브러리 Architecture, Vision, Navigation, Interaction
Evolution Robotics s ERSP Developer Tools Applications Components C++ APIs, XML, Python, GUIs Vacuum, Patrol, Play agame, Read abook, etc. Object Recognition Human-robot Interface Navigation, etc. TaskExecution Layer Task Manager Task Interfaces Tasks Behavior Execution Layer ERSP Architecture Behavior Manager Behavior Interfaces Operating System Hardware Inputs Linux, ITRON, ThreadX QNX, RT-Linux, etc. Sensors &Actuators Outputs Real-world Stimuli and Actions Behaviors HardwareAbstraction Layer Resource Manager Resource Interfaces Resources
Evolution Robotics s ERSP Behavior Composer of Evolution Robotics
Microsoft Robotics Studio Microsoft 는 Robot O/S 와개발툴을제공하고 3rd Parties 이 Applications, Algorithms 을제공 개발툴 Microsoft 3D Simulator 응용프로그램알고리즘 기본 API Robot O/S 하드웨어플랫폼 확장 API 3rd Parties
Microsoft Robotics Studio Visual Programming Language
Microsoft Robotics Studio Microsoft Simulation environment
EU s OROCOS OROCOS: Open RObot COntrol Software Free software project Orocos project supports 4 C++ libraries: the Real-Time Toolkit, the Kinematics and Dynamics Library, the Bayesian Filtering Library and the Orocos Component Library
EU s OROCOS Orocos targets four different categories of Users Framework Builders Component Builders Application Builders End Users
Skilligent Skilligent is a robot behavior control system with robot learning and social interaction capabilities fot the service robots
Skilligent
OMG OMG 에서국제표준을위해제안한소프트웨어구조
v COMPONENT 구조 OMG
OMG v 개발도구예 AIST: RT Middleware Developed for Realizing Open Robot Architecture
OMG v 적용예 An arm control system manipulated with a joystick, and a program developed by using the RT middleware
OMG v 적용예 By use of modules sharing a common interface, the control of industrial robot is readily interchangeable with that of humanoid arm
연구배경 일본에서는대기업주도하에대규모예산을투입하여로봇기술을개발중이고, 이미로봇시제품과과양산제품을생산함 미국에서는대학과연구소중심으로로봇의기초연구가매우활발히이루어지고있으며, 세계적으로우수한첨단기술을보유하고있음 국내에서는많은중소기업들이가정용 / 오락용로봇을개발하여시장에제품을출시하고있으나, 로봇분야에대한생산기반및체계적인연구부족으로연구기반이취약한실정임 폐쇄적 배타적기술개발및투자를벗어나상호유기적인연구개발체계를통해기술개발의전문화와개발된기술의공유 이를위해하드웨어와소프트웨어를모두포함하는모듈화및표준화, 안전성평가를포함한로봇의시험및평가기술, 표준형플랫폼과시험환경을포함한 Test-bed, 로봇의설계, 시뮬레이션, 상품화등의전과정을지원하는소프트웨어지원도구인로봇통합개발도구를개발함
로봇과 PC 의차이점 PC Robots Services Portal Banking Media Commerce Education Storage Application Office ERP Database Mail Games Combat and Rescue robots Industrial robots Cleaning robots Home robots Hardware PC Labtop PMP Server UMPC Mainframe Parts CPU Memory HDD MainBoard Power GraphicCard Web Cam Motor Sensors Frames Board Camera Actuator
로봇이 PC 와구분되는특징 구분 PC 로봇 하드웨어 입력장치 컴퓨터본체. 컴퓨터전용부품들이사용되고있음 ( 저가, 수요가많음 ) 인간의지시를입력하기위한마우스, 키보드, 카메라, 마이크 머리, 팔, 다리 ( 바퀴 ) 를가짐. 산업용장비의부품을채용하여로봇에사용 ( 고가, 고정밀, 수요가적음 ) 사람과같은청각, 시각, 촉각등. 카메라와마이크등의장치는 PC와동일하게사용되나, 주로인지 ( 지능 ) 를위한입력장치로사용됨 출력장치모니터, 프린터, 스피커 ( 소리 ) 얼굴표정, 몸짓, 스피커 ( 음성 ) 상호작용 사람의손과눈, 화려한 GUI 환경 사람, 주변환경, 로봇, 대부분 GUI 를필요로하지않음 시뮬레이션 주로게임에사용되는 3D시뮬레이션 Physics가고려된 3D시뮬레이션, 센서시뮬레이션 인터넷 정보검색, 가공 ( 동일 ) 지능 필요없음 있어야함 안전 - 필수적으로고려되어야함 실시간 이벤트 이벤트, 실시간모두고려 역할 사무용도구, 게임도구, 정보저장 심부름, 청소등의활동적서비스
기술의구성 Component Repository(DB) Internet Server Sensor Actuator SoC SBC 부품 로봇디자인 모듈조합 모듈프로그래밍 컴파일 / 실행 디버깅 개발자용저작도구 Robot Manipulation Navigation HRI Intelligence S/W Component (Algorithm) 시뮬레이션도구 사용자용운용도구 안전성평가방법 성능평가방법 시험평가환경구축 시험평가환경 로봇을개발하기위한환경과도구 시뮬레이션도구, 개발자용저작도구, 사용자용운용도구를개발함 안전성, 성능평가방법을개발하고청소로봇을대상으로평가수행
여러모듈로구성되는로봇 Ear (microphone) Mouth (speaker) Intelligence (600MHz Pentium PC) Speech recognition and synthesis, Intelligence, Emotion 100Mbps Ethernet Motion Control (2GHz Pentium PC) Behaviors, Motor arbitration Head motors, Body motors Two Cameras Vision (3GHz Pentium PC) Vision processing Middleware (CORBA, DCOM) 여러모듈로구성되는로봇 분산환경을고려한통신미들웨어를개발함 전기적기계적모듈접속기준을표준화함, S/W Component 표준화함
여러장치를가지는모듈 CAN Channel 1 (Body motors) Motion Control (2GHz Pentium PC) Behaviors, Motor arbitration Motor Controller Motor Controller Motor Controller Motor Controller (TI DSP) (TI DSP) (TI DSP) (TI DSP) CAN Channel 2 (Body motors) Motor Controller Motor Controller Motor Controller Motor Controller (TI DSP) (TI DSP) (TI DSP) (TI DSP) 여러장치를가지는모듈 CPU/Bus/Device 를관리하기위한 Software Framework 을개발함
로봇소프트웨어예 Microphone Web/Messenger /Keyboard Intelligence Camera Sound Localization Recognition AaWoo Dialogue Engine Personality System Face Recognition Object Recognition Scenario Emotion Model Color Detection speaker Synthesis Homeostatic Regulation Motion Detection Lip Sync. Behavior Basic Behavior Blink Behavior Facial Expr. Behavior Gesture Behavior Emotion Behavior Face tracking Behavior Object tracking Behavior Motor Arbiter ( ) Motion Control Facial Motor Arm, Body Motors Eye, Neck Motors Vision Function of EveR-1 & EveR-2 Function of EveR-2
1 단계과제결과요약 로봇소프트웨어개발도구 분산미들웨어 로봇가상머신 성능평가시스템
소프트웨어플랫폼구성
로봇소프트웨어구조 v1 특징 분산환경 플랫폼독립 : 가상머신 C,C++, Java, Python, VB TCP/IP, IEEE1394, USB, CAN 로봇모듈 Robot Virtual Machine (RVM) Module Interface Internal API Middleware Streaming Layer Network Adaptation Layer Robot Module Module Interface RVM Module Manager Internal API Sensor/Actuator Middleware Streaming Layer Network Adaptation Layer Software Hardware Network Media
개방형통신미들웨어 LAYER02 : Streaming Layer 모듈에서주고받는메시지데이터를 stream으로변환 Stream을메시지데이터로변환 LAYER01 : Network Adaptation Layer 다양한네트웍미디어및프로토콜지원 특징 : VM Module Manager Other App. 모듈과모듈간통신에사용 객체전송 원격함수호출 MIDDLEWARE Interface with Application LAYER02 : Streaming Layer L1-to-L2 LAYER01: Network Adaptation Layer Repository Interface with Network IEEE 1394 USB Ethernet IEEE 802.11 Bluetooth...
MIDL 컴파일러 MIDL(Interface Definition Language) 언어 특정언어독립적인모듈인터페이스정의 Corba IDL 의서브셋 Client MIDL Server Stub/Skeleton 코드생성 C/C++, Java, Visual Basic, Python* Stub, Interface Middleware Skeleton Object Adapter 특징 : 이기종분산환경을하나의시스템으로통합 네트워크상에분산된객체를손쉽게호출 다양한개발언어사용 * 개발완료되지않음
RPL 컴파일러및가상머신 RPL 언어 C 언어형식과유사한언어 RPL Source Code 컴파일러 Robot Byte Code 컴파일러 RPL 로작성된소스코드를컴파일하여 Byte Code 생성 Robot Virtual Machine 가상머신 Stack Oriented Operation Register SP PP Stack Message Queue BP D GP P Heap Byte Code 해석및실행
로봇디자인센터 v1 특징 : 모듈제어프로그램개발 문법에러검사및예외처리 모듈및프로시져의버전관리 기능 : Text Editor Library 관리 Debugging Robot Module 관리
로봇디자인센터 v2 특징 모듈개발자의로봇제어프로그램개발 소프트웨어통합환경및유지보수 로봇응용프로그램개발 사용자지향적인개발환경 기능 Text Editor Graphic Editor: Block Diagram Library 관리 Debugging Robot Module 관리
2 단계과제결과요약 단일플랫폼기반소프트웨어구조 3D 동역학시뮬레이터 알고리즘 / 컴포넌트
로봇소프트웨어구조 v2 특징 : 단일플랫폼로봇을대상으로함 계층구조 C++ 언어기반, 추상화개념, 상속 HAL(Hardware Abstraction Layer) Device Manager와 Device Driver Service Layer Behavior Manager와 Task Manager Emotion Scenario Application Layer Perception Task Sensor Device Driver Hardware Behavior Actuator Service Layer Hardware Abstraction Layer
계층적소프트웨어구조 Get red cup from room #302 Scenario Navigation, Manipulation, Grasp Object Detection, Face Recognition, Gesture, Facial Expression, Lip Sync. Camera, Motor, Sensor, Mobility, Communication (CAN, RS232, TCP/IP) Task Manager (Tasks) Behaviors Motor Arbiter Synchronization Device Manager Hardware Application Algorithm Robot O/S Device & Device Driver Application Layer Algorithm Layer Hardware Abstraction Layer 계층적소프트웨어구조 소프트웨어구조는로봇제어관점에서의구조와소프트웨어공학관점에서의구조로구분할수있음 로봇제어관점에서의구조는국내외에서다양한구조가개발됨, 의견의통일을보기어려운상황 본과제는소프트웨어공학관점에서의구조로접근을시작함, 모듈화분산화표준화관점에서접근시작
Device Manager Device Driver 1 Device Profile 1 Device Driver n Device Profile n Communication Device Driver 1 Device Container Synchronization Processor Device Type Abstract Class Profile Communication CCommBase ( 없음 ) Motor CMotorBase CMotorProfile Sensor CSensorBase CSensorProfile Camera CCameraBase CCameraProfile Mobility CMobilityBase CMobilityProfile
Synchronization Processor Application Control command Measured Data CPU Sync. Processor Bus 1 Device Profile Device 1 Device 2 Device n Sync. Processor Bus 2 Sync. Processor Device 1 Device 2 Device n Device Driver Sync. Processor Bus n Hardware Device 1 Device 2 Device n Device profile 이버퍼역할을함.
초소형통신프로토콜 다양한통신프로토콜과 MPU를지원하는초소형통신미들웨어 DSP, AVR, PIC 등의 MPU/MCU Board 지원 Windows, Linux OS 지원 CAN, RS-232, USB, TCP/IP 통신미디어지원 특징 : 각플랫폼에따라 C 언어 library 로구현됨 중앙제어기와장치간통신 단순한프로토콜 고속통신 Application RCM OS/Firmware Hardware CAN, RS-232, USB, TCP/IP Application RCM OS/Firmware Hardware
3 차원동역학시뮬레이션 RecurDyn 을기반으로에디터구현 2 차원,3 차원모델링환경제공 로봇에사용되는센서모델링및시뮬레이션
Webots 플러그인시뮬레이션 Webots 로봇시뮬레이터플러그인개발 3차원모델링 센서, 액츄에이터모듈 동역학모듈
모바일로봇시뮬레이션 로봇센서 / 액츄에이터시뮬레이터개발 2차원모델링 센서 (IR, Sonar, Laser finder) 시뮬레이션 모터 (Servo Motor) 시뮬레이션
Markov 위치인식 Hokuyo, Leuze Laser finder 사용 40m x 30m 지도,10cm x 10cm 셀의크기 특징 : 계산량이많아속도가느림, 초기위치설정이필요없음 <Laser finder 를이용한 Markov localization> <Sonar sensor 를이용한 Markov localization>
Particle filter 위치인식 Grid map에서 Particle filter 위치인식및 VFH를응용한이동 Laser finder를사용한 SLAM 특징 : Particle filter는계산속도가빠른대신초기위치설정이필요함
RFID 태그를사용한위치인식 지면의 RFID 태그를이용한위치인식 위치인식을위해 RFID 센서와 Particle filter 사용 RFID tag 로 topological map 을만듦
Visual Servoing 특징점기반 Disparity 를이용한견실한 3 차원위치정보획득 센서기반실시간경로작업계획 ( 협조제어 ) 양팔작업의분류단계에따른부드러운작업생성
전신공조 전신공조 (Whole Body Coordination) 알고리즘개발 동력학시뮬레이션을이용한통합시스템의안정성검증기술 매니퓰레이터의움직임을보상하는전신공조알고리즘기술 동적환경에서의안정성확보를위한실시간 CoM, ZMP 보상알고리즘기술