华拓科技网
您的当前位置:首页ROS 静态坐标转换

ROS 静态坐标转换

来源:华拓科技网

在 ROS 中,坐标变换(TF:Transform)它允许机器人系统中的各个部分使用不同的坐标系,并通过转换关系进行通信和协作。

静态坐标变换是指两个坐标系之间的相对位置关系是固定的,不会随时间改变。

例如,一个机器人的基座相对于车轮的位置关系通常被认为是静态的。在ROS中,静态坐标变换由tf2_ros::StaticTransformBroadcaster发布,并且一旦发布就不再更新。

如现有一机器人模型,其构成包含主体与雷达,各对应一坐标系,已知雷达原点相对于主体原点位移关系如下: x 0.2  y 0.0  z 0.5。当前雷达检测到一障碍物,在雷达坐标系中障碍物的坐标为 (2.0 3.0 5.0),则障碍物相对于主体的坐标是

实现分析:

坐标系相对关系,可以通过发布方发布

订阅方,订阅到发布的坐标系相对关系,再传入坐标点信息,然后借助于 tf 实现坐标变换,并将结果输出

实现流程:

1、创建项目功能包依赖于 tf2、tf2_ros、tf2_geometry_msgs、roscpp rospy std_msgs geometry_msgs

2、当坐标系之间的相对位置固定时,那么所需参数也是固定的: 父系坐标名称、子级坐标系名称、x偏移量、y偏移量、z偏移量、x 翻滚角度、y俯仰角度、z偏航角度,实现逻辑相同,参数不同, ROS 系统就已经封装好了专门的节点,使用方式如下:

rosrun tf2_ros static_transform_publisher x偏移量 y偏移量 z偏移量 z偏航角度 y俯仰角度 x翻滚角度 父级坐标系 子级坐标系

如:rosrun tf2_ros static_transform_publisher 0.2 0 0.5 0 0 0 /baselink /laser

3、可以借助于rviz显示坐标系关系,具体操作:

 rviz 中设置Fixed Frame 为 base_link;

在弹出的窗口中选择 TF 组件,即可显示坐标关系。

因篇幅问题不能全部显示,请点此查看更多更全内容