虽然有rosbag具有类似的功能,但是有时候我们其实在调试的时候只需要看一下数据,画个图。比如说,只需要看一下无人机的位置。为了方便写之后再次用到这个实验数据我们希望通过按天文件夹区分,然后每个文件精确到秒进行区分。
命令
利用Linux下面date
环境变量实现相应的功能。
建立文件夹
输入下面的命令就可以建立以当前年月日命名的文件件了。
mkdir $(date +%Y-%m-%d)
建立文件
输入下面的命令就可以建立以当前年月日时分秒命名的文件了。
gedit $(date +%Y_%m_%d_%H_%M_%S).txt
脚本
实际的时候我们一个命令一个命令的输入太麻烦了,下面我们通过脚本来自动的保存文件。
对于数据专门建立一个文件夹进行存放。
mkdir ~/ros_data
新建一个脚本。
gedit ros_record.sh
然后把下面的内容粘贴进去保存退出。对于无人机平台同时用了tmux。
tmux new-session -d -s record ;
tmux split-window -h
tmux select-pane -t 0
# 1cmd
tmux send-keys "cd ~/ros_data" C-m
tmux send-keys "if [ ! -d $(date +%Y-%m-%d) ];then mkdir $(date +%Y-%m-%d);fi" C-m
tmux send-keys "cd $(date +%Y-%m-%d)" C-m
tmux send-keys "rostopic echo -p /mavros/local_position/pose/pose/position > uav_enu_$(date +%Y_%m_%d_%H_%M_%S).txt" C-m
tmux split-window -v
tmux select-pane -t 1
# 2cmd
tmux send-keys "sleep 0.2" C-m
tmux send-keys "cd ~/ros_data" C-m
tmux send-keys "cd $(date +%Y-%m-%d)" C-m
tmux select-pane -t 2
# 3cmd
tmux send-keys "sleep 0.2" C-m
tmux send-keys "cd ~/ros_data" C-m
tmux send-keys "cd $(date +%Y-%m-%d)" C-m
tmux split-window -v
tmux select-pane -t 3
# 4cmd
tmux send-keys "sleep 0.2" C-m
tmux send-keys "cd ~/ros_data" C-m
tmux send-keys "cd $(date +%Y-%m-%d)" C-m
tmux -2 attach-session -t record
接下来就是给脚本执行的权限。如果还需要保存其他消息在相应的地方添加即可。
chmod +x ~/ros_record.sh