rosrun启动一个节点
roslaunch启动多个节点
1. launch tags
使用这个语句使得文本高亮
<?xml version="1.0" encoding="UTF-8"?>
node
<node pkg="包名" type="节点名" name="赋予被执行节点运行时的名字" />
arg
定义一个argument
<arg name="参数名" default="预设值(可改)" value="预设值(不可改)" doc="描述"/ >
param
定义一个parameter,参数可以是文件或者命令
< param name="参数名或者namespace" value="参数值" type="类型str|int|double|bool|yaml" / >
remap
映射话题,使得不用更改或者发布新的话题
<remap from="话题原来的名字" to="新的话题名字"/ >
launch file调用其他的launch
<include file="$(find package_name)/launch/scout_minimal.launch" />
2. yaml file
yaml文件用来储存节点设置的parameter
3. tf变换
查看tf树
rosrun rqt_tf_tree rqt_tf_tree
查看具体两个坐标系之间的平移旋转数值
rosrun tf tf_echo /utm /odom
4. rosbag
rosbag record -O filename.bag /topic_name1 /topic_name2
5. ros::spin()和ros::spinOnce()
消息订阅的回调函数是在这两个函数当中完成的,程序执行到ros::spin()不再往下执行,所以这条语句后除了return 0,其他语句都不能有。ros::spinOnce常常和while连用:
#define FREQ 10
ros::Rate loop_rate(FREQ);
while(ros::ok())
{
ros::spinOnce();
loop_rate.sleep();
}