ROS 기본(20.04)
2024. 4. 2. 21:55ㆍROS
구성요소 | 설명 |
마스터 | 노드와 노드사이 연결 및 메시지 통신의 네임서버 역할 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 |