본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2024 ROS 스터디] 변수양 #1주차 - ROS 소개 및 설치하기

반응형

https://youtube.com/playlist?list=PLX-Ur4rl2-qxkR14lmj4YdbNRcGYMA4mP&feature=shared

2024 ROS 스터디 1주차

www.youtube.com

 
ROS 강의 Chapter1. 로봇 소프트웨어 플랫폼
 
1) 플랫폼의 구성 요소
하드웨어 모듈 + 운영체제 + 앱(서비스) + 유저 
-> 보이지 않는 생태계 속의 분업 
 
2) 로봇 소프트웨어 플랫폼
 
* 소프트웨어 플랫폼이 가져온 변화
- 하드웨어 인터페이스 통합
- 하드웨어 추상화, 규격화, 모듈화
- 가격은 떨어지고 성능은 올라감
- 하드웨어, 운영체제, 애플리케이션 분리
- 사용자 수요에 맞는 서비스에 집중 
- 유저가 증가하고, 구매와 피드백으로 새로운 생태계 선환 구조 형성
 
* 주요 로봇 운영체제
- 오픈 소스 로봇 운영 체제
소스 코드가 공개되어 있어 누구나 사용하거나 수정할 수 있는 로봇 운영 체제
이 운영 체제는 개발자 커뮤니티의 지원을 받아 기능이 지속적으로 추가되고 버그가 수정되는 등의 장점이 있음
ex) ROS (Robot Operating System)
- 갈라파고스 로봇 운영 체제
특정 지역이 국가에서 주로 사용되는 로봇 운영 체제를 지칭
이러한 운영 체제는 해당 지역의 특정 요구사항이나 규제에 맞게 개발되어 있을 수 있음
- 클로즈 소스 로봇 운영 체제
소스 코드가 공개되지 않고, 특정 회사나 단체 독점적으로 개발 및 유지 보수하는 로봇 운영 체제
운영 체제는 특허, 상업적밀 등의 이유로 소스 코드를 공개하지 않으며, 일반적으로 라이선스 구매를 통해 사용ex) Robotics Developer Studio
 
3) 로봇 소프트웨어 플랫폼의 필요성
효율적으로 개발할 수 있음
-> 운동장(운영체제) 만들기 소모전(X) 그라운드 위의 멋진 선수(플랫폼을 활용하여 개발) 
 
4) 로봇 소프트웨어 플랫폼의 필요성이 가져올 미래
- 하드웨어 플랫폼과의 소프트웨어 플랫폼 간의 인터페이스 확립
- 모듈형 하드웨어 플랫폼 확산
- 하드웨어에 대한 지식 없이도 응용프로그램 작성 가능
- 더 많은 소프트웨어 인력들이 로보틱스 분야로 진입, 로봇 제품에 참여 가능
- 유저에게 제공할 서비스에 집중
- 실수요가 있는 서비스 제공으로 유저 계층 형성 및 피드백
- 로봇 개발이 급속도로 발전 할 수 있는 계기
 
ROS 강의 Chapter2. 로봇 운영체제 ROS
 
1) ROS
Robot Operating System, 메타 운영체제(Meta-Operating System)
* 메타 운영체제: 기존의 전통적인 운영체제를 이용(기존 운영체제의 프로세스 관리 시스템, 파일 시스템, 유저 인터페이스, 프로그램 유틸 등을 사용)하여 로봇 응용 소프트웨어 개발을 위한 필수 기능들을 라이브러리 형태로 제공하고 있음
 
2) ROS를 사용 가능한 운영체제
Ubuntu, OS X에서 구동하는 것을 추천
-> 다양한 운영체제에서 사용할 수 있으나 기능 제한사항이 있을 수 있음
 
3) ROS의 생태계
개발자 유저 APP <-> ROS <-> ROBOT,SENEOR 로봇, 센서회
 
4) ROS 특징
 
- 통신 인프라 : 노드 간 데이터 통신을 제공, 통상적 미들웨어로 지칭되는 메시지 전달인터페이스 지원
* 메시지 파싱 기능: 로봇 개발 시에 빈번히 사용되는 통신 시스템 제공, 캡슐화 및 코드 재사용 촉진하는 노드 간의 메시지 전달 인터페이스
* 메시지의 기록 및 재생: 노드 간 송수신 되는 데이터 메시지를 저장하고 재사용, 저장된 메시지 기반 반복 실험/알고리즘 개발에 사용 용이
* 다양한 프로그래밍 언어 사용 가능: 노드 간 데이터 교환이 메시지를 사용하여 각 노드 서로 다른 언어로 작성 가능
* 분산 매개 변수 시스템: 시스템에서 사용되는 변수를 글로벌 키 값으로 작성하여 공유 및 수정해 실시간 반영
 
- 로봇 관련 다양한 가능 
* 로봇에 대한 표준 메시지 정의: 센서, 내비게이션 데이터 등의 표준 메시지를 정의하여 모듈화, 협업 작업 유도로 효율성 향상
* 로봇 기하학 라이브러리: 로봇, 센서들릐 상대적 좌표를 트리화 시키는 TF 제공
* 로봇 기술 언어: 로봇의 물리적 특성을 설명하는 XML 문서 기술
* 진단 시스템: 로복 상태를 한눈에 파악할 수 있는 시스템 제공
* 센싱/인식: 센서 드라이버, 센싱/인식 레벨의 라이브러리 제공
* 내비게이션: 로봇의 포즈(위치/자세) 추정, 지도내의 자기 위치 추정 제공, 지도 작성에 필요한 SLAM, 작성된 지도 내에서 목적지를 찾아가는 내비게이션 라이브러리 제공
* 매니퓰레이션: 로봇 암에 사용되는 IK,FK, 응용단의 Pick and Place 를 지원하는 다양한 메니퓰레이션 라이브러리 제공, GUI 형태의 매니퓰레이션 Tools 제공
 
- 다양한 개발 도구: 로봇 개발에 필요한 다양한 개발 도구 제공, 로봇 개발의 효율성 향상
* command-line tools: GUI 없이 ROS에서 제공되는 명령어로만 로봇 엑세스 및 기능 소화
*RViz: 강력한 3D 시각화툴 제공, 센서데이터를 시각화, 로봇 외형과 계획된 동작 표현
*RQT: 그래픽 인터페이스 개발을 위한 Qt 기반 프레임 워크 제공, rqt_graph, rqt_plot, rqt_bag
*Gazebo: 물리 엔진을 탑재, 로봇, 센서, 환경 모델 등을 지원, 3차원 시뮬레이터, ROS와의 높은 호완
 
 
ROS 강의 Chapter3. ROS 개발 환경 구축
 
1) ROS 설치
noetic/Installation/Ubuntu - ROS Wiki

noetic/Installation/Ubuntu - ROS Wiki

If you rely on these packages, please support OSRF. These packages are built and hosted on infrastructure maintained and paid for by the Open Source Robotics Foundation, a 501(c)(3) non-profit organization. If OSRF were to receive one penny for each downlo

wiki.ros.org

설치를 시작하려는데, suyang is not in the sudoers file. this incident will be reported
라는 문구가 뜨면서 설치가 막혀서 찾아보니 내 사용자 계정에 관리자 권한이 부여되지 않아 발생한 문제로
가상 머신 환경에서 리눅스를 실행하고 있기 때문에 재시작 + 터미널에 sudo reboot 명령어를 입력하여 해결
 
2) ROS 개발환경
* gedit ~/.bashrc 명령을 실행
~/.bashrc 파일이 gedit 에디터에서 열리고, 이를 통해 bash 설정을 확인하거나 수정 가능
 
3) ROS 동작 테스트
turtlesim 패키지
terminator를 통해 동작 테스트
-> sudo apt install terminator 

rosversion -d
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key 

를 차례로 입력하여 결과 확인

거북이로 ROS 그리기&amp;nbsp;


 

반응형