1. roscore을 새로운 터미널에서 동작시킨다. (하나의 roscore만 실행 가능하다.)

 

rocore

 

2. 터틀심을 실행시킨다.

 

rosrun turtlesim turtlesim_node

 

3. 터틀심의 거북이를 조종하기 위해서 키보드 값을 받아오는 노드를 실행시킨다.

 

rosrun turtlesim turtle_telop_key

(실행을 시켰다면 키보드를 이용해 거북이를 움직여보자!)

 

turtlesim_node와 turtle_teleop_key 노드는 topic을 통해 통신한다. turtle_teleop_key는 키의 입력을 발행(publishing)하고, turtlesim은 키의 입력을 전달받기 위해 같은 topic을 구독(subscribing)한다. 그럼 이제 rqt_graph를 이용해 node와 topic이 어떻게 동작하고 있는지 확인해 보자.

 

4. rqt_graph를 실행하여 그래프를 확인해보자.

만약 rqt가 설치되어 있지 않다면 설치해주자.

 

sudo apt-get install ros-melodic-rqt

sudo apt-get install ros-melodic-rqt-common-plugins

 

rosrun rqt_graph rqt_graph

 

 

 

5. rostopic 명령어를 통해 토픽의 리스트를 확인, 토픽의 값 확인, 메시지 타입 확인 등을 할 수 있다.

 

rostopic list

 

rostopic ehco /turtle1/cmd_vel

(위에서 그래프를 보면 알 수 있듯이 토픽 이름은 /turtle1/cmd_vel이다.)

 

rostopic type /turtle1/cmd_vel

(해당 명령어를 실행하면 geometry_msgs/Twist 결과를 볼 수 있을 것이다.)

 

메시지를 자세히 알아보기 위해 rosmsg를 이용하자.

rosmsg show geometry_msgs/Twist

 

 

6. 이쯤 됐으면 해당 토픽의 메시지를 조작하여 거북이를 움직일 수 있다는 생각이 들지 않는가?

 

rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

 

/turtle1/cmd_vel 토픽의 geometry/Twist 메시지를 publish 해주는 명령어이다.

(실행해보면 거북이가 움직이는 것을 볼 수 있다.)

 

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

(옵션 r을 추가해 주면 계속해서 거북이가 움직이는 것을 볼 수 있다.)

 

rostopic hz 등 다른 옵션들도 해보길 바란다.

 

7. 데이터의 흐름을 볼 수 있는 그래프를 이용해 데이터 흐름을 보자

 

rosrun rqt_plot rqt_plot

 

rqt_plot이 실행 됐다면 토픽명을 입력하여 해당 토픽의 값에 따른 그래프의 흐름을 볼 수 있다.

'ROS' 카테고리의 다른 글

7. ROS 노드 이해하기  (0) 2020.01.24
6. ROS 용어 정리2  (0) 2020.01.24
5. ROS 용어 정리  (0) 2020.01.13
4. ROS 패키지 생성  (1) 2020.01.10
3. ROS 파일시스템  (0) 2020.01.09

1. roscore를 실행(roscore 실행은 ROS를 사용할 때 가장 먼저 해야 하는 일이다.)

 

roscore

 

(만약 roscore가 실행되지 않고 Permission 메세지를 보낸다면, ~/.ros 폴더를 관리자 권한으로 바꿔주면 된다.)

sudo chown -R <사용자명> ~/.ros

 

2. roscore가 실행 됐다면 새로운 터미널 창을 열고 현재 실행 중인 노드의 리스트를 확인해보자.

 

rosnode list

(보이는 것과 같이 /rosout 노드 하나만 보일 것이다.)

 

3. 해당 노드의 정보를 보고 싶을 때는 info 옵션을 쓰면 된다.

 

rosnode info /rosout

 

4. 이제 rosrun으로 노드를 실행시켜보자.

 

rosrun turtlesim turtlesim_node

 

 

 

5. 다시 노드의 리스트를 확인해보자.(그럼 turtlesim 노드가 리스트에 추가되어 있을 것이다.)

 

rosnode list

 

 

6. 노드를 실행할 때 노드의 이름을 정해 줄 수 있다.(다음과 같은 방식으로 여러 개의 turtlesim을 실행 가능하다.)

 

rosrun turtlesim turtlesim_node __name:=my_turtle

 

rosnode list

 

 

참고자료:

http://wiki.ros.org/ko/ROS/Tutorials/UnderstandingNodes

'ROS' 카테고리의 다른 글

8. ROS 토픽 이해하기  (1) 2020.01.24
6. ROS 용어 정리2  (0) 2020.01.24
5. ROS 용어 정리  (0) 2020.01.13
4. ROS 패키지 생성  (1) 2020.01.10
3. ROS 파일시스템  (0) 2020.01.09

13. 캐킨

캐킨(catkin)은 ROS의 빌드 시스템을 말한다. ROS의 빌드 시스템은 기본적으로 CMake(Cross Platform Make)를 이용하고 있어서 패키지 폴더에 CMakeLists.txt라는 파일에 빌드 환경을 기술 하고 있다. ROS에서는 CMake를 ROS에 맞게 수정하여 ROS에 특화된 캐킨 빌드 시스템을 만들었다. 캐킨은 ROS Fuerte 버전부터 알파테스트를 시작하여 Groovy에서 코어 패키지들이 캐킨으로 전환 됬으며, Hydro 버전부터 대부분 패키지에 적용되어 사용되고 있다. 캐킨 빌드 시스템은 ROS와 관련된 빌드, 패키지 관리, 패키지 간의 의존관계 등을 편리하게 사용할 수 있게 한다. 현시점에서 ROS를 사용한다면 ROS빌드(rosbuild)가 아닌 캐킨을 사용해야 한다.

 

14. ROS 빌드

ROS 빌드(rosbuild)는 catkin 빌드 시스템 이전에 사용되었던 빌드 시스템이고 지금까지도 사용하는 사용자들이 있기는 하지만 이는 ROS 버전의 호환성을 위해 남겨둔 것이지 공식적으로는 추천하지 않는다. 만약 rosbuild 빌드 시스템을 사용한 이전 패키지를 사용해야만 한다면 rosbuild를 catkin으로 변경하여 사용하기를 추천한다.

 

15. roscore

roscore는  ROS 마스터를 구동하는 명령어이다. 같은 네트워크라면 다른 컴퓨터에서 실행해도 된다. 단, 멀티 roscore를 지원하는 특수한 경우를 제외하고는 roscore는 같은 네트워크에서 하나만 구동된다. ROS를 구동하면 사용자가 정해놓은 ROS_MASTER_URI  변수에 기재된 URI 주소와 포트를 사용하게 된다. 사용자가 설정해놓지 않았으면 URI 주소로 현재의 로컬 IP를 사용하고, 11311 포트를 사용한다.

 

16. rosrun

rosrun은 ROS의 기본 실행 명령어이다. 패키지에서 하나의 노드를 실행하는 데 사용된다. 노드가 사용하는 URI 주소와 포트는 현재 노드가 실행 중인 컴퓨터에 저장된 ROS_HOSTNAME 환경 변숫값을 URI 주소로 사용하며, 포트는 임의의 고윳값으로 설정된다.

 

17. roslaunch

rosrun이 하나의 노드를 실행하는 명령어라면 roslaunch는 여러 노드를 실행하는 개념이다. 이 명령어를 통해 하나 그 이상의 정해진 노드를 실행시킬 수 있다. 그 밖의 기능으로 노드를 실행할 때 패키지의 파라미터나 노드 이름 변경, 노드 네임스페이스 설정, ROS_ROOT 및 ROS_PACKAGE_PATH 설정, 환경변수 변경 등 많은 옵션을 갖춘 노드 실행에 특화된 ROS 명령어이다.

 

roslaunch는 *.launch 파일을 사용하여 실행 노드에 대한 설정을 해주는데 이는 XML(Extensible Markup Language)에 기반을 두고 있으며, XML 태그 형태의 다양한 옵션을 제공한다.

 

18. bag

ROS에서 주고받는 메시지의 데이터는 저장할 수 있는데 이때 사용되는 파일 포맷을 bag라고 하며 확장자로 *.bag를 사용한다. ROS에서는 이 bag을 이용하여 메시지를 저장하고 필요할 때 이를 재생하여 이전 상황을 그대로 재현할 수 있다. 예를 들어 센서를 이용한 로봇 실험을 실행할 때, 센서 값을 bag를 이용하여 메시지 형태로 저장한다. 이 저장된 메시지는 같은 실험을 수행하지 않아도 저장해둔 bag 파일을 재생하는 것으로 그 당시의 센서값을 반복해서 사용할 수 있다. 특 rosbag의 기록, 재생의 기능을 활용하면 반복되는 프로그램 수정이 많은 알고리즘 개발에 매우 유용하다.

 

19. 네임

노드, 파라미터, 토픽, 서비스에는 모두 네임(name)이 있다. 이 네임을 마스터에 등록하고 각 노드의 파라미터, 토픽, 서비스를 사용할 때 이름을 기반으로 검색, 메시지를 전송한다. 또한 네임은 실행할 때 변경할 수 있기 때문에 매우 유연하고, 같은 노드, 파라미터, 토픽, 서비스라고 하여도 다른 네임으로 중복하여 사용할 수 있다. 이러한 네임의 사용으로 ROS는 큰 규모의 프로젝트, 복잡한 구조의 시스템에도 적합하다.

 

20. 클라이언트 라이브러리

ROS는 사용되는 언어의 의존성을 낮추기 위해 클라이언트 라이브러리(client library)로 각종 언어의 개발환경을 제공한다. 주요한 클라이언트 라이브러리로는 C++, Python, Lisp 등이 있으며, 이외에도 Java, Lua, .NET, EusLisp, R 등의 언어들을 사용할 수 있다. 이를 위해 roscpp, rospy, roslisp, rosjava, roslua, roscs, roseus, PhaROS, rosR 등의 클라이언트 라이브러리가 개발되었다.

 

참고자료:

ROS 로봇 프로그래밍(표윤석)

'ROS' 카테고리의 다른 글

8. ROS 토픽 이해하기  (1) 2020.01.24
7. ROS 노드 이해하기  (0) 2020.01.24
5. ROS 용어 정리  (0) 2020.01.13
4. ROS 패키지 생성  (1) 2020.01.10
3. ROS 파일시스템  (0) 2020.01.09

1. 마스터

마스터는 노드와 노드 사이의 연결과 메시지 통신을 위한 네임서버와 같은 역할을 한다.

roscore 명령어로 실행 가능하며, 마스터 없이는 노드 간의 접속, 토픽과 서비스 같은 메시지 통신을 할 수 없다.

ROS_MASTER_URI 변수에 기재된 URI 주소와 포트를 가진다.

기본 값으로 URI 주소는 현재 로컬 IP를 가지며 포트는 11311을 사용한다.

 

2. 노드

노드는 ROS에서 실행되는 최소 단위의 프로세서를 지칭한다.

ROS에서는 하나의 목적에 하나의 노드를 작성하길 권하며, 재사용이 쉽게 구성하여 개발하기를 권한다.

예를 들어 모바일 로봇의 경우, 로봇을 구동하기 위하여 각 프로그램을 세분화시킨다.

즉, 센서 드라이브, 센서 데이터를 이용한 변환, 장애물 판단, 모터 구동, 엔코더 입력, 내비게이션 등 세분화된 작은 노드들을 이용한다.

노드는 구동과 함께 마스터에 노드 이름과 publisher, subscriber, service server, service client에서 사용하는 토픽 및 서비스 이름, 메시지 형태, URI 주소와 포트를 등록한다. 이 정보들을 기반으로 각 노드는 노드끼리 토픽과 서비스를 이용하여 메시지를 주고받을 수 있다.

 

3. 패키지

패키지는 ROS를 구성하는 기본 단위이다. ROS의 응용프로그램은 패키지 단위로 개발되며 패키지는 최소한 하나 이상의 노드를 포함하거나 다른 패키지의 노드를 실행하기 위한 설정 파일들을 포함하게 된다. 더불어 각종 프로세스를 구동하기 위한 ROS 의존성 라이브러리, 데이터셋, 설정 파일 등 패키지에 필요한 모든 파일을 포함하고 있다.

 

4. 메타패키지

메타 패키지는 공통된 목적을 지닌 패키지들의 집합을 말한다. 예를 들어 Navigation 메타 패키지는 AMCL, DWA, EKF, map_server 등 10여 개의 패키지로 구성되어 있다.

 

5. 메시지

노드는 메시지(message)를 통해 노드 간의 데이터를 주고받는다. 메시지는 integer, floating, point, boolean과 같은 변수 형태이다. 또한 메시지 안에 메시지를 품고 있는 간단한 데이터 구조나 메시지들이 나열된 배열과 같은 구조도 사용할 수 있다.

단방향 메시지 송수신 방식의 토픽과 양방향 메시지 요청/응답 방식의 서비스를 이용한다.

 

6. 토픽

토픽(topic)은 "이야깃거리"이다. 퍼블리셔(publisher) 노드가 하나의 이야깃거리에 대해서 토픽으로 마스터에 등록한 후, 이야깃거리에 대한 이야기를 메시지 형태로 퍼블리시한다.

이 이야깃거리를 수신받기를 원하는 서브스크라이버 노드는 마스터에 등록된 토픽의 이름에 해당하는 퍼블리셔 노드의 정보를 받는다. 이 정보를 기반으로 서브스크라이버 노드는 퍼블리셔 노드와 직접 연결하여 메시지를 토픽으로 송수신하게 된다.

 

7. 퍼블리시 및 퍼블리셔

퍼블리시(publish)는 토픽의 내용에 해당하는 메시지 형태의 데이터를 송신하는 것을 말한다. 퍼블리셔(publisher) 노드는 퍼블리시를 수행하기 위하여 토픽을 포함한 자신의 정보들을 마스터에 등록하고, 서브스크라이브를 원하는 서브스크라이버 노드에 메시지를 보낸다. 퍼블리셔는 이를 실행하는 개체로써 노드에서 선언한다. 퍼블리셔는 하나의 노드에서 복수로 선언할 수 있다.

 

8. 서브스크라이버 및 서브스크라이버

서브스크라이브(subscribe)는 토픽의 내용에 해당하는 메시지 형태의 데이터를 수신하는 것을 말한다. 서브스크라이버(subscriber) 노드는 서브스크라이브를 수행하기 위하여 토픽을 포함한 자신의 정보들을 마스터에 등록하고, 구독하고자 하는 토픽을 퍼블리시하는 퍼블리셔 노드의 정보를 마스터로부터 받는다. 이 정보를 기반으로 서브스크라이버 노드는 퍼블리셔 노드와 직접 접속하여 메시지를 받는다. 서브스크라이버는 이를 실행하는 개체로서 노드에서 선언한다. 서브스크라이버는 하나의 노드에서 복수로 선언할 수 있다.

 

퍼블리시와 서브스크라이브 개념의 토픽 통신 방식은 비동기 방식이라 필요에 따라서 주어진 데이터를 전송하고 받기에 매우 훌륭한 방법이다. 또한 한 번의 접속으로 지속적인 메시지를 송수신하기 때문에 지속해서 메시지를 발송해야 하는 센서 데이터에 적합하여 많이 사용된다. 하지만 때에 따라서는 요청과 응답이 함께 사용되는 동기 방식의 메시지 교환 방식도 필요하다. 이에 따라, ROS에서는 서비스(service)라는 이름으로 메시지 동기 방식을 제공한다. 서비스는 요청이 있을 때 응답하는 서비스 서버와 요청하고 응답받는 서비스 클라이언트로 나누니다. 서비스는 토픽과는 달리 일회성 메시지 통신이다. 서비스의 요청과 응답이 완료되면 연결된 두 노드의 접속은 끊긴다.

 

9. 서비스

서비스(service) 메시지 통신은 특정 목적의 작업에 해당되는 서비스를 요청하는 서비스 클라이언트와 서비스 응답을 담당하는 서비스 서버 간의 동기적 양방향 서비스 메시지 통신을 말한다.

 

10. 서비스 서버

서비스 서버(service server)는 요청을 입력으로 받고, 응답을 출력으로 하는 서비스 메시지 통신의 서버 역할을 말한다. 요청과 응답은 모두 메시지로 되어 있으며, 서비스 요청을 받으면 지정된 서비스를 수행한 다음에 그 결과를 서비스 클라이언트에 전달한다. 서비스 서버는 정해진 명령을 받아 수행하는 노드에 사용된다.

 

11. 파라미터

ROS에서의 파라미터(parameter)는 노드에서 사용되는 파라미터를 말한다. 흔히 윈도우 프로그램에서 *ini 설정 파일과 같다고 생각하면 된다. 파라미터는 디폴트(default)로 설정값들이 지정되어 있고, 필요에 따라 외부에서 읽거나 쓸 수 있다. 특히 외부에서 쓰기 기능을 이용하여 상황에 따라 설정값을 실시간으로 바꿀수 있기 때문에 매우 유용하다. 예를 들어 외부 장치와 연결되는 PC의 USB 포트나 카메라 캘리브레이션 값, 모터 속도나 명령어들의 최댓값과 최솟값 등의 설정을 지정할 수 있다.

 

12. 파라미터 서버

파라미터 서버(parameter server)는 패키지에서 파라미터를 사용할 때, 각 파라미터를 등록하는 서버를 말한다. 파라미터 서버는 마스터의 한 기능이기도 하다.

 

참고자료:

ROS 로봇 프로그래밍(표윤석)

'ROS' 카테고리의 다른 글

7. ROS 노드 이해하기  (0) 2020.01.24
6. ROS 용어 정리2  (0) 2020.01.24
4. ROS 패키지 생성  (1) 2020.01.10
3. ROS 파일시스템  (0) 2020.01.09
2. ROS 작업공간 만들기  (0) 2020.01.09

우리가 만든 작업 공간 내의 구조에 대해서 간단히 보면 기본적으로 catkin_ws라는 작업공간 내에 src에 CMakeList.txt와 우리가 만든 패키지 디렉터리가 존재할 것이며 그 패키지 내부에는 또한 CMakeList.txt와 package.xml을 기본적으로 가진다.

CMakeList.txt는 cmake 및 catkin_make를 하기 위해 참조하는 텍스트 파일이며 package.xml은 그 패키지에 대한 정보가 담긴다.

 

이제, 패키지를 생성해보자.

1. 우선, 작업공간 내의 src 디렉터리 안으로 들어간다.

 

cd ~/catkin_ws/src

 

2. catkin_create_pkg를 이용해 std_msgs, roscpp, rospy를 의존시키는 beginner_tutorials라는 패키지를 만든다.

 

catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

(catkin_create_pkg <패키지명> [의존 1] [의존 2] [의존 3])

 

3. 이제 패키지를 빌드해보자(기본적으로 catkin에서는 각각의 패키지가 아닌 workspace에서 빌드하는 것이 권장됨)

 

cd ~/catkin_ws

catkin_make

 

4. make를 하고 나면 /opt/ros/melodic에서 볼 수 있는 것과 같이 devel 하위 디렉터리에 유사한 구조가 생성된다.

작업 공간을 ROS 환경에 추가하려면 devel 내의 setup.bash 파일을 source 시켜주어야 한다.

 

source ~/catkin_ws/devel/setup.bash

 

5. 패키지를 만들 때 의존시켰던 패키지들을 rospack 명령어를 통해 확인 가능하다.

 

rospack depends1 beginner_tutorials

(depends1이 아닌 depends 옵션 사용 시 종속된 패키지들에 하위 종속된 것들까지 보여준다.)

 

6. 처음 작업공간을 만들 때 catkin_make를 해봤듯이 패키지를 만들었으니 다시 빌드를 해주어야 한다.

(단 앞서 말했듯이 저장소 단위로 make를 해주는게 좋다)

 

cd ~/catkin_ws

catkin_make

 

 

7. 마지막으로 패키지의 package.xml을 수정해보자.

package.xml에는 패키지 이름, 설명, 관리자, 라이선스 등의 정보를 적어 줄 수 있고

또한 의존성 태그를 통해 종속이 필요한 패키지들을 필요에 맞게 수정할 수 있다.

 

참고자료:

http://wiki.ros.org/ROS/Tutorials/CreatingPackage

 

 

'ROS' 카테고리의 다른 글

6. ROS 용어 정리2  (0) 2020.01.24
5. ROS 용어 정리  (0) 2020.01.13
3. ROS 파일시스템  (0) 2020.01.09
2. ROS 작업공간 만들기  (0) 2020.01.09
1. ROS melodic 설치  (0) 2020.01.08

1. ROS 튜토리얼을 따라가기 위해 ros-tutorials 설치

 

sudo apt-get install ros-melodic-ros-tutorials

 

2. 패키지에 대한 정보를 얻기 위한 명령어 rospack, find 옵션은 패키지 경로를 반환해준다.

 

rospack find <패키지 이름>

 

rospack find roscpp

 

3. roscd 명령어는 해당 경로로 들어가기 위한 명령어이다.(linux의 cd)

 

roscd <경로>

 

roscd roscpp

 

pwd(현재 경로 확인)

4. rosls 명령어는 경로(패키지) 내의 목록을 확인하기 위한 명령어 (linux의 ls)

 

rosls roscpp_tutorials

 

리눅스 사용자들은 익숙한 명령어(cd, ls)이지만 그렇지 않다면 해당 명령어들을 쳐보면서(경로를 확인해보고 들어가 보고..) 익숙해지는 것이 좋겠다.

 

참고사이트:

http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem

'ROS' 카테고리의 다른 글

6. ROS 용어 정리2  (0) 2020.01.24
5. ROS 용어 정리  (0) 2020.01.13
4. ROS 패키지 생성  (1) 2020.01.10
2. ROS 작업공간 만들기  (0) 2020.01.09
1. ROS melodic 설치  (0) 2020.01.08

1. ROS 환경변수 설정을 확인하기 위한 명령어

 

printenv | grep ROS

 

2. melodic을 사용하기 위한 명령어(기존에 ~./bashrc에 넣어놨기 때문에 따로 명령어를 치지 않아도 됨,

하나의 PC에서 여러 ROS 배포판을 사용하려면 해당 명령어를 콘솔 창에서 쳐줘야 함) 

 

source /opt/ros/melodic/setup.bash

 

3. 작업 공간(디렉터리) 만들고 빌드 실행

 

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws

catkin_make

 

 

4. make를 하고 나면 devel, build 디렉터리가 생기는데 
devel 디렉터리 안에 setup.bash 파일이 생기며
해당 파일을 source 해주면 작업 공간이 우리가 만든 작업공간으로 오버레이 됨.

source  ~/catkin_ws/devel/setup.bash

 

 

참고사이트:

http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment

'ROS' 카테고리의 다른 글

6. ROS 용어 정리2  (0) 2020.01.24
5. ROS 용어 정리  (0) 2020.01.13
4. ROS 패키지 생성  (1) 2020.01.10
3. ROS 파일시스템  (0) 2020.01.09
1. ROS melodic 설치  (0) 2020.01.08

ROS를 공부하기 위해  Ubuntu 18.04 버전에 호환되며 가장 최근(2018년 5월)에 발행된 Melodic Morenia 버전을 설치하였다.

(실제로 공부하다 보니 인터넷에는 Kinetic에 대한 정보가 가장 많았다..)

 

1. packages.ros.org에 있는 소프트웨어를 컴퓨터에서 허용할 수 있도록 명령어를 입력한다. 

 

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

 

2. melodic 설치를 위해 키 설정을 해준다.

 

sudo apt-key adv --keyserver 'hkp : //keyserver.ubuntu.com : 80'--recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 

3.  데비안 패키지를 업데이트 한 후, 설치한다.

 

sudo apt update

 

sudo apt install ros-melodic-desktop-full

(full 로 설치할 경우 많은 패키지를 포함한다.)

 

개별 패키지를 설치하고 싶은경우

sudo apt install ros-melodic-<패키지이름> 으로 설치한다.

 

4. ROS를 사용하기 전에 rosdep를 초기화 해야한다. rosdep를 사용하면 컴파일 하려는 소스에 종속된 시스템을 쉽게 설치 가능하다.

 

sudo rosdep init

 

rosdep update

 

5. 새로운 쉘이 실행될 때마다 ROS 환경변수가 bash에 자동으로 추가되는 것이 편리하기 때문에 ~/.bashrc 파일을 수정한다.

 

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc (혹은 ~/.bashrc 파일에 직접 ""안의 문장을 집어넣어도 된다.)

 

source ~/.bashrc

 

6. 패키지 컴파일을 위해 필요한 것들을 추가로 설치해준다.

 

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

 

 

참고사이트:

http://wiki.ros.org/melodic/Installation/Ubuntu

'ROS' 카테고리의 다른 글

6. ROS 용어 정리2  (0) 2020.01.24
5. ROS 용어 정리  (0) 2020.01.13
4. ROS 패키지 생성  (1) 2020.01.10
3. ROS 파일시스템  (0) 2020.01.09
2. ROS 작업공간 만들기  (0) 2020.01.09

+ Recent posts