forked from jsk-enshu/robot-programming
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2_kadai1-1.py
executable file
·26 lines (22 loc) · 1.07 KB
/
2_kadai1-1.py
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
##「イベント・ドリブン型」のプログラムである
##subしたときにcallback関数を読んでpubする
import rospy
from opencv_apps.msg import RotatedRectStamped #Opencvの画像認識の型のインポート
from geometry_msgs.msg import Twist #ツイストの型のインポート
def callback(msg): #コールバック関数の登録
cmd_vel = Twist() #cmd_velの型指定
if msg.rect.center.x < 320:
cmd_vel.angular.z = 0.2 #右回転
else:
cmd_vel.angular.z = -0.2 #左回転
rospy.loginfo("\t\t\tpublish {}".format(cmd_vel.angular.z)) #rosのlogに指定値を残す
pub.publish(cmd_vel) #パブリッシュする
if __name__ == '__main__': #メイン文
try:
rospy.init_node('client')
rospy.Subscriber('/camshift/track_box', RotatedRectStamped, callback)
pub = rospy.Publisher('/cmd_vel', Twist, queue_size=1) #geometry.Twistの型
rospy.spin() #待機状態に戻る
except rospy.ROSInterruptException: pass #エラーハンドリング