1. ROS란?
Robot OS로 리눅스 위에서 동작시킬 수 있다. ROS를 통해 HW/SW 간 인터페이스를 제공해준다.
다만, 차량에서 ROS를 사용하는 경우는 드물다. 이유는 복잡한 차량 시스템에 ROS의 특정 기능들만을 Merge하는게 복잡하다는 이유에서다.
** prototyping (우리가 생각하는 첫번째 아이디어)도구에는 적합
2. ROS 제공하는 도구
RVIZ: 센서로부터 얻은 값들을 시각화해주는 도구
명령어
RQT: GUI 개발도구
명령어: $ rqt_graph
GAZEBO : 3차원 시뮬레이터 도구
**LTS - Long Term Support , LTS 버전에서 작업하는게 좋은점: 지원 받을 수 있음
3. 통신
1) 요약
ROS 는 내/외부(타ROS) Node(s/w,h/w)들간의 통신을 통해 동작된다. Node들은 서로 통신이 (Topic 통해) 가능하지만 통신이 어려울 경우 마스터(통신에서의 통로역할)의 도움을 받아 통신을 한다. 그 이후 서로간 통신정보를 알게 됨에 따라 마스터 도움 필요없이 서로 통신 가능.
2) 통신방식: Topic(일대일, 다대다 통신) , Service (노드간, 양방향 및 일회성 메시지 송수신 eg. tcp/ip )
(자율주행에선 Topic방식으로 통신.)
3) 리모콘 과 tv 관계, 리모콘과 TV를 연결해주는 U+tv 기기 를 토픽 publisher , subscriber 객체들을 통해 노드간 통신하여 일반 tv, 넷플릭스앱 제어하는 거를 pseudo 코드로 간단히 짜봐라.
4)통신시나리오
노드1,노드2, 마스터 간 통신 시나리오를 구상해보자.
4. ROS 기초 - 용어 및 명령어
1) 용어에 대해 설명해라
마스터, 노드, 토픽, 발행자노드(Publisher), 구독자노드(Subscriber), 패키지
2)기본 명령어
ROS 셀명령어 , ROS 실행 명령어, ROS 정보명령어, ROS catkin 명령어 , ROS package 명령어 들이 무엇이 있는지, 어떻게 사용하는지 조사해라.
3) 기본 명령어 - 중요한 명령어
$ roscore
$ rosrun [package name] [node_name]
$ rosnode [info node_name]
$ rostopic [option]
$ roslaunch [packge_name] [file.launch]
** $: prompt (명령어 실행위해 $ 이 있어야함)
'프로그래머스 > ROS' 카테고리의 다른 글
| ROS 노드통신 프로그래밍(2) (0) | 2022.11.08 |
|---|---|
| ROS 노드 통신 프로그래밍(1) (0) | 2022.11.08 |
| week2-2 코드분석 (과제2) (0) | 2022.11.08 |
| week2-2 8자주행 (과제1) (0) | 2022.11.08 |
| 2) ROS 설치 (0) | 2022.11.07 |