[ROS] 프로그래밍 기초 2

happy_quokka·2023년 10월 16일
0

ROS

목록 보기
13/25

roslaunch 실습

  1. my_pkg1으로 이동
$ cd xycar_ws/src/my_pkg1

  1. launch 디렉토리 만들고 디렉토리로 이동
$ mkdir launch
$ cd launch/

  1. launch 파일 작성 -> 저장 -> 나가기
$ gedit pub-sub.launch

<launch>
    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"/>
    <node pkg="my_pkg1" type="pub.py" name="pub_node"/>
    <node pkg="my_pkg1" type="sub.py" name="sub_node" output="screen"/>
</launch>

  1. roslaunch 실행
$ roslaunch my_pkg1 pub-sub.launch


  1. 확인
$ rqt_graph

launch에서 tag(param 활용)

  1. ~/xycar_ws/src/my_pkg1/launch 경로에서 pub-sub.launch 복사해서 pub-sub-param.launch 파일 만들기
$ cp pub-sub.launch pub-sub-param.launch

  1. pub-sub-param.launch 파일 수정
$ gedit pub-sub-param.launch
<launch>
    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"/>
    <node pkg="my_pkg1" type="pub_param.py" name="node_param">
        <param name="circle_size" value="2"/>
    </node>
    <node pkg="my_pkg1" type="sub.py" name="sub_node" output="screen"/>
</launch>

  1. src 경로로 이동 후 pub.py 복사하여 pub_param.py 파일 만들기
$ cd ..
$ cd src/
$ cp pub.py pub_param.py

  1. pub_param.py 파일 수정
$ gedit pub_param.py
#!/usr/bin/env python

import rospy
from geometry_msgs.msg import Twist

rospy.init_node('my_node', anonymous=True)
pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)

msg = Twist()

linear_x = rospy.get_param('~circle_size')
msg.linear.x = linear_x

msg.linear.y = 0.0
msg.linear.z = 0.0
msg.angular.x = 0.0
msg.angular.y = 0.0
msg.angular.z = 1.8

rate = rospy.Rate(1)

while not rospy.is_shutdown():
    pub.publish(msg)
    rate.sleep()

  1. roslaunch 실행
$ roslaunch my_pkg1 pub-sub-param.launch

  1. pub-sub-param.launch의 circle_size 값 변환 후 실행
  • 4로 값 변환
  • 실행 (원 크기가 커진 것이 보임)
  1. 확인
$ rqt_graph

0개의 댓글