目录
1.Launch启动文件
Launch启动文件:通过XML文件实现多节点的配置和启动(可自启动ROS Master,不用再打开终端启用roscore)
这是一个简单的launch文件(启动节点):
<launch>
<node pkg="learning_communiaction" type="perosn_subscriber" name="talker" />
<node pkg="learning_communiaction" type="perosn_publisher" name="talker" />
</launch>
<launch>标签
launch文件中的根元素用<launch>标签定义
<node> 标签
1.pkg:节点所在功能包的名称
2.type:节点可执行文件的名称
3.name:节点运行时的名称(可以替换代码中的节点名称)
4.还有output(每个节点的日志在终端中是否输出)、respawn(节点运行失败,自动重启)、required(在launch中哪个节点是必须要启动的)、ns(给节点设置命名空间)、args(跟参数有关系)
<param>/<rosparam>标签(设置ros系统运行中的参数,存储在参数服务器ros master中)
<param name="output_frame" value="odom"/>
(保存一个参数到存储器中)
name:参数名
value:参数值
<rosparam file="params.yaml" command="load" ns="params"/>
(将一个参数文件中所有的参数都放在参数服务器中)
<arg>标签(launch文件内部参数,仅限文件内部使用)
格式:
<arg name="arg-name" default="arg-value"/>
name:参数名
value:参数值
调用创建的内部参数:$(arg 参数名)
<param name="foo" value="$(arg arg-name)"/>
<node name="node" pkg="package" type="type" args="$(arg arg-name)"/>
<remap>重映射标签(重映射ros计算图资源的命名)
格式:
<remap from="/turtlebot/cmd_vel" to="/cmd_vel"/>
from:原命名
to:映射之后的名字
<include>嵌套标签(包含其他launch文件,类似c语言中的头文件包含)
<include file="$(dirname)/other.launch"/>
file:包含其他launch文件路径
roslaunch learning_launch(功能包的名称) simple.launch(launch文件的名称) //编译launch文件
rosparam list //查看参数列表
rostopic list //查看话题列表
rosparam get /具体参数的名称 //查看具体参数的值
2.TF坐标变换(默认保存10s之内的所有坐标系关系)
TF坐标变换如何实现:广播TF变换(任意两个坐标系的关系先让ros的整个坐标系知道),监听TF变换(查询任意两个坐标系之间的关系)
$sudo apt-get install ros-melodic-turtle-tf //安装tf功能包
$roslaunch turtle_tf turtle_tf_demo.launch //启动一个程序
$rosrun turtlesim turtle_teleop_key //启动键盘控制节点
$rosrun tf view_frames //查看整个系统的tf树形结构
以上程序是运行两只小海龟,查看整个系统的tf数据的树形结构,一共有三个坐标系,world坐标系的原点在左下角,向右是x,向上是y。广播turtle1相对于world的位置变化关系,turtle2监听turtle1并计算出来与turtle的关系变化。
$rosrun tf tf_echo turtle1 turtle2 //查看坐标系1如何变化到坐标系2
TF广播器监听器程序注释详见
https://mp.csdn.net/mp_blog/creation/editor/124619269
3.可视化显示与仿真工具
日志输出工具——rqt_console
计算图可视化工具——rqt_graph
数据绘图工具——rqt_plot
图像渲染工具——rqt_image_view
Rviz三维可视化工具
$roscore
$rosrun rviz rviz
启动rviz(数据显示平台,后台要有数据)
Gazebo三维物理仿真平台