项目
学习
总结
ROS第五章
主要是学习了坐标变换,实际用途还是好理解的,比方说地面基地控制无人机追鸟。坐标变换主要是用tf这个包实现的。可以实现静态坐标变换,动态坐标变换和多坐标变换。
静态和动态变换的关键函数:ps_out = buffer.transform(ps, "base_link");
动态变换里面主要是坐标系在变化,其实点没有变,所以在接收到乌龟位置消息的同时就把这个坐标系变换发出去给父坐标系。
多坐标系变换关键:
tf2_ros::Buffer buffer;
tf2_ros::TransformListener listener(buffer);
geometry_msgs::TransformStamped son1Toson2 = buffer.lookupTransform("son2", "son1", ros::Time(0)); // (目标参考系, 原参考系)代表找当前最近的两个时间
ps_out = buffer.transform(ps, "son2");
在实现乌龟跟随的案例中,三只乌龟分别通过tf发布了自己相对于world坐标系的关系,然后通过buffer来解析turtle1与turtle2,turtle1与turtle3坐标系的关系。只是在这个案例中,坐标系的偏移实际上就是turtle2和turtle3想要去的位置(即turtle1坐标系的0,0,0处),如果后续加上雷达,在turtle1中实时传输位置,turtle2和turtle3来追踪这个目标怎么做?还是必须要这个目标上也有传感器,直接转化为坐标系之间的关系?
标签:ps,2024.10,turtle1,buffer,codeforces,变换,坐标,ROS,坐标系 From: https://www.cnblogs.com/lautoh/p/18447248