Ubuntu ROS topic使用record连续录包

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

你可能感兴趣的:(Linux,ubuntu,自动驾驶,linux)