Ubuntu ROS topic使用record连续录包
前言
由于工作项目需求,需要通过ROS录制ros topic消息,编写了脚本对应能够循环录制以及休眠时间设置;脚本内容(不做详细解释)
脚本内容如下:
### pts_pcd
#! /usr/bin/env bash
# BY robosense Holden
echo -e "\033[43;30m =====> 雷达原始数据bag文件录制 <===== \033[0m"
date=$(date +%Y-%m-%d-%H-%M-%S)
RECORD_TOPIC=$(rostopic list | grep -E "/64_lidar|/65_lidar")
######################################## changle #################################################
record=$(echo MEC1) ## 设置后缀
num=1 ## 录制次数
duration=30m ## 录制时长 s秒 m分 h时
sleep=1 ## 间隔时间 单位秒(86400一天,3600 1小时,1800 半小时)
##################################################################################################
mkdir $date-$record
echo -e "\033[41;37m =====>!!!每间隔$sleep秒进行1次录制,1次录制$duration,共执行$num次!!!<===== \033[0m"
count=0
holden=1
while(($count<$num)); do
echo -e "\033[32m =====> 开始录制第$holden次数据 <===== \033[0m"
rosbag record --duration=$duration -b 4096 ${RECORD_TOPIC} -o $date-$record/
((count = $count+1))
((holden = $holden+1))
if(($count<$num));then
echo -e "\033[33m =====> 等待$sleep秒将开始录制第$holden次数据 <===== \033[0m"
else
echo -e "\033[32m =====> 录制结束 共录制如下 <===== \033[0m"
ls $date-$record/*.bag
echo "###################################### 感知消息如下 ######################################" >> $date-$record/record.txt
rosbag info ./$date-$record/*.bag | grep "rslidar_packets" >> $date-$record/record.txt
echo "###################################### 数据容量如下 ######################################" >> $date-$record/record.txt
du -B M --max-depth=1 ./$date-$record/*.bag >> $date-$record/record.txt
exit 1
fi
sleep $sleep
done