当前位置: 首页 > article >正文

《ROS2 机器人开发 从入门道实践》 鱼香ROS2——第5章内容

第5章 ROS常用开发工具

5.1 坐标变换工具介绍

5.1.1 通过命令行使用TF

1. 新打开一个终端,建立base_link到base_laser的坐标关系

ros2 run tf2_ros static_transform_publisher --x 0.1 --y 0.0 --z 0.2 --roll 0.0 --pitch 0.0 --yaw 0.0 --frame-id base_link --child-frame-id base_laser

2. 新打开一个终端,建立base_laser到wall_point的坐标关系

ros2 run tf2_ros static_transform_publisher --x 0.1 --y 0.0 --z 0.2 --roll 0.0 --pitch 0.0 --yaw 0.0 --frame-id base_laser --child-frame-id wall_point

3. 新打开一个终端,查询base_link到wall_point的坐标关系,会一直运行这个查询程序

ros2 run tf2_ros tf2_echo base_link wall_point

4. 安装3D旋转可视化

sudo apt install ros-humble-mrpt2 -y 无法定位软件包Unable to locate package ros-humble-mrpt2

使用 sudo apt install mrpt-apps 可以安装成功

5. 打开3d旋转可视化窗口

3d-rotation-converter

6. 查看TF树,导出至PDF文件中,需要同时运行1和2步的两个终端指令

ros2 run tf2_tools view_frames

5.1.2 对TF原理的简单探究

1. ros2 topic list查看话题

/parameter_events
/rosout
/tf_static

2. 查看话题tf_static,ros2 topic info /tf_static

Type: tf2_msgs/msg/TFMessage
Publisher count: 2
Subscription count: 0

3. 查看消息接口的定义,ros2 interface show tf2_msgs/msg/TFMessage

geometry_msgs/TransformStamped[] transforms
    #
    #
    std_msgs/Header header 成员变量
        builtin_interfaces/Time stamp 时间戳
            int32 sec
            uint32 nanosec
        string frame_id 父坐标系名字
    string child_frame_id 子坐标系名字
    Transform transform
        Vector3 translation
            float64 x
            float64 y
            float64 z
        Quaternion rotation
            float64 x 0
            float64 y 0
            float64 z 0
            float64 w 1

4. 订阅话题,ros2 topic echo /tf_static,显示话题内容

tf_static是静态坐标发布

tf是动态坐标发布

5.2 Python中的手眼坐标变换


http://www.kler.cn/a/468325.html

相关文章:

  • 《数据结构》期末考试测试题【中】
  • AWS DMS基础知识
  • 2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)
  • GPT系统重大升级,开创国内先河:o1支持图片识别功能正式上线
  • reactor中的并发
  • asp.net core mvc的 ViewBag 和 ViewData 和 Module
  • 弹性云服务器ECS“规格”
  • Vue3中使用 Vue Flow 流程图方法
  • [2个简单方法]如何将iPhone中的联系人保存到iCloud?
  • 联邦学习的 AI 大模型微调中,加性、选择性、重参数化和混合微调
  • Android设备使用AOA协议进行主机与配件模式通信
  • 深入理解连接池:从数据库到HTTP的优化之道
  • maven之插件调试
  • C++ 设计模式:迭代器模式(Iterator Pattern)
  • TCP Analysis Flags 之 TCP Retransmission
  • 动态规划六——两个数组的dp问题
  • 设计模式之桥接设计模式
  • H3C MPLS跨域optionC
  • Tableau数据可视化与仪表盘搭建-数据连接
  • 命令模式——C++实现
  • ASP.NET Core 下载文件
  • 【全栈】SprintBoot+vue3迷你商城(1)
  • http源码分析
  • Visual Studio 2022+Qt6.5.3安装教程+环境配置+创建Qt项目+乱码插件+运行很完美(16岁孩子也能看懂)
  • 计算机的错误计算(二百零一)
  • 计算机网络--路由器问题