ROS之多坐标变换

概念描述

现有坐标系统,父级坐标系统 world,下有两子级系统 son1,son2,son1 相对于 world,以及 son2 相对于 world 的关系是已知的,求 son1原点在 son2中的坐标,又已知在 son1中一点的坐标,要求求出该点在 son2 中的坐标

实现分析:

  • 首先,需要发布 son1 相对于 world,以及 son2 相对于 world 的坐标消息
  • 然后,需要订阅坐标发布消息,并取出订阅的消息,借助于 tf2 实现 son1 和 son2 的转换
  • 最后,还要实现坐标点的转换

实现流程:C++ 与 Python 实现流程一致

  • 新建功能包,添加依赖

  • 创建坐标相对关系发布方(需要发布两个坐标相对关系)

  • 创建坐标相对关系订阅方

  • 执行

C++实现

1.创建功能包

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

2.发布方

为了方便,使用静态坐标变换发布

<launch>
    <

猜你喜欢

转载自blog.csdn.net/weixin_42990464/article/details/128573681