본문 바로가기

ROS (Robot Operating System)

(7)
[ROS: Robot Operating System] 3-2. ROS+아두이노IDE+OpenCM9.04 본 포스팅에서는 ROS를 이용하여 OpenCM9.04 보드. OpenCM9.04는 아두이노IDE를 사용할 수 있고, 또한, 아두이노 IDE는 ROS 라이브러리를 제공하고 있기 때문에 세 가지 방법을 통합하여 사용을 해본다. OS: Ubuntu ROS 버전: melodic 개발보드: OpenCM9.04 개발환경: 아두이노 IDE 먼저, 아두이노 ROS 패키지를 위한 소프트웨어를 설치한다. 터미널에 아래와 같이 입력한다. ros-melodic-rosserial-arduino * 만약, ros의 버전이 kinetic이면 melodic을 대신 kinetic을 입력하면 된다. 아래 rosserial은 ROS에서 시리얼 통신을 해줄 수 있도록 설치하는 것이다. ros-melodic-rosserial 아래 링크에서 ..
[ROS: Robot Operating System] 3-1. ROS 파일시스템 1. ROS의 파일 시스템 - Stack (ROS의 스택은 높은 수준의 라이브러리를 구성하는 패키지의 집합) > Package 1.2. ROS의 파일시스템 레벨 - 메타 패키지 (Meta Package): 현재 패키지와 관련된 다른 패키지들을 나타내준다. - 패키지 (Package): ROS의 가장 기초가 되는 구성으로, 라이브러리, 도구, 실행 파일 등이 포함되어 있다. - 패키지 매니페스트 (Package Manifest): 패키지를 설명하는 메타 데이터를 제공한다. - 메세지 타입: ROS에서 토픽을 주고 받는 메세지의 데이터 구조를 제공한다. - 서비스 타입: ROS에서 서비스를 위한 요청과 응답을 주고 받는다. 2. 설치파일 구성 - ROS의 설치파일은 크게 "ROS 설치 폴더"와 "사용자 작업..
[ROS: Robot Operating System] 2-3. ROS Message (메세지)의 이해 ROS Message (메세지)의 이해 1. Message (메세지)의 개념 - 메세지는 Topic이 데이터나 정보를 주고 받을 때 사용하는 포맷이다. - 토픽과 조금 혼동될 수도 있는데, 토픽은 데이터라고 보면 되고, 메세지는 정의된 자료형이라고 생각하면 쉬울 듯 하다. 2. 메세지 확인 예제 rostopic을 입력해보면, 아래와 같이 옵션들을 확인할 수 있다. - 토픽의 타입을 알기 위해 type 옵션을 사용해볼 예정이다. - /turtle1/cmd_vel 토픽이 어떤 메세지 타입을 주고 받는지 확인해보기 위해 rostopic type /turtle1/cmd_vel 을 입력해본다. - /turtle1/cmd_vel 토픽은 geometry_msgs/Twist 라는 메세지를 이용한다. 즉, geometr..
[ROS: Robot Operating System] 2-1. ROS Node (노드)의 이해 ROS Node (노드)의 이해 지난 포스팅에서는 ROS 설치 방법 및 작동 테스트 확인에 대한 포스팅을 하였다. 이번 포스팅에서는 ROS의 가장 기본적이고 중요한 개념들에 대해 튜토리얼을 진행하면서 공부를 해보려고 한다. ROS에서 사용되는 가장 기본적인 용어들은 따로 포스팅 해두었으니, 참고 하길 바란다. [ROS] 용어 정리: https://neosla.tistory.com/36?category=825336 ROS 공식 홈페이지에서는 ROS Tutorials을 제공한다. Beginner level과 Intermediate Level이 있으며, 이 Tutorial을 기반으로 Beginner level부터 시작하여 순차적으로 포스팅을 진행할 예정이다. [ROS] Tutorial: http://wiki...
[ROS: Robot Operating System] 1-3. ROS 용어 정리 1. Topic, 토픽 - Topic이란 노드들 간에 통신을 할 수 있는 채널이다. 두 프로그램 간에 어떤 통신이 발생하고, 어떤 메시지를 주고 받게 되는데 이 경로를 토픽이라고 한다. 2. Message, 메시지 - 메세지는 Topic이 데이터나 정보를 주고 받을 때 사용하는 포맷이다. 3. Publisher - Publisher는 데이터를 발생 (Publish)하는 노드이다. 4. Subscriber - Subscriber는 Publisher가 Topic에 쓴 Message를 받거나 읽는 노드이다. 5. Catkin (캐킨) - catkin은 ROS에서 코드를 빌드하고 구성하는데 사용되는 방법으로, 다른 빌드시스템보다 ROS 패키지를 외부에서 가져온 코드나 통합하거나, 혹은 만든 소프트웨어를 릴리즈하..
[ROS: Robot Operating System] 1-2. ROS 설치 ROS 설치 본 포스팅에서는 ROS를 Ubuntu 환경에 설치하는 방법에 대해 포스팅한다. 1. 네트워크 시간 동기화 * 설치 전, Ubuntu의 네트워크 시간을 동기화하는 것을 먼저 설치한다. - ROS는 네트워크 시간을 사용하여 Message가 보내진 시간을 확인하기 때문에 PC간의 시간 동기화가 중요하다. - 시간을 동기화 하는 방법으로 NTP (network time protocol)와 rdate가 있다. 정확한 단위의 동기화가 필요하다면 NTP를 이용하면 된다. NTP는 밀리초(1/1000) 단위까지 계산해준다. - Ubuntu는 기본적으로 timedatectl 패키지가 설치되어 있다. 1) Ubuntu의 터미널을 연다. 2) 터미널에 sudo apt-get install ntpdate 를 입력..
[ROS: Robot Operating System] 1-1. 개요 1. ROS의 정의 - ROS란 Robot Operating System의 약자로 "로스" 라고 발음하고, 로봇용 공개소스 메타운영체제 (Meta-operating system)이다. - 메타운영체제 (Meta-operating sysetem)는 응용 프로그램을 개발하기 위해 스케쥴링 및 로드, 감시, 에러 처리 등을 실행하는 시스템을 의미한다. - 즉, ROS는 로봇 응용 프로그램을 개발하기 위한 운영체제와 같은 로봇 플랫폼이지만, 리눅스, 윈도우, OS-X, 안드로이드 등과 같은 전통적인 운영체제는 아니다. - 따라서, ROS는 기존의 OS를 기반으로 스케쥴링, 파일시스템, 프리세스 관리 등을 사용할 수 있도록 하며, Middleware+Software Framework+Tools+Plumbing+E..