這裏有一個簡單的python節點(基於this)所做的正是你的要求爲:
#!/usr/bin/env python
import rospy
from nav_msgs.msg import Odometry
def callback(data):
rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.header)
rospy.loginfo(rospy.get_caller_id() + "child_frame_id %s", data.child_frame_id)
rospy.loginfo(rospy.get_caller_id() + "pose %s", data.pose)
rospy.loginfo(rospy.get_caller_id() + "twist %s", data.twist)
def listener():
# In ROS, nodes are uniquely named. If two nodes with the same
# node are launched, the previous one is kicked off. The
# anonymous=True flag means that rospy will choose a unique
# name for our 'listener' node so that multiple listeners can
# run simultaneously.
rospy.init_node('listener', anonymous=True)
rospy.Subscriber("odom_topic", Odometry, callback)
# spin() simply keeps python from exiting until this node is stopped
rospy.spin()
if __name__ == '__main__':
listener()
沒有,我想讓這個過程自動化。如在,如果我不知道「child_frame_id」,姿勢等是子字段,我該怎麼辦 –