Ros 공부 1일차 - roslaunch 생성(turtlesim), package생성

ROS package

ROS package는 코드와 문서 등등 다양한 것들이 조합되어있는 패키지로 구성되어있다. 우리는 우리만의 워크스페이스에 패키지를 하나 생성해서 우리만의 roslaunch파일을 생성해볼 예정이다.

$ cd ~/RC_ws/src
$ catkin_create_pkg turtle rospy roscpp
$ cd ..
$ $ catkin_make

여기까지 하면 우리는 turtle이라는 cpp와 python의 의존성을 갖는 turtle이라는 패키지를 만들었다.

roslaunch생성

이제 우리는 turtle이라는 패키지안에 launch디렉토리를 만들것이다. 그 후 launch파일을 생성해보겠다.

$ cd ~/RC_ws/src/turtle
$ mkdir launch
$ cd launch/
$ gedit remapping.launch

추가로 remapping.launch파일안에 밑과 같은 코드를 넣으면 된다.

<launch>

  <group ns="right">
    <node pkg="turtlesim" name="turtlesim" type="turtlesim_node"/>
    <node pkg="turtlesim" name="draw_square" type="draw_square"/>
  </group>

  <node pkg="turtlesim" name="turtlesim_node1" type="turtlesim_node"/>
  <node pkg="turtlesim" name="draw_square1" type="draw_square"/>
  <node pkg="rqt_graph" name="rqt_graph" type="rqt_graph"/>

  <node pkg="turtlesim" name="draw_square" type="draw_square">  
    <remap from="turtle1/pose" to="turtle/pose2"/>
    <remap from="turtle1/cmd_vel" to="turtle/cmd_vel2"/>
  </node>

  <node pkg="turtlesim" name="turtlesim" type="turtlesim_node">
    <remap from="turtle1/cmd_vel" to="turtle/cmd_vel2"/>
    <remap from="turtle1/pose" to="turtle/pose2"/>
  </node>
</launch>
  1. group으로 묶어준 부분이 상위 namespace로 remapping 해준부분이다.

  2. group 다음 세줄은 node의 이름만 바꿔준 부분이다.

  3. remap을 사용해서 topic의 이름을 바꿔 보았다.

ps) 제대로 이해하고 사용해서 그런지 매우 편하게 와닿았다. roslaunch가 확실히 편하다.

$ cd ~/RC_ws
$ catkin_make
$ roslaunch turtle remapping.launch

git clone https://github.com/jeong-han-kim/turtle

직접 복붙하기도 귀찬은 분들은 catkin_ws/src안에 git clone하시길 바란다.