Course Outline
주차 01
1일차
소개
- 로봇이 어떻게 똑똑해질 수 있는가?
물리적 로봇과 가상 로봇
- 스마트 로봇, 스마트 머신, 지능형 머신, 로봇 프로세스 자동화 (RPA) 등.
로봇공학에서 인공지능 (AI)의 역할
- "if-then-else"를 넘어서는 학습 머신
- AI의 알고리즘
- 머신러닝, 컴퓨터 비전, 자연어 처리 (NLP) 등.
- 인지 로봇공학
2일차
로봇공학에서의 빅데이터 역할
- 데이터와 패턴을 기반으로 한 결정
클라우드와 로봇공학
- 로봇공학과 IT 연결
- 더 많은 정보를 접근하고 협력할 수 있는 기능이 강화된 로봇 개발
사례 연구: 산업용 로봇
- 기계식 로봇
- Baxter
- 원자력 시설의 로봇
- 방사능 탐지 및 보호
- 원자로의 로봇
- 방사능 탐지 및 보호
3일차
로봇의 하드웨어 구성 요소
- 모터, 센서, 마이크로컨트롤러, 카메라 등.
로봇의 공통 요소
- 기계 시각, 음성 인식, 음성 합성, 접근 감지, 압력 감지 등.
4일차
로봇을 프로그래밍하는 데 사용되는 개발 프레임워크
- 오픈 소스 및 상용 프레임워크
- 로봇 운영 시스템 (ROS)
- 아키텍처: 작업 공간, 주제, 메시지, 서비스, 노드, 액션 라이브러리, 도구 등.
로봇을 프로그래밍하는 언어
- 저수준 제어에 사용되는 C++
- 오케스트레이션에 사용되는 Python
- Python과 C++를 사용하여 ROS 노드 프로그래밍
- 기타 언어
5일차
물리적 로봇을 시뮬레이션하는 도구
- 상용 및 오픈 소스 3D 시뮬레이션 및 시각화 소프트웨어
로봇의 물리적 특성을 설계하는 도구
- 상용 및 오픈 소스 CAD 소프트웨어
사례 연구: 기계식 로봇
- 원자력 기술 분야의 로봇
- 환경 시스템의 로봇
주차 02
6일차
Python 빠트 시작
- 소프트웨어 설치 및 설정
- 유용한 패키지 및 유틸리티
- Python 데이터 구조, 연산자, 루프, 조건문, 함수, 메서드 등 작업
- 샘플 프로그램 작성
- 팀 프로젝트
7일차
로봇 개발 준비
- 개발 환경 설정 (예: Arduino IDE)
- Arduino 언어 (C/C++) 문법 탐구
- 코드 작성, 컴파일 및 마이크로컨트롤러에 업로드
- Arduino 로봇의 하드웨어 구성 요소 조립
8일차
Arduino 구성 요소 작업
- 아날로그 센서
- 디지털 센서
Arduino 통신 모듈 작업
- 블루투스 모듈
- Wi-Fi 모듈
- RFID 모듈
- I2C 및 SPI
- 모바일 인터넷
9일차
로봇 제작
- 로봇의 기능 및 특성 계획
- 로봇 움직임 구현
팀 프로젝트
- 토론 및 검토
10일차
로봇 제어
- 컨트롤러 구현
- 로봇 연결 (유선 및 무선)
팀 프로젝트
- 토론 및 검토
주차 03
11일차
로봇 프로그래밍
- Gazebo / ROS를 사용하여 로봇 시뮬레이션
- ROS 노드 이해
- Python 및 C++로 노드 프로그래밍
- ROS의 메시지 및 주제
- 발행/구독 패러다임
팀 프로젝트
- 실제 로봇으로 Bump & Go
- 토론 및 검토
12일차
로봇 프로그래밍 (계속...)
- ROS의 프레임과 참조 변경
- OpenCV를 사용하여 카메라의 2D 정보 처리
- 레이저 정보 처리
팀 프로젝트
- 색상으로 안전하게 객체 추적
- 토론 및 검토
13일차
로봇 테스트
- 코드 테스트 도구
- 유닛 테스트
- 테스트 스위트 작성
- 테스트 자동화
- 문제 해결
팀 프로젝트
- 색상으로 안전하게 객체 추적
- 토론 및 검토
14일차
로봇 프로그래밍 (계속...)
- ROS의 서비스
- PCL을 사용하여 RGB-D 센서의 3D 정보 처리
- ROS를 사용하여 맵 및 네비게이션
15일차
로봇 프로그래밍 (계속...)
- ActionLib을 사용하여 작업 완료
팀 프로젝트
- 환경에서 객체 검색
주차 04
16일차
로봇 프로그래밍 (계속...)
- ActionLib을 사용하여 작업 완료
17일차
로봇 프로그래밍 (계속...)
- 음성 인식 및 음성 생성
- 문제 해결
팀 프로젝트
- 음성을 사용하여 로봇 제어
18일차
로봇 프로그래밍 (계속...)
- MoveIt!을 사용하여 로봇 팔 제어
- 로봇 목 제어를 통한 능동 시야
- 문제 해결
팀 프로젝트
- 객체 검색 및 수집
19일차
로봇 배포
- 물리적 세계에 로봇 배포
- 현장에서 로봇 모니터링 및 서비스
- 모바일 앱을 사용하여 로봇 제어
로봇 보안
- 무단 조작 방지
- 해커가 민감한 데이터를 보거나 도용하는 것을 방지
20일차
데이터 분석
- 로봇이 생성한 데이터를 수집 및 정리
- 시각화 도구 및 과정을 통해 데이터를 이해
로봇 공동 개발
- 클라우드에서 로봇 개발
- 로봇과 상호작용하기 위한 모바일 앱 개발
- 로봇 커뮤니티 참여
과학 및 에너지 분야에서 로봇의 미래 전망
요약 및 결론
Requirements
- C 또는 C++ 프로그래밍 경험
- Python 프로그래밍 경험 (유용하지만 필수는 아니며, 강의에서 가르칠 수 있음)
- Linux 명령줄 사용 경험
대상
- 개발자
- 엔지니어
- 과학자
- 기술자
회원 평가 (1)
I feel I get the core skills I need to understand how the ROS fits together, and how to structure projects in it.