티스토리 뷰

ROS python 프로그래밍
=토픽 메시지 통신=
Created Date: 2018.03.24
Modified Date: 2018.03.24
revision 1

키워드:ROS, python, 토픽, 메시지
개발 환경:Ubuntu 16.04 + ROS kinetic + laptop


파이썬을 이용한 ROS 프로그래밍 한글자료가 잘 없길래 간단하게 작성했습니다. 개념적인 설명이나 C++을 이용한 프로그래밍은 표윤석 님의 강의에 아주 잘 설명되어 있습니다.

파이썬으로 개발할 때는 CMakeList 수정이나 catkin_make를 하지 않아도 잘 작동되어 좀 쉬운 감이 있네요. 그래서 터틀봇3 오토레이스 대회에 나갔을 때 파이썬을 이용했습니다.



1. 패키지 만들기


cd ~/catkin_ws/src

catkin_create_pkg my_first_python std_msgs rospy




2. 메시지 파일 생성

roscd my_first_python

mkdir msg

echo "int64 num" > msg/Num.msg


3. Package.xml 수정

gedit package.xml



<build_depend>message_generation</build_depend>

<exec_depend>message_runtime</exec_depend>



pacakge.xml 파일 안의 주석만 해제해 주시면 됩니다



4. 퍼블리셔 생성

mkdir scripts

cd scripts

gedit talker.py



#!/usr/bin/env python

import rospy
from std_msgs.msg import String

def talker():
      pub = rospy.Publisher('chatter',String,queue_size=10)
      rospy.init_node('talker', anonymous = True)
      rate = rospy.Rate(10) #10hz
      while not rospy.is_shutdown():
            hello_str = "hello world %s" % rospy.get_time()
            rospy.loginfo(hello_str)
            pub.publish(hello_str)
            rate.sleep()

if __name__=='__main__':
      try:
            talker()
     except rospy.ROSInterruptException:
            pass


chmod +x talker.py


4. 서브스크라이버 생성

gedit listner.py



#!/usr/bin/env python

import rospy
from std_msgs.msg import String

def callback(data):
      rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)

def listener():
      rospy.init_node('listener',anonymous=True)

      rospy.Subscriber("chatter", String, callback)

      rospy.spin()

if __name__=='__main__':
      listener()


chmod +x listener.py



4. 실행

roscore

rosrun my_first_python talker.py

rosrun my_first_python listener.py






[참고자료]




End.

written by Starshirts


이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함