본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2023 ROS 스터디] 정혁제 #1주차 - ROS에 대해 알아보자

반응형

들어가며

 

강의가 총 3편이였지만, 막상 이론적인 내용 뿐이라 사실 패드에 쓰면서 공부를 더 많이 한 듯하다.

일단 리눅스의 단축키부터 하나도 모르는 상황이라, 기초적인 것들은 유튜브를 통해 배워나갔다.

출처 - https://www.youtube.com/watch?v=9_KIdQ8abH4 

pwd 부터 sudo명렁어까지 필수적인 부분들을 설명해 주시는데, 아마 나빼고는 다들 아는 부분이라 생각한다...

(조만간 책 한권 사서 자세한 구조까지 알아봐야겠다)

 

Chapter 1.

 

이번강의는 전반적인 로봇의 현황에 대해 많이 설명해 주셨다.

처음 주제는 computer와 personal phone의 공통점 2가지이다.

1. 다양한 하드웨어의 결합이 가능한 하드웨어 모듈

2. 운영체제 + 애플리케이션

또한, Hardware + OS + APP(SERVICE) + USER 4개를 묶어서 ECO SYSTEM, 생태계 4대요소라고 한다.

로봇산업 전반도 컴퓨터와 개인폰의 개발흐름이 밟아온 단계에 따라 발전해갈 예정이라고 하셨다.

 

Chapter 2.

 

본격적으로 ROS에 대해 알아보자. 

핵심적인 부분은, ROS는 로봇 운영체제의 일부이며, 가장 대표적이며 사용자 수 또한 많다. (사실 운영체제의 일부는 애매하고, 운영체제를 사용하는 미들웨어가 적당한 듯 하다)

지원하는 운영체제가 많지만, ubuntu , linux mint, debian 이 세가지를 추천하셨다.

특징은 총 3가지로, 1.통신인프라, 2.ROBOT관련 다양한 기능, 3.다양한 개발도구가 있다.

 

1. 통신인프라

1) node간 통신을 하며, 만약 카메라를 사용한다고 치면, 이러한 정보를 어떻게 보낼지 computer level에서 논의가 된다. 그래서 이러한 센서다, 혹은 이러한 디바이스다 하면은 알아서 정보를 전달해준다.

2) 메세지의 기록 및 재생

각 노드 사이의 정보 교환을 메세지라고 하며, 이러한 특징은 알고리즘 수정하고 새로워진 데이터를 돌리는 것이 아니라, 전에 저장한 데이터를 돌려 향상된지, 아닌지 확인 할 때 사용한다.

3) 메세지 사용으로 인한 다양한 프로그래밍 언어 사용 가능

4) 분산 매개 변수 시스템

 

2. ROBOT 관련 다양한 기능

1) 로봇에 대한 표준 메세지 정의

2) 로봇 기하학 라이브러리(Transform 제공) - 생태적 좌표를 트리화

3) 로봇 기술 언어

4) 네비게이션 / 매니풀레이션

...등이 있다.

 

3. 다양한 개발 도구

ROS는 일종의 Toolbox라고 이해하면 더 편하다고 하셨다.

1) command-line tools

2) RViz

3) RQT

4) Gazebo

..등이 있다.

 

Chapter 3.

 

이제부터 ROS설치에 대한 내용이다. (한줄짜리 설치 말고, 선생님이 추천하는 직접 설치하는 단계를 거쳐보자)

1. 구글에 ros wiki 검색

2.  ROS Wiki : Documentation 클릭

3. Install 클릭

4. ROS MElodic Morenia 클릭

5. Ubuntu 클릭

6. 순서에 맞게 설치해주면 된다. 

 

첫번째
두번째.

나같은 경우는 다음에서 에러폭탄이 나왔다.

 

ㅕ에러 범벅이 나버린 명령어.

하라는 업데이트는 안하고 에러만 잔뜩 배출해낸다.

처음에는 그냥 못본척 넘어가서 다른것들을 다 다운받았는데, rosrun turtlesim turtlesim_node 할 때 거북이가 안뜨는 대참사가 날나버렸다.. 그러므로 에러나오면 구글링으로 바로바로 잡아주고 넘어가주도록 하자!!

 

여기까지 왔다면 설치가 끝날 것이다.

그렇다면 roscore을 실행해보자.

잘은 모르지만, 내가 원하는 버전으로 설치가 된 것을 알 수 있다.

roscore을 실행하고, 또다른 터미널 창을 열어서 rosrun turtlesim turtlesim_node를 실행해보자

아마 귀여운 거북이가 나타날 것이다.

이제 이 거북이를 움직이기 위해서 또또다른 터미널 창을 열어 rosrun turtlesim turtle_teleop_key를 실행하자.

(참고로 거북이 창이 아니라, 방금 친 터미널창이 맨 앞으로 오게 해야한다. 그래야 방향키대로 움직이는 것을 확인할 수 있다.)

잘보면 오각형 있음

이렇게 ros설치를 마쳤다.

 

나가며

 

사실 ROS설치는 10번도 넘게 했다. 지금 사용하는 노트북이 친형이 대학년 1학년때부터 쓰던 노트북이라(노트북나이 8살), 설치도 매우 느릴뿐만 아니라, 기나긴 설치의 끝은 항상 오류덩어리였다. 그래서 이번에 잘생기신 회장님께 노트북관련해서 궁금한 점을 물어보았고, 결국 바꾸게 되었다. (아마 월요일~화요일쯤에 도착할 것 같다)  노트북이 온다면 ROS설치를 이제 한번에 성공했으면 좋겠다..

또한, ros와 자율주행 대회를 공부하면서 느낀 점이, 컴퓨터구조에 대해 아예 아무런 지식이 없어서, 너무 힘들었다는 점이였다. 이번주 내로 책이든 강의든 찾아봐서 공부를 할 예정이다.+리눅스와 vim공부도..

3학년때 it과목 중 컴구및 운영체제랑 자료구조 및 알고리즘 강의를 들었어야 했는데..(자공과도 수업 개설해주세요)

반응형