机器人自动驾驶时间同步进阶

0. 简介
之前时间同步也写过一篇文章介绍机器人&自动驾驶中的时间同步。在最近的学习中发现一些额外需要阐述学习的内容,这里就再次写一些之前没写到的内容。

1. NTP
NTP 是网络时间协议,用来同步网络中各计算机时间的协议,把计算机的时钟同步到标准世界时间即UTC时间。NTP version 1 出现于1988年6月,最新的NTP协议标准NTPv4,精度在局域网中可以达到0.1ms,在互联网中大多数地方也可以达到1-50ms。

在一些同步精度要求不高的场合, 达到秒级即可以, 为此推出了 NTP的简化版标准 SNTP 协议(Simple Network Time Protocol), 它简化和缩减了 NTP协议的数据处理算法, 方便应用于同步精度要求不高的场合。

为了寻求并提供精确时间,NTP的时间服务器会与客户端交换时间,利用对方给予的数据计算延迟或误差秒数,并重新调整服务器时间。NTP传输UTC时间的模式为层级状,第零层接收”真实时间”的卫星系统为所有时钟的参考,并将时间传到第一层,第一层再传到第二层,第二层接着传到第三层,如此一来可以避免请求量过大的情况,相对的时间精准度可能也会随着层级下降。

NTP一般只可以用作消费级的内容,是远远不能满足车规级的,因为NTP自身就不稳定,所以还是使用PTP和gPTP多一些

2. PPS
在自动驾驶系统中,时间源一般是来自GPRMC+PPS的信号组合,GNSS接收机的 NMEA-0183 GPRMC报文可以输出UTC时间信息,同时还有一路单独的PPS秒脉冲信号,PPS信号精度在几十ns级别,可以用来精确校时。

这一块之前在之前的文章中就详细介绍了PPS,虽然PPS精度是要比PTP高的,但是实际上很多传感器是不支持PPS硬触发的,所以PTP和gPTP目前是车规的主流同步方式

3. PTP
精确时间协议(PTP)是一种用于在整个计算机网络中同步时钟的协议。在局域网上,它可实现亚微秒级的时钟精度,使其适用于测量和控制系统。IEEE 1588专为要求精度超出使用NTP可获得的精度的本地系统而设计。IEEE 1588标准描述了用于时钟分配的分层主从体系结构。在这种体系结构下,时间分配系统由一个或多个通信媒体(网段)和一个或多个时钟组成。

PTP同步模式采用主从式(master-slave architecture)架构,指每个PTP网域内只有一个主时钟(grandmaster clock),主时钟可直接收到卫星系统的时间,故其最为稳定、精准,在节点底下接收的则为从属时钟,换言之,主时钟与从属时钟同步时间后,后者会再将精确数据送到不同设备。PTP亦使用最佳主时钟算法(Best master clock algorithm),自动选择每个网域内的主要时钟。

PTP之所以优于NTP,是因为前者拥有硬件时间戳(Timestamps)与透明时钟(Transparent clock),比起利用在应用层记录时间戳的NTP,PTP利用实体层(硬件)更能将延迟降到最低,并计算出以供接收端计算自己与网络时间的误差,透明时钟则是用来测量通讯介质的延迟,再交由系统补足延迟的时间。

[外链图片转存中…(img-Kw5Wur59-1695711034039)]

如果需要检查两个设备的PTP时间同步状态可以看一下PTP(Precision Time Protocol)高精度时间同步协议+CS模式测试代码,如果是通信设备可以看一下通过PPS信号验证PTP同步这一篇文章。

4. gPTP
工业网络的一个特殊优势在于其快速“启动” 能力,在同步的语境中,这意味着它可以在几秒钟之内锁定并进行精确定时。为了促进实现这个目标,gPTP系统使用逻辑同步(频率对齐)技术,而不是使用其他PTP系统中的物理同步技术。 这一点,再加上对通道和设备延迟的实时测量,使得网络中的桥接节点和端部节点可以快速实现时间对齐(同步)。

 gPTP通过标有时间戳的报文消息交换,在主时钟与多个桥接设备和端点设备之间进行时间通信。 带有时间戳的报文消息是SYNC,PEER_DELAY_REQ 和PEER_DELAY_RESP, 如下所示。与其他PTP实现方式的明显区别在于,gPTP还使用时间戳消息计算频偏,并在运行过程中进行调整。

点击机器人&自动驾驶时间同步进阶 - 古月居可查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「PHP系列」PHP 发送电子邮件详解

文章目录 一、PHP发送电子邮件二、PHP mail() 函数1. 函数原型2. 参数说明3. 返回值4. 常见的 $headers 属性5. 注意事项6. 示例 三、相关链接 一、PHP发送电子邮件 在 PHP 中,你可以使用内置的 mail() 函数来发送电子邮件。然而,mail() 函数在发送邮件…

FPGA verilog 模板设计示例(持续更新)

重温一下大道至简的至简设计法,正式开发两年多回顾当时的设计方法,又有了更多的体会和感触,希望将模块化运用起来会更有条例。1 FPGA设计代码模板 信号命名规范: 1 clk 表示时钟信号小写 2 rstn 表示高电平复位信号 小写 3 rst_n…

品牌差异化战略:Kompas.ai如何打造独特的内容声音

在当今竞争激烈的商业环境中,品牌差异化已成为企业获取市场优势的关键策略。一个鲜明的品牌形象和独特的内容声音不仅能够帮助企业吸引目标客户,还能够在消费者心中建立起独特的地位。本文将深入探讨品牌差异化的重要性,分析Kompas.ai如何帮助…

centos操作命令

CentOS操作命令包括但不限于以下几种: 系统操作命令: 关机、重启及登出: shutdown -h now:关闭系统。init 0 或 telinit 0:关闭系统。shutdown -r now:重启系统。reboot:重启系统。logout&…

Ubuntu搭建Python虚拟环境:virtualenv

1 缘起 一阶段:Python开发,使用Windows环境,使用的相关依赖在Windows环境都能使用; 进入二阶段,开发了一个新功能,使用了k8s,Python依赖为:easy_k8s, 刚好,e…

揭秘 IDM:下载管理大师的全面指南与实用技巧深度解析

IDM(Internet Download Manager)是一款流行的下载管理软件,它可以帮助用户以更快的速度下载文件,并且支持多种协议和浏览器。IDM 通过将大文件分割成多个部分并同时下载这些部分来加快下载速度,这种技术被称为多线程下…

Linux中手工创建一个用户

当我们需要新创建一个用户时,有两种方法 1,使用useradd命令: [rootlocalhost /]# useradd tmg 然后给它设置一个密码 [rootlocalhost etc]# passwd tmg Changing password for user tmg. New password: BAD PASSWORD: The password is a…

通过 USB 或网络控制安卓设备:无需 root 权限 | 开源日报 No.231

barry-ran/QtScrcpy Stars: 15.6k License: Apache-2.0 QtScrcpy 是一款支持通过 USB 或网络显示和控制 Android 设备的实时显示控制软件,不需要 root 权限。 其主要功能和优势包括: 轻量化(仅显示设备屏幕)高性能(3…

RAG:智能图书馆员引领AI的知识之旅

想象一下,你是一个法官,面对一个复杂的案件,你需要查阅大量的法律文献来找到相关的案例和法律条文。在AI的世界里,也有一个类似的“法官”——大型语言模型(LLMs)。它们能够回答各种问题,但有时…

vue 表格获取当前行索引,加颜色

vue 表格获取当前行索引&#xff0c;加颜色 <span styledisplay:inline-block;width:10px;height:10px;border-radius:50% :style"{background:color[scope.$index]}" />//定义颜色color: [#5387F7, #A794E0, #F3543C, #999999, #77D3F8, #FFA1B4, #26CEBA, #…

关于Linux系统的配置文件(UBOOT、Kernel、rootfs)

对于编译 U-Boot、内核和根文件系统&#xff0c;每个部分都需要相应的配置文件&#xff0c;这些配置文件指定了编译过程中的选项、参数和设置。以下是每个部分的配置文件中可能包含的内容&#xff1a; U-Boot 配置文件&#xff08;一般是 config.mk 或 defconfig 文件&#xf…

【k8s】(一)kubernetes1.29.4离线部署之-安装文件准备

&#xff08;一&#xff09;kubernetes1.29.4离线部署之-安装文件准备 &#xff08;二&#xff09;kubernetes1.29.4离线部署之-镜像文件准备 &#xff08;三&#xff09;kubernetes1.29.4离线部署之-环境初始化 &#xff08;四&#xff09;kubernetes1.29.4离线部署之-组件安装…

C++从入门到精通——C++动态内存管理

C动态内存管理 前言一、C/C内存分布分类1分类2题目选择题sizeof 和 strlen 区别示例sizeofstrlen 二、C语言中动态内存管理方式malloc/calloc/realloc/free示例例题malloc/calloc/realloc的区别malloc的实现原理 三、C内存管理方式new/delete操作内置类型new和delete操作自定义…

vue3 引入@tsparticles/vue3和@tsparticles/slim 实现粒子特效

1.安装&#xff1a; yarn add tsparticles/vue3 tsparticles/slim2.main.ts 引入 import Particles from "tsparticles/vue3"; import { loadSlim } from "tsparticles/slim";app.use(Particles as any, {init: async (engine: any) > {await loadSli…

力扣刷题 70.爬楼梯

题干 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&…

电子邮件免费版有哪些?免费注册电子邮箱

电子邮件有付费版和免费版两种类型&#xff0c;付费版通常具有更大的电子邮箱容量和更强大的电子邮箱功能。但是对于我们个人用户或者是中小型企业来说注册电子邮箱免费版的就够日常使用了。电子邮件的免费版提供商有Zoho Mail、微软、腾讯等&#xff0c;今天我们就来具体了解下…

探索简站WordPress主题:jianzhanpress.com的魅力所在

着互联网的普及和发展&#xff0c;越来越多的人开始关注网站建设。作为最受欢迎的内容管理系统之一&#xff0c;WordPress为无数站长提供了便捷、高效的建站体验。而在众多WordPress主题资源中&#xff0c;jianzhanpress.com以其丰富的主题数量和高质的设计赢得了广大WordPress…

Ubuntu系统的初始化

1. 更新系统 sudo apt update && sudo apt upgrade -y2. 安装必要的软件包 sudo apt install -y build-essential curl git vim3. 配置SSH sudo apt install -y openssh-server sudo systemctl enable ssh sudo systemctl start ssh4. 配置时间同步 sudo apt insta…

Django中的实时通信:WebSockets与异步视图的结合

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在现代Web应用程序中&#xff0c;实时通信已经成为了必不可少的功能之一。无论是在线聊天、…

基于python制作陆地掩膜

想要一个和输入raster大小和投影都一样的掩膜&#xff0c;然后找到了以下代码&#xff0c;这里的110就是给陆地付的值。速度算很快 # -*- coding: utf-8 -*- """ Created on Tue Apr 23 16:41:35 2024author: Asus """ import numpy as np from…