ROS 进阶

一、 dynamic_reconfigure

http://wiki.ros.org/dynamic_reconfigure/Tutorials

http://www.guyuehome.com/1173

1、cfg编写

不能出现汉字

2、建立好cfg文件之后,cd到程序包文件夹下, chmod a+x cfg/cfg文件名.cfg

3、修改 CMakeLists.txt

 generate_dynamic_reconfigure_options(
   cfg/cfg文件名.cfg )

add_dependencies(节点名 ${PROJECT_NAME}_gencfg) 此语句放在 target_link之后

4、在cpp 中添加两个头文件
   dynamic_reconfigure/server.h
   程序包名/cfg文件名Config.h     //此文件编译时会自动生成

二、ros::spin() 与 ros::spinOnce()

https://www.cnblogs.com/liu-fa/p/5925381.html

ros::spin() 与 ros::spinOnce() 都是 ROS消息回调处理函数

三、launch文件

<node pkg="程序包名" type="可执行文件名" name="节点名" output="screen" />

四、调用其他程序包的头文件

https://blog.youkuaiyun.com/zhixiongning/article/details/81910857

注意:(B_package引用A_package的头文件)

如果头文件是A_package自定义的,B_package引用时,<头文件名.h>

如果头文件是A_package自动生成的,B_package引用时,<A_package/头文件名.h>

五、rosbag

1、录制数据

先创建一个专门的文件夹,存放数据包  mkdir ~/bagfiles

rosbag record -a   //-a选项表示将当前发布的所有 topic 数据都录制保存到一个 rosbag
rosbag record /topic_name1 /topic_name2   //只记录某些感兴趣的 topic

上述命令录制的数据包名字为日期加时间。如果要指定生成数据包的名字,则用-O参数
rosbag record -O filename.bag /topic_name1

2、rosbag info指令可以显示数据包中的信息:

rosbag info filename.bag

 3、回放数据

在终端中bag文件所在目录下运行以下命令:

rosbag play <bagfile>        //以原始频率播放 (原始频率即为记录数据时,发送到topic上的频率)
rosbag play -r 2 <bagfile>   //以原始频率的两倍播放rosbag 
play -l  <bagfile>           //循环播放  -l == --loop
rosbag play <bagfile> --topic /topic1    //只播放topic1
rosbag play --clock <bagfile>    //回放 rosbag 并发布 simulated time

六 时间

1、系统以 msg 对应的 simulated time 运行,而不是实际的 wall-clock time

rosparam set /use_sim_time true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值