#!/usr/bin/env python
import rospy #库函数
from tf_conversions import transformations #库函数
from math import pi #库函数
import tf #库函数
class Robot:
def __init__(self):
self.tf_listener = tf.TransformListener()
#创建了监听器,它通过线路接收tf转换,并将其缓冲10s。若用C++写,需设置等待10s缓冲。
try:
self.tf_listener.waitForTransform('/map', '/base_link', rospy.Time(), rospy.Duration(1.0))
#猜测:等待Duration=1s,判断map是否转换为base_link
except (tf.Exception, tf.ConnectivityException, tf.LookupException):
return
#try ... except ... 进行异常处理,若 try... 出现异常,则将错误直接输出打印,而不是以报错的形式显示。
def get_pos(self):
try:
(trans, rot) = self.tf_listener.lookupTransform('/map', '/base_link', rospy.Time(0))
#rospy_Time(0)指最近时刻存储的数据
#得到从 '/map' 到 '/base_link' 的变换,
ROS机器人底盘 -获取机器人位置坐标,python源码分析
最新推荐文章于 2024-04-14 10:26:45 发布