(四)ROS坐标变换可视化(示例运行)
来源:互联网 发布:ios http网络协议 编辑:程序博客网 时间:2024/04/17 02:03
ROS中如何查看机器人的坐标变换呢?
使用《Learning ROS for robotic Programming second edition》中的示例
或维基百科http://wiki.ros.org/tf/Tutorials/Introduction%20to%20tf 中的示例
注意使用的是hydro版本的ros。
1.示例运行
1启动turtle_tf包下的启动文件。
roslaunch turtle_tf turtle_tf_demo.launch
可以发现,启动文件turtle_tf_demo.launch如下
<launch> <!-- Turtlesim Node--> <node pkg="turtlesim" type="turtlesim_node" name="sim"/> <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/> <!-- Axes --> <param name="scale_linear" value="2" type="double"/> <param name="scale_angular" value="2" type="double"/> <node name="turtle1_tf_broadcaster" pkg="turtle_tf" type="turtle_tf_broadcaster.py" respawn="false" output="screen" > <param name="turtle" type="string" value="turtle1" /> </node> <node name="turtle2_tf_broadcaster" pkg="turtle_tf" type="turtle_tf_broadcaster.py" respawn="false" output="screen" > <param name="turtle" type="string" value="turtle2" /> </node> <node name="turtle_pointer" pkg="turtle_tf" type="turtle_tf_listener.py" respawn="false" output="screen" > </node></launch>
启动了turtlesim包的turtlesim_node,turtle_teleop_key,turtle1_tf_broadcaster,turtle2_tf_broadcaster,turtle_pointer节点等。ROS中节点具体是什么呢?是编译运行的可执行文件。roscd 到包下没有发现turtlesim_node程序。思考了以下,使用findfind / -name turtlesim_node 结果为/opt/ros/hydro/lib/turtlesim/turtlesim_node ,说明安装在别的文件夹下了。
小乌龟出来了。
2.使用键盘控制
由于在.launch文件中启动了键盘控制节点 <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
所以直接控制箭头可以发现可以跑了。
3.打开rqt_rviz并加载配置文件(或手动配置)
(1)加载配置文件方法
使用如下命令打开rqt_rviz图像化显示工具
rosrun rqt_rviz rqt_rviz
发现Global status错误,说明世界地图没有加载
点击rqt_rviz的file菜单,open config 找到exampe_tf.rviz文件并打开。并在右边切换视角为XYOrbit
如图
或者使用命令行进行加载 rosrun rviz rviz -d rospack find turtle_tf
/rviz/turtle_rviz.rviz
控制箭头移动,可以发现坐标在移动。
(2)手动配置方法
a.Global Options选项中的fixed frame 的下拉选项中选择world
b.点击左边的add,增加TF,,控制键盘可以发现红点在移动。
2.示例解析
1.节点图及各个节点的关系
a)查看节点
首先使用rqt_graph查看节点图
查看启动文件turtle_tf_demo.launch 发现启动的节点和加点图上相对应。启动的节点如下
turtlesim_node,turtle_teleop_key,turtle1_tf_broadcaster,turtle2_tf_broadcaster,turtle_pointer
b)控制运动的整个流程
使用rostopic echo 命令查看主题发布的消息。如查看主题turtle1/pose 发送的消息
rostopic echo turtle1/pose
示例运行的流程是这样的:首先键盘发出turtle1/cmd_vel控制消息给sim节点,turtle1节点根据收到的消息控制乌龟移动,turtle1程序记录当前的坐标,并通过turtle1/pose消息发送当前的位置给turtle1_tf_broadcaster节点,turtle1_tf_broadcaster节点不断的发送/tf消息给turtle_pointer节点。
- (四)ROS坐标变换可视化(示例运行)
- ROS之tf空间坐标变换浅析 (二)
- ROS之tf坐标变换
- OpenGL(四) 左右手坐标系及基本坐标变换
- (二)ROS中控制机器人运动(示例运行)
- ROS专题----tf和tf2坐标变换
- ROS之tf空间坐标变换浅析
- OpenGL 坐标变换 (转)
- 顶点坐标变换(3)
- OpenGL 坐标变换(2)
- 机器人坐标变换(一)
- OpenGL 坐标变换(1)
- ROS学习--(四)创建ROS Package
- ROS Gazebo(四):ROS Control
- ROS教程(四):编译ROS程序包
- ROS学习笔记(四):ROS主题
- ROS(8) tf 坐标框架
- 计算机图形学(四)几何变换_2_矩阵表示_1_矩阵表示和齐次坐标
- 前端面试经典题目合集
- 水仙花数
- 多线程设计模式(一) Single Threaded Execution
- ListView适配器的写法
- 2017.3.25 SJY摆石子 思考记录
- (四)ROS坐标变换可视化(示例运行)
- tensorflow 风格迁移二
- 快速学习javaSE基础1-java概述(了解)
- Splunk 命令学习
- 手把手教你linux下google chrome浏览器root用户无法运行,以及flash插件安装
- 多项式求和
- 抽签
- LabelFlowLayout(流式标签布局)
- org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apac