
x86은 컴퓨터/노트북, ARM A-class는 스마트폰에 사용됨
MCU계열은 로봇 제어 관련
PC와는 달리 임베디드 시스템에서는 ROS 설치가 불가능
실시간성 확보 및 하드웨어 제어를 위해서는 ROS가 설치된 PC와 임베디드 시스템 간의 연결이 요구됨
ROS에서는 이를 위해 rosserial이라는 패키지를 제공

OpenCR과 Rasberry Pi 3를 USB 혹은 시리얼 연결.
이 둘 사이에 데이터를 주고받는데, Rasberry Pi 3에서는 ROS 메시지를 사용! 하지만 OpenCR에서는 바로 사용 불가능 ➡️ 이 변환을 담당하는 게 rosserial

$ sudo apt install ros-kinetic-rosserial ros-kinetic-rosserial-server ros-kinetic-rosserial-arduino
rosserial server
rosserial_python: Python 언어 기반의 rosserial server, 매우 많이 사용됨rosserial_server: C++ 언어 기반의 rosserial server, 일부 기능 제약 있음rosserial_java: Java 언어 기반의 rosserial server, 안드로이드 SDK와 함께 사용rosserial client:
rosserial_arduino: Arduino와 Leonardo 지원, OpenCR은 수정하여 사용 중rosserial_embeddedlinux: 임베디드용 리눅스용 라이브러리rosserial_windows: 윈도우 운영체제 지원, 윈도우의 응용프로그램과 통신 지원rosserial_mbed: ARM사의 mbed 지원rosserial_tivac: TI사의 Launchpad 지원http://wiki.ros.org/rosserial/Overview/Protocol

메모리
Float64
Strings
Arrays
통신 속도
ROS를 지원하는 임베디드 보드
터틀봇3에서 메인 제어기로 사용됨
오픈소스 H/W, S/W: 회로, BOM, 거버 데이터 등의 H/W 정보 및 OpenCR의 모든 S/W를 오픈소스로 공개
rosserial의 제약 사항을 극복하기 위한 구성
SBC 계열의 컴퓨터와 다양한 센서와 함께 사용하기 위한 전원 설계
확장 포트


참고)
강의: https://www.youtube.com/watch?v=VKNVj9IDMeo&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=9&ab_channel=ROBOTISOpenSourceTeam
자료: https://github.com/robotpilot/ros-seminar/blob/master/09_%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C_%EC%8B%9C%EC%8A%A4%ED%85%9C.pdf