일정: 2023.12.05(화)
수업 내용:
- Robot Operating System (ROS)
목표:
로봇 소프트웨어 플랫폼
(하드웨어 추상화, 하위디바이스 제어, 로보틱스 센싱, 인식, 위치추정, 지도 작성 , 내비게이션 등) 중심의 기술과
로봇 소프트웨어 플랫 폼(ROS)이 가져올 미래 가치와 기술 선점을 위한 교육을 바탕으로
다양한 영상과 라이다 기반의 로봇 자율주행 기술 교육을 통해 학생들의 첨단 기술습득을 목표로 함.
1. Reference
(1) Source code : github.com의 ROBOTIS-GIT
https://github.com/ROBOTIS-GIT/turtlebot3
(2) OpenCR (Control module for ROS) : github.com의 ROBOTIS-GIT
https://github.com/ROBOTIS-GIT/OpenCR
(3) Robotis e-manual : https://www.robotis.com
https://emanual.robotis.com/docs/en/platform/turtlebot3/overview
2. Reference books
(1) 주교재
: ROS 로봇 프로그래밍 : Ruby paper
: Robotis e-manual : https://emanual.robotis.com/docs/en/platform/turtlebot3/overview
(2) 실험 재료 : Turtlebot3 burger
3. Reference open source
(1) source download 방법
➊ 리눅스에서 직접 내려받기 - Ubuntu 기반의 ROS 프로그래밍
: git 명령어를 이용하기 위해 git 를 설치
: 터미널 창을 열어 다음과 같이 git 를 설치
$ sudo apt-get install git
: ros_tutorials 패키지
$ git clone https:// github.com/ROBOTIS-GIT/ros_tutorials.git
➋ 예제 tutorial source
: https://github.com/ROBOTIS-GIT/ros_tutorials
4. Reference community
: 오픈 소스 로봇기술 공유 커뮤니티: 오로카 에서 공개 강좌와 공개 프로젝트에 대한 소개
- 오로카(OROCA) http://www.oroca.org
- 한국 ROS 페이스북 그룹 https://www.facebook.com/groups/427060150825583/
- 한국 ROS 사용자 구글 그룹 https://groups.google.com/forum/#!forum/korea-ros-users
- ROS Discourse 한국 채널 https://discourse.ros.org/c/local/korea
- ROS Discourse https://discourse.ros.org/
- ROS QnA http://answers.ros.org/questions/
5. Reference documents (1) documents download 방법 : https://github.com/robotpilot/ros-seminar
Specification of Parts
: Ref. https://www.ros.org/reps/rep-0003.html#noetic-ninjemys-may-2020-may-2025
: ROS 1.0
=> Kinetic Kame
=> Noetic
(1) SBC(Single Board Computer) : Raspberry PI 3 B+
- https://www.raspberrypi.org/documentation/
- https://www.raspberrypi.org/documentation/computers/raspberry-pi.html#raspberry-pi-3-model-b
- Broadcom BCM2837B0 / Cortex-A53 64bits Quad-core / 1.4GHz frequency
- Raspberry PI 3 B+ : https://www.raspberrypi.org/forums/
: Broadcom BCM2837B0 / Cortex-A53 64bits Quad-core
https://www.broadcom.com/
http://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php
(2) OpenCR(Control module for ROS) : STM32F746
- https://emanual.robotis.com/docs/en/parts/controller/opencr10/
- ARM Cortex-M7 32bits RISC core / 216MHz frequency
(2) OpenCR(Control module for ROS) : STM32F746 => st.com
- ARM Cortex-M7 32bits RISC core / 216MHz frequency
(3) 360° LiDAR : HLS-LFCD LDS(Laser Distance Sensor)
- Detection distance 120mm~3500mm
- Angular Resolution 1 degree / USB2LDS (115200 baudrate)
- https://emanual.robotis.com/docs/en/platform/turtlebot3/appendix_lds_01/
(4) DYNAMIXEL : XL430-W350-T
- https://emanual.robotis.com/docs/en/dxl/x/xm430-w350/
- Input Voltage 10.0 ~ 14.8 [V] (Recommended : 12.0 [V])
1-1. Open Source Hardware, OSHW 기반의 실험
Open Source Hardware(OSHW) & Open Source Software(OSS)
: 기존 산업구조와 비교해 저렴한 하드웨어 비용(?)과 수많은 소스•예제를 공유하고 아이디어를 제안하는 글로벌 커뮤니티, 그리고 일반인도 쉽게 배우고 직접 만들어 볼 수 있는 ‘낮은 진입장벽’
Robot Platform 구성요소
: 소프트웨어 플랫폼과 하드웨어 플랫폼
로봇 소프트웨어 플랫폼
: 로봇 응용프로그램을 개발할 때 필요한 하드웨어 추상화, 하위 디바이스 제어, 로보틱스에서 많이 사용되는 센싱, 인식,
동시적 자기 위치 추정과 지도 작성(SLAM), 내비게이션(Navigation), 매니퓰레이션(Manipulation) 등의 기능 구현과
프로그램 패키지 관리, 개발환경에 필요한 라이브러리와 다양한 개발, 디버깅 도구를 의미
: 로봇 운영체제
- 미국 ROS(Robot Operating System), 일본 오픈 로보틱스 테크놀로지 미들웨어(OpenRTM),
유럽 실시간 제어 중심의 OROCOS, 한국의 OPRoS (Open Platform for Robot Services)
: 로봇 기능 공유 그룹
- 얼굴인식과 물체인식 기능의 로봇베이스(Robotbase)
- 모바일 로봇 기능의 유진로봇
: ROS 산업 컨소시엄 구성의 ROS-I(ROS Industrial Consortium)
2-3. Why ROS ?
실증 예제
: 미국 NASA 국제 우주 정거장 운영 로봇
Robonaut2 (https://robonaut.jsc.nasa.gov/R2/)에 유럽 실시간 제어 중심의 OROCOS 혼용
프로그램의 재사용 및 Permissive Licensing
: ROS 혼용
통신 기반의 프로그램
: 센싱, 인식, 동작의 프로그램을 components화, 즉 node화하여
각 node별 최소 실행 단위 통신 운영
개발도구 지원
: GUI도구 rqt, 3차원 시각화 도구 Rviz 제공
활성화 된 ROS community
: 22,000 wiki pages
3-1. 운영체제 Operating System
UNIX 운영체제(Operating System)
: 1970년대 초에 AT&T 벨 연구소에서 개발된 이후로 지속적으로 발전
스마트폰, PC, 서버, 슈퍼컴퓨터에까지 사용. 소프트웨어 경쟁력의 핵심
: Ken Thompson이 어셈블리어로 개발함, D. Ritchie가 C 언어로 다시 작성함
C 언어는 Unix를 작성하기 위한 언어
UNIX 기반의 운영체제(Operating System)
: 안드로이드(Android) OS
: iOS
: 맥(Mac) OS X
: 리눅스(Linux)
: BSD 유닉스(Berkeley Standard Distribution Unix)
: 시스템 System V
: Sun 솔라리스(Solaris)
: IBM AIX : HP HP-UX : Cray 유니코스(Unicos)
UNIX 운영체제 특징
: 단순성(Simplicity)
- 운영체제 자체를 가능한 최소한의 필요 기능만 제공
- 자원에 대한 일관된 관점 제공
: 이식(Portability)
- 이식을 위해 C 언어로 작성
- 다양한 플랫폼에 이식 가능
- 스마트폰, PC, 서버, 슈퍼컴퓨터 등
: 개방성
- 소스 코드 공개와 같은 개방성
UNIX 운영체제 구조
: 운영체제
- 컴퓨터 하드웨어 자원 운영 관리,
프로그램을 실행 환경을 제공
: 커널(kernel)
- 운영체제의 핵심으로 하드웨어 운영 및 관리
- 하드웨어와 운영체제의 다른 부분 사이의 중재자 역할
: 시스템 호출(system call)
- 커널이 제공하는 서비스에 대한 프로그래밍 인터페이스
: 쉘(shell)
- 사용자와 운영체제 사이의 인터페이스
- 사용자로부터 명령어 입력 받아, 해석 수행해주는 명령어 해석기
UNIX History
: System V
- 벨 연구소에서 개발된 버전이 발전하여 시스템 V가 됨
- 유닉스 버전 중의 최초의 대표적인 성공 사례
- 여러 유틸리티가 공개되면서 일반 사용자들에 확산
- 다양한 상업용 버전으로 발전
IBM의 AIX, Sun의 Solaris, HP의 UP-UX
: BSD(Berkeley Standard Distribution)
- 공개 소스코드를 기반으로 버클리대학교에서 개선
- 주요 기능 개선
메모리 관리 기능 향상
네트워킹 기능 추가 - TCP/IP 네트워킹, 소켓(Socket) 등
- 상업용 운영체제의 기초
썬 OS(Sun OS), 맥 OS(Mac OS)
: Linux
- PC를 위한 효율적인 유닉스 시스템
- 1991년 헬싱키 대학의 Linus B. Torvalds에 의해 개발됨
- 소스코드 공개
인터넷 상에서 개발자들에 의해 기능 추가 및 확장됨
공용 도메인 상의 무료 OS
- 다양한 Platform에 맞게 porting 가능
PC, 워크스테이션, 서버 등
- GNU(General Public License) 소프트웨어와 함께 배포
"GNU is Not UNIX“
레드햇(RedHat), 우분투(Ubuntu), 데비안(Debian), 페도라(Fedora), CentOS
Linux
: GNU('그누'로 발음)는 GNU 프로젝트를 통하여 개발한 유닉스 계열 컴퓨터 운영 체제
궁극적으로는 "완전한 유닉스 호환 소프트웨어 시스템"이 되는 것이 목표
: GNU는 "GNU는 유닉스가 아니다."란 의미를 갖는 문장 "GNU's Not UNIX"의 약자
: GNU 일반 공중 사용 허가서 (GNU General Public License, GPL)
: GNU 약소 일반 공중 사용 허가서 (The GNU Lesser General Public License, LGPL)
: GNU 자유 문서 사용 허가서 (GNU Free Documentation License, GFDL)
: Linux 장점
- 풍부하고 다양한 하드웨어를 효과적으로 지원
대부분의 하드웨어를 지원하는 추세. PC, 워크스테이션, 서버 등
- 놀라운 성능 및 안정성, 인터넷에 맞는 강력한 네트워크 구축
- 다양한 응용 프로그램 개발됨
- 무료 배포판
우분투(Ubuntu) / 페도라(Fedora) / CentOS
'[Intel] 엣지 AI SW 아카데미 > 펌웨어 프로그래밍 75hour' 카테고리의 다른 글
[Intel] 엣지 AI SW 아카데미 37일차 (부산상공회의소 인력개발원) (0) | 2023.12.18 |
---|---|
[Intel] 엣지 AI SW 아카데미 30일차 (부산상공회의소 인력개발원) (1) | 2023.12.17 |
[Intel] 엣지 AI SW 아카데미 28일차 (부산상공회의소 인력개발원) (0) | 2023.12.17 |
[Intel] 엣지 AI SW 아카데미 27일차 (부산상공회의소 인력개발원) (1) | 2023.12.17 |
[Intel] 엣지 AI SW 아카데미 25일차 (부산상공회의소 인력개발원) (1) | 2023.12.17 |