xycar_ws의 src에 my_motor 패키지 만들기
#!/usr/bin/env python
import rospy
import time
from xycar_motor.msg import xycar_motor
rospy.init_node("auto_driver")
pub = rospy.Publisher("xycar_motor", xycar_motor, queue_size=1)
motor_controll = xycar_motor()
speed = 3
def motor_pub(angle, speed):
global pub
global motor_controll
motor_controll.angle = angle
motor_controll.speed = speed
pub.publish(motor_controll)
while not rospy.is_shutdown():
angle = -50 #turn left
for i in range(4):
motor_pub(angle, speed)
time.sleep(0.1)
angle = 0 #straight
for i in range(3):
motor_pub(angle, speed)
time.sleep(0.1)
angle = 50 #turn right
for i in range(4):
motor_pub(angle, speed)
time.sleep(0.1)
angle = 0 #straight
for i in range(3):
motor_pub(angle, speed)
time.sleep(0.1)
#!/usr/bin/env python
import rospy
from xycar_motor.msg import xycar_motor
def callback(msg):
rospy.loginfo("angle : %d ", msg.angle)
rospy.init_node("receiver")
rospy.Subscriber("xycar_motor", xycar_motor, callback)
rospy.spin()
$ roscore
$ rosrun my_motor 8_drive.py
$ rosrun my_motor receiver_8_drive.py
$ rostopic info /xycar_motor
$ rosmsg show xycar_motor/xycar_motor
$ rostopic echo xycar_motor