본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2023 ROS 스터디] 김동훈 #2주차 - ROS 용어 및 도구

반응형

저번 1주 차 스터디에서 ROS를 공부하기 위한 초석을 ROS 설치를 통해 다져놓았다면 이번 2주 차 스터디는 ROS를 실질적으로 다루기 위한 기본을 배우는 시간이었다. 유튜브 강의를 보면서 메모장을 켜고 강의 내용을 정리하였지만 아래 github에 있는 ppt 자료에 친절히 설명이 되어 있어 따로 기재하지는 않고 내가 중요하다고 생각했던 부분을 정리하자면 

 

ROS에서 노드 간의 메시지 통신이 가장 기본이 되는 기술적 포인트이고 그 방식으로는 토픽과 서비스, 액션이 있는데

토픽은 퍼블리셔가 서브스크라이버에게 데이터를 주는 단방향이면서 연속적인 통신이고

서비스는 서버와 클라이언트가 서로 데이터를 주고받는 양방향이면서 일회성인 통신이고

액션은 서비스에서 중간결과를 전달하는 과정이 추가된 것이다.

강의 중에 turtlesim 패키지를 설명하시면서 소개팅에 비유하신 부분이 있는데 그 말씀 덕에 이해가 수월했다.

https://github.com/robotpilot/ros-seminar 

 

GitHub - robotpilot/ros-seminar: ROS 수업, 세미나, 강연, 강의 등의 보조 자료

ROS 수업, 세미나, 강연, 강의 등의 보조 자료. Contribute to robotpilot/ros-seminar development by creating an account on GitHub.

github.com

 

이론 중심의 강의가 지나고 본격적으로 실습이 시작되었다.

이번 주 첫 실습인 RViz 설치 및 실행은 오류 한 번 없이 깔끔하게 성공하였다.

두 번째 RQT도 설치 및 실행까지는 한 번에는 아니지만 빠른 시간 내로 성공했지만 다음 단계인 rqt_image_view부터 막히기 시작했다.

$ rosrun uvc_camera uvc_camera_node

이 한 줄이 나를 정말 힘들게 만들었다..

처음에는 rqt 화면상에 웹캠이 뜨지 않는 것이 Virtual Box에서 설치된 Ubuntu 환경이라 내 노트북의 웹캠과 연동이 되어 있지 않아서 뜨지 않는 것인 줄 알고 웹캠을 연결하는 법을 구글링 하여 Ubuntu에도 내 노트북의 웹캠과 연결이 되도록 설정을 했다. 그럼에도 불구하고 camera calibration과 관련된 오류가 계속 뜨면서 이것에 대해 구글링을 셀 수 없이 많이 해봤는데 결국 해결하지 못했다. ROS 공식 사이트에 이와 관련된 자료가 있었음에도 이제 막 걸음마를 뗀 입장으로서는 도저히 어떻게 해야 하는 것인지 이해할 수가 없어서 넘어갔는데 RQT 실습 4가지 중 3가지가 이 노드를 실행해야 하는 것이라 일단 이 노드를 사용하지 않는 rqt_plot부터 실습하였다.

다행히 plot과 관련된 실습은 실행이 아주 잘 되었다. 그래프가 움직이는 것도 뚜렷하게 보였고 turtle의 움직임과 그래프의 움직임을 대조하여 보기도 하였다.

 

uvc_camera_node를 실행시키지 못하면 이번 주차는 사실상 성과가 없는 수준이라고 생각했고 이번 주에 있는 설 연휴에 노트북을 사용하지 못하는 상황이라 어떻게든 그 전에 성공하여 마무리하려고 했지만 수백 번의 구글링에도 성공할 기미가 보이지 않았다. 혼자의 힘으로는 역부족인 부분이 불과 2주 차만에 나왔다는 것이 상당히 마음이 아프지만 이러한 실패도 겪어봐야 더 빠르게 성장할 수 있다고 긍정적으로 생각하기로 했다. 이번에 실행하지 못한 노드는 다른 분들의 글이 게시되면 참고하여 다음 주차 스터디 전에 이것부터 성공하고 시작하고 싶다.

반응형