MOOS程序解析记录(6)pLogger

14 篇文章 0 订阅

MOOS程序解析记录(6)pLogger

最近在使用数据记录的时候,发现了自己对于PLogger并不是很熟悉,很多语法规则并不是很懂,于是便升起了记录一下该模块的心思,虽然这个模块并不能算多重要,但是在针对航行数据记录以及处理时没有它是万万不行的。


简介一下其主要作用: pLogger进程旨在记录MOOS会话的活动。 它可以配置为记录任意数量MOOS变量的一小部分或每次发布。它是一个重要的MOOS工具,这在任务后的分析、数据收集和任务后的重播方面是非常重要的。


基本格式

在这里插入图片描述
上图便是log进行记录时的基本格式了,其中varname表示变量的名称,period是在记录给定变量是所设置的最小时间间隔。例如,如果varname = INS YAW和period = 0.2,那么即使变量以20Hz发布,它也只会以5Hz记录。可选项NOSYNC作为一个标志位,表明该变量不应该记录在同步日志(synchronous logs)中。可选项MONITOR也是一个可选项,可选的MONITOR标志告诉pLogger,如果这个变量没有至少每10秒记录一次,就发送一个通知。(主要是用来监视变量是否正常记录)。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Logging Session

对于每个日志会话,日志记录器将创建一个新目录,并将所有记录的文件放在该目录中。这些文件通常是一个日志文件、一个slog文件、一个系统日志文件、一个任务文件(moos文件)的副本,还有一个hoof文件(如果pHelm正在运行)(MOOS-IVP中则是behavior文件)。可以通过将变量LOGGER_RESTART发布到MOOSDB来创建新的日志会话。这样在实际实验过程中,可以将用遥控器操作时的记录表和实际执行任务时的记录表区分开来。

二、Log File Types

Log文件有两种类型,一种是alog文件类型(asynchronous),另外一种是slog文件类型(synchronous)接下来来讨论一下这两种文件类型。

1.Synchronous Log Files

在这里插入图片描述
上图为开启同步记录的格式,需要在配置块中进行填写,填写true开启同步记录,后面的period可以对记录周期进行设置,设置为0,则是按照最小周期进行记录。同步记录生成一个数字数据表。文件中的每一行都对应一个时间间隔。表中的每一列表示给定变量随时间的广泛演变。行与行之间的时间(以及是否需要同步日志记录)由period指定。

如下图所示,该图即为同步时间记录,其中某一时刻某些变量如果没有值,那么会记录为NaN格式。
在这里插入图片描述

2.Asynchronous Log Files

异步日志记录是彻底的。该机制被设计成能够将每个增量记录到moodb。使用期间变量可使特派团设计者避开这一最终限制,并以最高频率记录变量。异步日志记录的关键属性可以列举如下:
1 同时记录字符串和数字数据。
2 以列表格式记录数据-每行一个通知。
3 只有当变量被写入时才会产生条目。
异步日志文件被设计成与回放工具一起使用(例如uPlayback或其他目的构建的可执行文件)。尽管字符串和数字数据的处理会给程序的复杂性增加一点开销,但是在任务结束后的重放/再处理过程中,能够减缓、停止和加速时间所带来的实用程序收益是巨大的。(uPlayback后续有时间再进行学习研究)其格式为:
在这里插入图片描述
产生的数据记录表如下图所示:
在这里插入图片描述

二、System Log File

ylog这是第三种记录文件的类型,此消息仅包含包含在MOOS_SYSTEM和MOOS_DEBUG消息中的数据。这两种消息都可以通过编辑CMOOSApp::MOOSDebugWrite类来在MOOSapp 中进行编写,可以应对app不同的报错情况。

1.Dynamic Logging Configuration

关于动态变量的记录,有一些变量是在某些app开始运行之后才会产生的,如果要记录这些动态变量,那么使用到下面的语法:在这里插入图片描述
其结构和格式跟上面的语法类似,这里就不详细进行解读了,记录的数据将会被存储到异步数据记录文件中去(alog),但是动态日志记录使得每一行在结束时会出现未知的列数,为了使得数据读取时的顺利,可以在配置块中增加约束条件:
在这里插入图片描述这里为运行时请求的变量保留了30列。当日志记录器接收和处理动态请求时,这些未声明的列将被使用,直到没有剩下任何列。此时,任何未来的动态日志请求仍将被接受,但已记录的变量不会出现在slog文件中(它们当然会出现在/italog文件中)。无人认领的插槽将被标记为DYNAMIC X,直到认领为止,并且总是有NaN条目。

2.Specifying Log File Names and Locations

指定文件名称和位置:每次日志记录器启动时,它都会在日志根目录中创建一个新目录(如果需要的话),并在该目录中执行日志记录。pLogger在日志文件配置方面非常灵活,由以下变量控制。
GlobalLogPath:这是一个文件作用域变量(即不在任何进程配置块中)。如果它出现在任务文件中,则它指定将在其中创建日志文件的根目录。
Path:这指定了根日志目录,但只在没有设置GlobalLogPath时使用(参见上面)
File:这是给记录文件(alog/slog和ylog)的文件名。
FileTimeStamp:如果将此设置为true,则每个记录的文件(以及创建的包含目录)的名称将是file变量和时间戳的连接。如果FileTimeStamp为false,则每次运行日志记录器时,它将写入同一组日志文件并销毁原始内容。这是设计好的;在开发时,不要让无用的日志文件占用机器上更多的空间,这通常是有用的。

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建moos开发环境,首先需要确保计算机上安装了适当的操作系统,例如Windows、Linux或Mac OS。接下来,需要安装moos软件包,可以从其官方网站或开发者社区获取。安装包通常包含moos核心库、moos应用程序和moos工具。 安装完moos软件包后,还需要安装一些必要的依赖项,例如CMake、Boost和ACE。这些依赖项可在官方网站上找到相应的安装指南,并按照指导进行安装。 在依赖项安装完成后,可以开始配置moos环境。首先,在命令行中转到moos软件包的根目录,并运行CMake来生成构建系统所需的Makefile。在生成Makefile后,执行make命令,开始编译和构建moos。 构建完成后,还需要配置moos环境变量。在.bashrc或.bash_profile(Linux或Mac OS)或环境变量设置窗口中(Windows)添加moos软件包的路径。这样,moos命令和应用程序将在任何位置可用。 最后,可以开始使用moos编写和运行应用程序。通过编辑moos应用程序的配置文件,可以定义moos进程之间的消息交互和处理逻辑。然后,在命令行输入moos运行命令,指定应用程序配置文件的路径,即可启动moos进程并开始模拟和测试。 总之,搭建moos开发环境需要安装moos软件包、配置依赖项、生成Makefile、构建moos、配置环境变量,并通过编辑配置文件编写和运行moos应用程序。这样,开发者就可以在moos环境中进行开发和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值