2024.10.2 坐标变化 + 背包问题剩下的题
项目
学习
ros坐标变化
总结
有关ros坐标变换
坐标变换的背景:考虑这么一个场景,地面基地在用无人机跟拍一只鸟,那么现在无人机和基地分别构成了两个坐标系,那么基地想要知道鸟相对于基地的坐标要怎么做?
ROS中引入了 tf 这个包来做变换。
其中平移变换用tfs.transform.translation
部分的内容:
tfs.header.stamp = ros::Time::now();
tfs.header.frame_id = "base_link"; // 被参考的那个
tfs.child_frame_id = "laser";
tfs.transform.translation.x = 0.2;
tfs.transform.translation.y = 0.0;
tfs.transform.translation.z = 0.5;
而旋转变换用的是tfs.transform.rotation
部分来描述:
tf2::Quaternion qtn; // 可以自动将欧拉角(仰角等)转化为四元数
qtn.setRPY(0, 0, 0); // 欧拉角单位是弧度
tfs.transform.rotation.x = qtn.getX();
tfs.transform.rotation.y = qtn.getY();
tfs.transform.rotation.z = qtn.getZ();
tfs.transform.rotation.w = qtn.getW();
这里会将欧拉角转换为四元数,是为了避免一个叫做万向节死锁的问题,也就是欧拉角有时候会出现转向复杂无法表示的情况,但是四元数避免了这个问题。
tf中传递坐标消息用的是自己封装的geometry_msg消息,不是普通的msg类型的消息,它还将话题封装为/tf,只需要传入父坐标系,子坐标系,两个坐标系的变换关系(这是可以实时得到的)以及某个点相对于其中一个参考系得坐标就可以得到这个点相对于另一个参考系的坐标。
分类:
2024每日计划
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具