본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2023 ROS 스터디] 조현준 #1주차 - ROS의 개요, 설치 및 개발환경 세팅

반응형

Chapter  1. 로봇 소프트웨어 플랫폼

1강에서는 로봇 소프트웨어 플랫폼의 탄생배경과 필요성에 대해 설명한다.

  • 산업시장에서는 ' 모듈 + OS + APP(서비스) + 유저 '의 4대 요소가 상호작용을 이루며 분업이 되고있다. 하지만 로봇분야의 기업들은 이 분업이 이루어지지 않아 대중화가 잘 되고있지 않다.

https://www.youtube.com/watch?v=ot_D9N-H4lQ&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=1

  • 로봇 소프트웨어 플랫폼이 가져올 미래
    • 하드웨어 플랫폼과 소프트웨어 플랫폼간의 인터페이스 확립
    • 모듈형 하드웨어 플랫폼 확산
    • 하드웨어에 대한 지식이 없어도 응용프로그램 작성 가능
    • 더 많은 소프트웨어 인력들이 로보틱스 분야로 진입 가능
    • 유저에게 제공할 서비스에 집중 가능
    • 실 수요가 있는 서비스 제공으로 유저 계층 형성 및 피드백 가능
    • 로봇 개발이 급속도로 발전할 수 있는 계기가 된다.

Chapter 2. 로봇 운영체제 ROS

2강에서는 ROS에 대하여 설명한다.

 

 

ROS(Robot Operating System)란

  • 로봇 소프트웨어를 개발하기 위한 프레임워크
    • 노드간 메시지 교환 방식 -> 복잡한 프로그램을 잘게 나눠 공동 개발이 가능
    • 여러가지 시각화, GUI, 시뮬레이션 도구 지원
    • 많이 사용되는 모델링, 센싱등의 기능 지원
    • 로보틱스 생태계 생성
  • ROS는 메타운영체제(Meta-Operating System)이다.
    • 메타 운영체제는 이기종 디바이스 간의 통신을 지원하는 운영체제를 의미한다.
  • ROS의 특징
    • 통신 인프라
      • 노드간 데이터 통신 제공
      • 미들웨어로 지칭되는 메시지 전달 인터페이스 지원
      • 메시지 파싱 기능
      • 메시지의 기록 및 재생
      • 메시지 사용으로 인한 다양한 프로그래밍 언어가 사용가능함
      • 분산 매개변수 시스템
    • 로봇 관련 다양한 기능
      • 로봇에 대한 표준 메시지 정의
      • 로봇 기하학 라이브러리
      • 로봇 기술 언어
      • 진단 시스템
      • 센싱 / 인식
      • 내비게이션, 매니퓰레이션
    • 다양한 개발 도구
      • Command-Line Tools
      • RViz
      • RQT
      • Gazebo

 

Chapter 3.  ROS 개발환경 구축

3강에서는 ROS을 사용하기 위한 설치 및 개발환경 구축에 대해 설명한다.

 

UBUNTU 18.04에 ROS Melodic을 설치하였다.

 

ROS를 한줄로 설치하는 방법도 있었지만 왜인지 모르게 환경변수가 맞지 않아 직접 하나씩 하게 되었다.

 

https://krobot.tistory.com/entry/ROS-ubuntu-1804%EC%97%90%EC%84%9C-ROS-melodic-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

[ROS] ubuntu 18.04 ROS melodic 설치하기

http://wiki.ros.org/melodic/Installation/Ubuntu 를 참고하여 제작하였습니다 ROS에도 버전이 있고 ubuntu에도 버전이 있는데 이 버전들을 잘 맞춰줘야 한다. ubunut 18.04에 해당하는 ros의 버전은 ROS melodic이다.

krobot.tistory.com

설치과정은 위 블로그를 참고하였다.

 

ROS를 설치한 뒤 테스트를 위한 실습을 진행하였다.

 

실습의 내용은 

 

1. roscore 실행

- ROS가 작동되기 위해 반드시 필요한 과정이다. 가장 먼저 실행하여야 한다.

 

2. rosrun turtlesim turtlesim_node

- rosrun은 turtlesim 패키지의 turtlesim_node를 실행하기 위한 명령어이다.

- 위 명령어를 실행하면 화면에 TurtleSim창이 나타나게 된다.

 

3. rosrun turtlesim turtle_teleop_key

- 위 명령어는 turtlesim 패키지에 키보드 입력을 전달하기 위한 노드를 실행하는 명령어이다.

 

4. rosrun rqt_graph rqt_graph

- rqt_graph 패키지는 하나의 ROSCORE안에서 실행되고 있는 노드들의 관계를 나타내주는 그래프를 보여준다.

 

실행결과

turtlesim 실습화면

 

실습을 진행한 후에 IDE세팅은 VSCode(Visual Studio Code)를 선택했다.

이유는 본인이 사용하는 OS에서도 VScode를 사용했을 때 다양한 Extension과 확장성때문에 잘 사용하고있기 때문이다.

 

이 3개의 강의를 들으며 몰랐던 ROS의 특징과 탄생배경까지 알게되었으며, 처음부터 실행함으로서 자세히 알 수 있는 계기가 되었다.

 

강의 출처

1강

- https://www.youtube.com/watch?v=ot_D9N-H4lQ&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=1 

2강

- https://www.youtube.com/watch?v=KcIUl3WH-C8&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=2 

3강

- https://www.youtube.com/watch?v=mRR-3GqVlIU&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=3 

 

반응형