본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2024 ROS 스터디] 이하람 #1주차 - ROS 소개 및 설치하기

반응형

Chapter1. 로봇 소프트웨어 플랫폼

소프트웨어 플랫폼이 가져온 변화

  • 하드웨어 인터페이스 통합
  • 하드웨어 추상화 및 모듈화
  • 가격 감소 및 성능 상승
  • 하드웨어, 운영체제, 애플리케이션 분리
  • 사용자 수요에 맞는 서비스에 집중
  • 유저 증가로 인한 플랫폼의 생태계 생성

로봇 소프트웨어 플랫폼의 종류

갈라파고스 오픈소스 클로즈드 소스
OPRoS

RT Middleware
ROS
NAOqi

 

Chapter2. 로봇 운영체제 ROS

ROS의 특징

  • 메타 운영체제
  • 통신 기능
  • 로봇 관련 다양한 기능
  • 다양한 개발 도구

Chapter3. ROS 개발환경 구축

사용하고자 하는 환경(Enviroment) 설정

먼저 사용하고자 하는 편집기, 터미널과 같이 사용하고자 하는 기본 환경을 구비하는 것이 좋다.

이후에는 ROS를 사용할 때 편한 단축 명령어를 사용할 수 있다.

ROS 강의에도 유용한 환경 설정이 있지만 주로 다음 ss 명령어를 사용한다.

alias ss="source devel/setup.zsh"

이 명령어는 ROS 패키지의 코드를 실행할 때 필요한 다양한 환경변수들을 미리 불러오는 명령어이다. ROS 강의에서는 이 명령어를 터미널이 실행될 때마다 실행시키지만 다음과 같이 수동 실행을 시킬수도 있다.

ROS 설치

http://wiki.ros.org/noetic/Installation/Ubuntu

 

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

ROS Noetic의 경우, 다음 사이트에서 자세한 설치 정보를 받을 수 있다.

이외의 버전도 ros.org 사이트에서 설치 문서가 자세하게 설명되어 있다.

ROS에서 제공되는 기본적인 툴은 대부분의 상황에서 빈번히 사용되고, 이후 강의에서도 사용될 수 있으므로 되도록이면 Desktop-Full Install 버전 설치를 추천한다.

 

또한, ROS 설치 문서 끝부분에 다음 명령어를 통해 우분투 버전만 맞다면 ROS를 한줄로 설치할 수 있다.

http://wiki.ros.org/ROS/Installation/TwoLineInstall/

 

ROS/Installation/TwoLineInstall - ROS Wiki

Single-line installation The following line of command will install the latest ROS Noetic Ninjemys on Ubuntu Focal 20.04. Copy & Paste this line of command into the Ubuntu terminal. wget -c https://raw.githubusercontent.com/qboticslabs/ros_install_noetic/m

wiki.ros.org

특히 ROS 공식 홈페이지이기 때문에 설치 링크의 신뢰도도 높은 편이다.

 

ROS 동작 테스트

ROS가 설치되었으면 기본적으로 설치되는 turtlesim 패키지를 통해 ROS의 동작을 테스트할 수 있다.

roscore

ros는 각 프로그램들이 각각의 노드(Node)로써 실행되고 이러한 노드들을 관리하는 마스터(Master)가 중앙에 있는 마스터/슬레이브 모델을 따른다. 즉 ros의 노드들을 실행시키려면 이전에 roscode 명령어를 통해 마스터를 실행시켜야 한다.

rosrun turtlesim turtlesim_node

turtlesim은 ros를 설치하면서 기본적으로 설치되는 프로그램 중 하나이다. ros에서 제공되는 메세지 체계를 이용해서 거북이를 움직일 수 있는 간단한 프로그램이다.

rosrun turtlesim turtle_teleop_key

마지막으로 실행한 Turtlesim을 조종하기 위해 turtle-teleop-key 프로그램을 사용한다. 이 프로그램은 거북이의 움직임에 관한 정보를 메세지의 형대로 발신하고, turtlesim 프로그램이 이 메세지를 받아서 거북이를 움직이게 된다. 여기서 두 프로그램은 별개의 프로그램이지만 ros의 메세지를 통해 정보를 주고받을 수 있으므로, 다른 프로그래밍 언어나 이기종 디바이스 간의 통신을 지원하는 데 중요한 역할을 한다.

 

반응형