恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

2026.8.07-初入ros+slam+opencv第十二天-学习tf广播器

  • 首页
  • 资讯中心
  • /
  • 2026.8.07-初入ros+slam+opencv第十二天-学习tf广播器

相关资讯

祈盟平台如何选择联运产品:核心流程、执行重点与常见问题 2026/8/10 10:06:03
3步将旧电脑变身高性能游戏串流服务器:Sunshine终极指南 2026/8/10 10:06:03
3分钟掌握ncmdumpGUI:Windows图形界面一键解密网易云NCM音频文件 2026/8/10 10:01:03

最新资讯

【AIGC】副歌生成器-->完整生命线
Python可变与不可变对象详解及应用场景
如何快速下载网页视频:5分钟掌握VideoDownloadHelper免费插件终极指南
2026 AI大模型应用开发实战训练营
rk3588 适配 mipi 屏
标注员标注徐州话时声调调值标的完全不一样,数据质量没法保证

今日推荐

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南
告别语言障碍:KISS Translator 双语翻译插件终极指南
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

2026.8.07-初入ros+slam+opencv第十二天-学习tf广播器

发布时间:2026/8/10 10:06:03
2026.8.07-初入ros+slam+opencv第十二天-学习tf广播器 一、理论理解1.TF维护机器人各个坐标系之间位姿变换关系举例base_link 机器人底盘laser_link 激光雷达雷达装在底盘上方需要告诉 ROS 雷达相对于底盘在哪。2.TF广播器TransformBroadcaster:向外发布「子坐标系相对父坐标系」的位姿平移 旋转。传感器、底盘都要广播自己的坐标系。3.TF 监听器 TransformListener查询两个坐标系之间的变换把数据从一个坐标系转换到另一个坐标系。导航算法、点云处理都靠监听。4.父坐标系 / 子坐标系描述子坐标系相对于父坐标系的位置姿态5.旋转不用手写矩阵使用tf::Quaternion生成四元数。6.ros::Time(0)获取缓存中最新的 TF 数据新手固定写这个。7.监听必须加try‑catch异常捕获TF 找不到变换直接会让程序崩溃。二、代码实现// ROS核心头文件提供节点初始化、句柄、时间、Rate、spinOnce等全部基础功能#includeros/ros.h// tf旧版广播器头文件tf::TransformBroadcaster、tf::Transform、tf::Quaternion都在这里#includetf/transform_broadcaster.h// 程序入口 main函数// argc命令行参数个数argv命令行参数数组ros::init会从这里提取ROS相关参数intmain(intargc,char**argv){// ①ROS节点初始化// 参数命令行参数节点名字tf_broadcaster_noderos::init(argc,argv,tf_broadcaster_node);// ②创建节点句柄nh// 句柄相当于你程序和ROS系统沟通的手柄发布、订阅、参数、tf都依赖它ros::NodeHandle nh;// ③设置循环频率对象 rate10Hz代表每秒循环执行10次单次周期0.1sros::Raterate(10);// ④创建TF广播器对象 br// TransformBroadcaster专门用来向外发布坐标变换消息底层会自动订阅/tf话题tf::TransformBroadcaster br;// ⑤ROS主循环// ros::ok() 判断节点是否正常运行按下CtrlCros::ok()返回false退出循环while(ros::ok()){// transform存储一组坐标变换包含两部分平移(origin) 旋转(rotation)tf::Transform transform;// setOrigin() 设置平移部分// tf::Vector3(x,y,z) 三维向量单位米// 含义子坐标系laser_link在父坐标系base_link下坐标(0, 0, 0.2)底盘正上方0.2米transform.setOrigin(tf::Vector3(0.0,0.0,0.2));// tf::Quaternion 四元数ROS用来存储旋转姿态避免欧拉角万向锁缺陷tf::Quaternion q;// setRPY(roll, pitch, yaw) 单位弧度不是角度// roll绕X轴旋转pitch绕Y轴旋转yaw绕Z轴旋转机器人转向// 全部填0代表没有任何旋转laser_link和base_link朝向完全一致q.setRPY(0,0,0);// 将四元数旋转赋值给transform变换对象transform.setRotation(q);// 核心广播TF变换 sendTransform// StampedTransform带时间戳的变换TF的每条变换必须绑定时间br.sendTransform(tf::StampedTransform(transform,// 平移旋转的数据ros::Time::now(),// 时间戳当前系统时间标记这个变换生效的时刻base_link,// 父坐标系参考基准laser_link));// 子坐标系子相对于父的位置姿态// 顺序千万不能写反sendTransform(变换,时间,父,子)// ros::spinOnce()处理ROS消息回调// 当前程序只发TF没有订阅回调逻辑上可以不写属于ROS代码规范建议保留ros::spinOnce();// rate.sleep()休眠保证整体循环维持10Hz。// 会扣除掉上面代码执行消耗的时间保证周期稳定0.1srate.sleep();}// main函数返回程序结束return0;}

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号