ROS 기본(20.04)

2024. 4. 2. 21:55ROS

구성요소 설명
마스터 노드와 노드사이 연결 및 메시지 통신의 네임서버 역할
roscore로 실행이 되며, URL 주소는 기본적으로는 현재의 로컬 IP 사용
노드 ROS에서 실행되는 최소단위의 프로세스를 말함
ROS에서는 하나의 목적에 하나의 노드 작성을 권장함
노드가 구동될 때, 노드의 역할(토리그 서비스 등), 메시지 형태 등이 등록됨
패키지 ROS를 구성하는 기본 단위
ROS 응용프로그램은 패키지 단위로 개발되며 최소한 하나의 노드를 가짐
메시지 노드와 노드는 서로 메시지를 통해서 데이터를 주고받음
메시지는 integer, float, boolean 등의 변수 형태임
메시지 안에 메시지를 품는 데이터 구조가 가능
단방향은 토픽(topic), 양방향은 서비스(service)
토픽 토픽은 ROS의 노드 사이의 데이터 통신의 한 종류
단방향 통신으로, 데이터를 메시지에 담아서 방송을 함
방송을 하는 퍼블리셔(publisher)와 수신을 하는 서브스크라이버(subscriber)로 구성됨
서비스 서비스(service)는 ROS의 데이터 통신의 한 종류로 양방향 통신임
요청을 받고 데이터를 전달하는 서비스 서버(service server)
데이터를 요청하는 서비스 클라이언트로 구성됨
액션 액션(action)은 서비스와 유사한 ROS의 노드간 데이터 통신 방법
액션 서버와 액션 클라이언트로 구성됨
서비스와 달리 클라이언트의 요청을 즉시 답하지 않고 일정 시간이 지난 후 응답을 할 수 있고, 중간에 상태 값을 전달할 수 도있음
파라미터 파라미터는 서비스 통신에서 변수를 전달하는 방법
서비스 데이터 송수신할 때, 기존 데이터 전송에 더해서 파라미터를 전달 할 수 있음
catkin ROS의 빌드 시스템. ROS는 CMake를 이용해서 패키지의 소스코드를 빌드
CMake 빌드 시스템을 기본으로 수정해서 만든 ROS 전용 빌드 시스템

 

1. 설치 패키지 목록에 ros 를 추가합니다.

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

 

2. ros 설치 키를 설정합니다.

sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add-

 

3. 패키지 목록을 업데이트 합니다.

sudo apt update

 

4. 데스크탑 풀버전을 설치합니다.

sudo apt install ros-noetic-desktop-full

 

5. Shell에서 실행할 수 있도록 환경설정을 합니다(bash의 경우).

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

 

6. ros 실행

roscore

 

7. 리눅스에서 새로운 터미널을 열고 ROS를 실행하려면 매번 다음 명령을 실행해야 합니다.

source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash

 

8. 매번 이 명령을 수행하기 귀찮을 경우, 이 두 명령을 .bashrc파일에 집어 넣습니다.

nano 혹은 다른 텍스트 에디터를 사용해서 아래 내용을 .bashrc말미에 집어 넣습니다.

#Set ROS Kinetic(or Melodic)
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash

#Set ROS alias command
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'

 

9 .bashrc는 한번 설정을 변경하고 저장하면 다음 명령을 수행해야 합니다.

source ~/.bashrc

'ROS' 카테고리의 다른 글

ROS opencv  (0) 2024.04.17
ROS roslaunch  (0) 2024.04.17
ROS 파라미터  (0) 2024.04.17
ROS 서비스  (0) 2024.04.17
ROS 토픽  (0) 2024.04.08