手把手教你搭建一个开源ADAS项目

智驾最前沿 2023-03-24 08:30

--关注、星标、回复“26262”--

↓↓领取:ISO 26262↓↓

项目范围

该项目是一个高级驾驶辅助系统的原型,专注于感知算法(目标检测、车道线分割和交通标志分类)。它提供了3个主要功能:
  • 前方碰撞警告
  • 车道偏离警告
  • 交通标志检测及超速预警
它还提供了「有限的」虚拟硬件访问权限,作为迈向商业产品的一步:
  • 通过 LAN 中的 GPS 源的 GPS 读取器
  • 一个 CAN 读取器,用于从虚拟 can 总线读取车速和转向信号
但是,可以使用 GPS 模块或 CAN 转 USB 电缆收集 GPS 和 CAN 信号。我将提供一些关于如何设置这些设备的说明。

硬件设置

处理该项目所有输入的中心组件是中央处理器。这台计算机接收两个输入:(i) 来自相机的图像,以及 (ii) 汽车底盘数据,例如汽车速度和转向信号。中央处理负责处理这些输入以在需要时发出警告。在这个项目的范围内,由于实验条件有限,我们实施了一个「模拟模块来提供相机和传感器读取器输入的替代方案」。在商业产品中,传感器读取器模块可以通过 GPS 模块和 CAN 总线读取器(例如 CAN 转 USB 电缆)来实现;可以使用 USB 摄像头提供摄像头输入。
「硬件清单:」
  • Jetson Nano 开发者套件
  • Sandisk Ultra 64GB class-10 SD 卡
  • Wareshare 5寸液晶触摸屏
  • Wareshare 8Ω 5W 喇叭
  • Jetson Nano 2寸5V散热风扇
  • 透明外壳。

1.如何获取汽车传感器(速度,转向灯)

使用 GPS 模块

「出于开发和教育目的:」
  • 从您的手机共享 GPS:
    • 从 Google Play 商店下载「共享 GPS应用程序。」
    • 设置您的手机局域网地址,src/sensors/car_gps_reader.cpp并使用此应用程序与您的 Jetson Nano 共享 GPS 信息。这样,我们就可以获取GPS信号,估计车速。
  • 使用 USB GPS 接收器:https://www.amazon.com/GlobalSat-BU-353-S4-USB-Receiver-Black/dp/B008200LHW。
「对于商业产品:」
  • 查看此模块:https: //www.adafruit.com/product/746。精度:< 3m。

如何设置CAN总线以读取车速和转向信号

「基本信息」
在这个项目中,我们没有在真车上设置物理 CAN 总线(只是一个使用 socket CAN 的仿真系统)。但是,它可以通过使用 CAN 转 USB 电缆来实现。
CAN总线的一些信息:
  • 一般信息:https://www.csselectronics.com/screen/page/simple-intro-to-can-bus/language/en。
  • 如何侵入您的车辆?:hacking-can-bus.pdf
  • 开源 CAN 电缆:CANtact。这将支持您将 CAN 总线连接到 linux 套接字,「我的 ADAS 源代码已经支持该套接字」。
    • 硬件设计:https: //github.com/linklayer/cantact-hw
    • 固件:
    • 在韩国:http://vctec.co.kr/product/cantact-open-source-canusb-converter-cantact-open-source-can-to-usb-converter/11137/category/161/display/1/
    • 您还需要 OBD-II 到 DB9 电缆来连接汽车 OBD-II:http://vctec.co.kr/product/obd-ii-케이블obd-ii-to-db9-cable/817/category/ 81/显示/1/。
    • 一旦 CANtact 设备处理了来自车辆的 CAN 消息,它们就会通过 USB B 型端口输出。因此,这需要 USB-B 到 USB-A 电缆:https://www.amazon.com/AmazonBasics-USB-2-0-Cable-Male/dp/B00NH11KIK
「我们在哪里可以找到要连接的 CAN 总线?」
在这个项目中,我们只使用虚拟 CAN 总线,因此项目源代码仍然不支持与汽车 CAN 总线的真实连接。不幸的是,虽然 CAN 总线是汽车行业的标准,但如果您想找到您的 can 线在哪里,您通常需要查看汽车电气图才能找到内部 CAN 总线。自 1996 年以来,有一个名为 OBD2 的汽车标准,可以提供一种方便的方式连接到 CAN 总线。您可以在以下链接中找到有关 OBD2 的信息:
https://www.csselectronics.com/screen/page/simple-intro-obd2-explained/language/en
「OBD2接口在哪里?」
OBD-II 端口通常位于仪表板下方,方向盘柱下方(下图中的 1 - 3)。如果端口不在转向柱下方,请在数字 4 - 9 指示的区域中寻找端口。
「我怎样才能反转CAN工程并读取速度?」
「资源:」
  • hacking-can-bus.pdf
  • https://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/
您可以使用 Wireshark 或 candump 查找车速和转向灯在哪里。CAN总线是没有加密的,大家可以根据下面的说明尝试查找。

2. 如何标定相机

将 USB 摄像头连接到 Jetson Nano 板后,我们需要运行 OpenADAS 软件来校准摄像头。校准实际上是基于透视变换的距离估计。这是为距离计算校准相机的便捷方式。
变换参数包括从真实世界距离到鸟瞰图像空间的米到像素映射,以及鸟瞰图像到相机图像之间的透视变换矩阵。为了计算这些参数,我们使用以下解决方案:在汽车前面放一块红地毯,测量距离 W1、W2、L1、L2。地毯应该足够大,并且必须对称地放置在汽车的长轴上。
单击设置按钮以打开相机校准。
在 UI 中输入 L1、L2、W1、W2。
之后,通过单击「重新拍摄照片」选择 4 个点,选择一个点并移动滑块。这些点必须以正确的顺序拾取。相机标定后,标定文件将被保存data/camera_calib.txt并在每次启动程序时加载回来。


感知模型和算法

1. 物体检测与交通标志分类模型

该物体检测模块负责检测前方障碍物物体,如其他车辆或行人,以及交通标志。这些结果可用于前方碰撞预警和超速预警。为了提供这些功能,该模块包含两个主要组件:基于 CenterNet 的对象检测神经网络和基于 ResNet-18 的交通标志分类网络。因此,我们将在下图中看到 2 个深度学习模型。

使用 CenterNet 进行目标检测

CenterNet 是一种简单但高效的对象检测模型。与其他流行的目标检测模型相比,CenterNet 可以非常有效地适应速度-精度权衡。与其他流行的基于锚框的对象检测网络不同,CenterNet 依靠关键点检测器来检测对象的中心,然后回归其他属性。
CenterNet管道
「论文:」作为点的对象 - Xingyi Zhou、Dequan Wang、Philipp Krähenbühl https://arxiv.org/abs/1904.07850。
「训练」
我使用 CenterNet 作者的官方存储库来训练对象检测器(进行了一些修改)。请阅读此处的安装步骤以安装培训所需的环境。
「笔记:」
  • 我建议使用 Anaconda 或 Miniconda 为每个任务创建一个虚拟环境。不要混合你的环境,因为我们必须使用不同的 Python 和包版本。
  • 您「必须使用」PyTorch v0.4.1 并将其设置为此处的说明:https: //github.com/xingyizhou/CenterNet/blob/master/readme/INSTALL.md。不保证其他版本有效。
我修改了官方存储库以使用 Berkeley DeepDrive (BDD) 数据集](https://bdd-data.berkeley.edu/)。您可以在此处克隆源代码以开始训练。在我的存储库中,我用10个类训练了 CenterNet :person、、、、、、、、、和。ridercarbustruckbikemotortraffic lighttraffic signtrain
「使用 TensorRT 进行模型优化」
使用 PyTorch 框架训练 CenterNet 后,我们获得 PyTorch 模型格式(.pth)的模型文件。为了优化 NVIDIA Jetson Nano 上的推理速度,我们需要将这些模型转换为 TensorRT 引擎文件。转换是通过称为 ONNX(开放式神经网络交换)的中间格式完成的。首先使用 PyTorch ONNX 模块将 PyTorch 模型转换为 ONNX 格式(步骤 1)。之后,我们将 ONNX 模型转换为每个推理平台的 TensorRT 引擎(步骤 2)。因为从ONNX到TensorRT引擎的转换时间比较长,所以在我的实现中,我将TensorRT引擎转换后序列化到硬盘,每次程序启动时加载。在此步骤中,我们必须注意 TensorRT 引擎在不同计算机硬件上的构建方式不同。所以,
使用此存储库将预训练模型转换为 ONNX 格式:
https: //github.com/vietanhdev/centernet-bdd-data-onnx-conversion。
「笔记:」
  • 创建另一个虚拟环境,这与培训不同。这个新的 Python 环境应该使用 Pytorch v1.0 或 v1.1。我为上面的这个转换任务准备了一个存储库。您可以使用此处的说明来设置您自己的环境。
  • 您可以从该文件夹convert_to_onnx_mobilenet.py中阅读(对于 MobileNetv2 主干)和convert_to_onnx_rescdn18.py(对于 ResNet-18 主干)中的一些转换示例源代码。
  • 拥有 ONNX 模型后,转到 OpenADAS 以更新配置文件中新对象检测模型的路径:src/configs/config_object_detection.h. 您还可以使用此存储库进行转换。

交通标志分类

由于「BDD 数据集」的限制——它只包含 1 类交通标志(未指定标志类型),我不得不训练另一个神经网络来识别标志类型。由于速度和准确性高,因此也选择了「ResNet-18来完成这项任务。」我使用 Tensorflow 和 Keras 框架训练了模型。
「数据集」
在这个项目中,我只设计了对最大速度标志进行分类的系统,并将每个速度级别视为一个单独的对象类。为了收集足够的训练数据,我使用了 2 个数据集:Mapillary Traffic Sign Dataset (MTSD) 和 German Traffic Sign Recognition (GRSRB) 数据集。由于 MTSD 是一个交通标志检测数据集,我使用标志边界框来裁剪它们以进行分类任务。裁剪后,我合并了 2 个数据集,得到 18,581 个最高限速交通标志图像分为 13 个类别,以及 879 个末端限速标志(将所有末端限速标志仅视为 1 类)。
此外,我使用来自其他交通标志和物体的 20,000 张裁剪图像作为“未知”类别。该数据集中共有 15 个类别:最大速度标志(5km/h、10km/h、20km/h、30km/h、40km/h、50km/h、60km/h、70km/h、80km/h , 90 公里/小时, 100 公里/小时, 110km/h、120km/h)、限速终点(EOSL)等标志(OTHER)。之后,这个数据集被分成 3 个子集:训练集(80%)、验证集(10%)和测试集(10%)。每个交通标志类别的分布是随机的。
「训练步骤」
使用此存储库中的源代码来训练交通标志分类器:https://github.com/vietanhdev/traffic-sign-classification-uff-tensorrt。
  • 「第一步:初始化环境」
创建anaconda环境:
conda create --name python=3.6
激活创建的环境并安装所有要求:
pip install requirements.txt
  • 「第 2 步:训练模型」
准备如下结构的数据集:
使用以下命令训练模型:
python train.py
「使用 TensorRT 进行模型优化」
转换为 UFF
  • convert_h5_to_pb.py修改和中的模型路径convert_pb_to_uff.py。

  • 将.h5模型转换为.pb, 最后.uff:

pip install requirements-h5-to-uff.txt
python convert_h5_to_pb.py
python convert_pb_to_uff.py
    • 拥有 ONNX 模型后,转到 OpenADAS 以更新配置文件中新交通标志分类模型的路径:src/configs/config_sign_classification.h.

    2.车道线分割模型

    车道线检测模块负责检测车道线和车道偏离情况。然后将该结果用于车道偏离警告。我使用深度神经网络和霍夫变换线检测器进行车道线检测。下面介绍车道线检测的流程。
    车道线检测流水线

    用于车道线分割的 U-Net 模型

    U-Net 是一种在生物医学图像分割中表现良好的全卷积网络,它可以用较少的训练图像数据展示高精度的分割结果。我将 U-Net 应用于车道线分割问题,并结合霍夫变换以线方程的形式找到车道线。
    U网模型
    为了在嵌入式硬件上运行轻量级分割模型,我对原始 U-Net 模型进行了两次修改:
    • (1) 将decoder filters的数量调整为128, 64, 32, 16, 8个filters,从decoder的顶部到网络的输出;

    • (2) 用 ResNet-18 主干替换原来的主干。

    这些修改减少了 U-Net 中的参数数量,并为我们提供了一个可以超过 200 帧每秒 (FPS) 运行的轻量级模型(模型 U-Net ResNet-18 输入大小 384x382,RTX 2070 GPU 上的 TensorRT float 16 ).

    数据集

    数据集是从Mapillary Vista 数据集准备的,并进行了一些修改。原始数据集包含训练集中约 18000 张图像和验证集中约 2000 张图像。我合并这些集合,删除一些不包含车道线或有太多噪音的图像。最终数据集有 15303 张图像。我将这个集合随机分成三个子集:10712 张图像用于训练(~70%),2296 张图像用于验证(~15%)和 2295 张图像用于测试(~15%)。因为 Mapillary Vista 的标签包含很多对象类,所以我只保留车道线类来生成二值分割掩码作为新标签。
    Mapillary Vistas 数据集预处理——图像 A、B 来自 Mapillary Vitas

    训练

    使用我的存储库训练 U-Net 进行车道线分割:https://github.com/vietanhdev/unet-uff-tensorrt。
    • 「第一步:初始化环境」
    创建anaconda环境:
    conda create --name python=3.6
    激活创建的环境并安装所有要求:
    pip install requirements.txt
    • 「第 2 步:训练模型」
    在目录中创建新的配置文件list_config请不要修改旧的配置文件,以便我们更好地观察,模型和训练历史将自动保存到saved_models文件夹中。
    对于培训,只需运行:
    python model/train.py
    或者
    ./train.sh

    使用 TensorRT 进行模型优化

    转换为 UFF
    • 为此任务创建另一个虚拟环境。

    • convert_h5_to_pb.py修改和中的模型路径convert_pb_to_uff.py。

    • .h5将模型转换为.pb,并最终使用这些命令(请更新和.uff中模型的正确路径)convert_h5_to_pb.pyconvert_pb_to_uff.py

    pip install requirements-h5-to-uff.txt
    python convert_h5_to_pb.py
    python convert_pb_to_uff.py
    • 拥有 UFF 模型后,转到 OpenADAS 以在车道检测配置文件中更新该新模型的路径:src/configs/config_lane_detection.h.

    使用霍夫变换进行车道线检测

    霍夫变换是一种在图像处理中非常有效的线检测算法。该算法的总体思想是创建从图像空间(A)到新空间(B)的映射,空间(A)中的每条线对应空间中的一个点(B),空间中的每个点(A)对应空间中的正弦曲线 (B)。将 (A) 中的所有点投影到空间 (B) 中的正弦曲线后,我们找到交点密度最高的地方。然后将这些位置投影到 (A) 成线。通过这种方式,霍夫线变换算法可以在图像空间(A)中找到线。
    寻找候选车道线的过程如下图所示。从线分割网络产生的分割掩码,车道线检测模块使用概率霍夫变换来检测原始线段(1)。之后,使用由 Bernard A. Galler 和 Michael J. Fischer 在 1964 年反转的不相交集/联合查找森林算法将这些线划分为组。我们使用线之间的空间距离和角度差将属于一个线段分组同一条线。经过步骤(2),我们可以看到不同的线组被绘制成不同的颜色。步骤 (3) 接收这些线组作为输入,并使用具有 L2 距离的最大似然估计在每个组中拟合一条线。
    线候选检测
    该系统将车道分割模型与上述车道检测算法相结合,可以检测不同环境下的车道线,判断车道偏离情况。它为车道偏离警告模块创建可靠的输入。


    警告规则

    该系统使用基于规则的警告算法。请在以下博客文章和源代码中查看一些警告规则:
    https://aicurious.io/posts/adas-jetson-nano-software/#iii-software-implementation


    参考

    在此处详细了解我的深度神经网络结果:https://aicurious.io/posts/adas-jetson-nano-deep-neural-networks/ 。

    载自车端文中观点仅供分享交流,不代表本公众号立场,如涉及版权等问题,请您告知,我们将及时处理。

    -- END --

    智驾最前沿 「智驾最前沿」深耕自动驾驶领域技术、资讯等信息,解读行业现状、紧盯行业发展、挖掘行业前沿,致力于助力自动驾驶发展与落地!公众号:智驾最前沿
    评论 (0)
    • 《MATLAB 深度学习简介》电子书
      《MATLAB 深度学习简介》电子书
    • 同济高等数学第六版上册习题全解指南
      同济高等数学第六版上册习题全解指南,2007版扫描件。
    • 移动端架构师体系课(30周完整版+源码+电子书)
      今天给大家分享一套移动端架构师视频教程,《移动端架构师》一共分为6大阶段,30周,500多课时!提供配套的源码+电子课件(独家)下载!

      课程大纲:
      【0】源码+电子书
      【阶段1:Kotlin x Java打造 UI 通用组件】第1周、走进移动端架构师
      【阶段1:Kotlin x Java打造 UI 通用组件】第2周、通用UI组件开发与基础框架设计
      【阶段1:Kotlin x Java打造 UI 通用组件】第3周、高级UI组件定制与解耦设计
      【阶段1:Kotlin x Java打造 UI 通用组件】第4周、Android必备Kotlin核心技术
      【阶段1:Kotlin x Java打造 UI 通用组件】第5周、Android UI核心组件剖析与实战
      【阶段1:Kotlin x Java打造 UI 通用组件】第6周、Android 导航架构探秘
      【阶段2:解锁Android高阶技能,探秘实战Jetpack】第7周、线程与线程池核心技术
      【阶段2:解锁Android高阶技能,探秘实战Jetpack】第8周、Android网络编程进阶
      【阶段2:解锁Android高阶技能,探秘实战Jetpack】第9周、架构首页模块
      【阶段2:解锁Android高阶技能,探秘实战Jetpack】第9周+、架构首页分类模块
      【阶段2:解锁Android高阶技能,探秘实战Jetpack】第10周、解密Jetpack工具库核心组件
      【阶段2:解锁Android高阶技能,探秘实战Jetpack】第11周、架构商品详情模块
      【阶段2:解锁Android高阶技能,探秘实战Jetpack】第12周、Android消息机制与类加载
      【阶段3:主流架构演进与项目架构改造】第13周、玩转Kotlin x Java 设计模式
      【阶段3:主流架构演进与项目架构改造】第14周、主流架构模式演进之路
      【阶段3:主流架构演进与项目架构改造】第15周、主流架构实战搜索模块
      【阶段3:主流架构演进与项目架构改造】第16周、IOC架构设计
      【阶段3:主流架构演进与项目架构改造】第17周、构建与打包能力
      【阶段4:混合架构设计与开发】第18周、走进Flutter开发
      【阶段4:混合架构设计与开发】第19周、Flutter混合架构原理剖析与应用
      【阶段4:混合架构设计与开发】第20周、Flutter实战应用与性能优化
      【阶段4:混合架构设计与开发】第21周、走进RN开发
      【阶段4:混合架构设计与开发】第22周、RN混合架构原理剖析与应用
      【阶段5:稳定性及性能调优】第23周、稳定性优化
      【阶段5:稳定性及性能调优】第24周、性能优化
      【阶段5:稳定性及性能调优】第25周、开发技能拓展
      【阶段6:前后端接口设计与配置中心系统】第26周、后端-DAU超千万的移动端接口设计实现
      【阶段6:前后端接口设计与配置中心系统】第27周、前端-管理后台设计实现
      【阶段6:前后端接口设计与配置中心系统】第28周、【SDK+服务端+控台】配置中心架构实现
      【阶段6:前后端接口设计与配置中心系统】第29周、HiAbility SDK开发
      【阶段6:前后端接口设计与配置中心系统】第30周、学成“下山”



      移动开发“两极分化”,没有差不多的“中间层”,唯有尽早成长为架构师,你的职业道路才能走的更远更稳!

      架构师两大核心能力:
      1、从0到100构建千万级APP的技术能力
      小型APP逐渐被小程序替代
      移动开发的重心转向
      大型APP开发

      2、驾驭大厂APP架构设计与落地能力
      行业趋于成熟,企业用人倾向于
      具备架构思维与架构设计能力的
      复合型人才


      经历千万级项目全流程,对一个工程师的成长弥足珍贵,但现实中这样的机会凤毛麟角,于是有了咱们这套《移动端架构师》课程

      掌握千万日活APP的架构能力
      · 定制移动端优质解决方案
      · 基础库&框架&模块的技术选型
      · 基础模块&组件设计开发维护

      “技术+管理” 综合发展
      解决项目中关键问题&技术难题
      · 持续优化团队开发流程
      · 提高团队开发能力&效率


      掌握大部分高阶人才必备技术栈
      底层&框架源码深度剖析
      · 多设备多版本兼容适配
      · 主流混合开发框架实践应用
    • 《你好,放大器》西交杨建国2014
      西交大杨建国老师的著作,以通俗易懂的方式讲述放大器的原理和功用是有别于大学课本的数模电那种枯燥和专用的词语来描述事物的书
    • 15、磁环线圈共模电感封装尺寸你知道怎么选吗
      15、磁环线圈共模电感封装尺寸你知道怎么选吗
    • 数据中心暖通设备
      数据中心的电气设备设计
    • 中低压配电实用技术.pdf
      中低压配电实用技术.pdf
    • 从0写自己的Linux x86操作系统
      分享一套操作系统课程——从0写自己的Linux x86操作系统,附源码+课件+开发工具+参考资料+磁盘映像下载。

      适用人群
      对操作系统内部工作机制感兴趣,想要设计操作系统的大学生、软件开发人员

      课程采用从0行代码编写的方式,教你如何写一个类似于Linux 0.11的x86操作系统,从而深入掌握操作系统的工作原理。

      课程大纲
      第一阶段:引导程序设计
          设计boot程序,接管计算机运行权
          设计loader程序,加载并解析操作系统内核
      第二阶段:多进程管理
          增加中断处理模块,可处理硬件中断和异常
          利用多任务机制,实现系统中多进程的运行
          实现信号量与锁,允许进程之间同步和互斥
      第三阶段:虚拟内存管理
          为系统增加页表,实现进程加载到虚拟地址
          利用分页机制,让进程之间相互隔离,运行互不影响
      第四阶段:tty与文件系统
          增加文件系统模块,可从磁盘上加载程序并执行
          支持标准输入输出文件,允许应用使用printf输出
      第五阶段:命令行shell实现
          实现命令行接口,解析命令行参数并执行
          创建自己的应用程序,并在shell中动态加载并执行
    • 基于python人工智能算法的五官识别设计资料
      基于python人工智能算法的五官识别设计资料
    • 基于ESP32-CAM的人工智能机器人设计资料
      基于ESP32-CAM的人工智能机器人设计资料
    • [2] 电容器与电容 (1)什么是电容器? 电容器是用于储存电荷的器件,其中包含一对或多对由绝缘体分隔的导体。容器通常由铝、钽或陶瓷等材料制成。各种材料的电容器在系统中使用时具有各自的优缺点,如表 1 所示。陶瓷电容器通常是理想的选择,因为其电容变化最小,而且成本较低。                 (2)  直流电压降额        
      HGno1 2023-05-29 23:42 182浏览
    • By Toradex秦海1). 简介嵌入式 Linux  由于运行平台通常资源受限同时对稳定性要求高,因此需要比较精简,那么针对 SSH 服务器/客户端应用,通常也不使用庞大的 OpenSSH,而是采用十分精简的 Dropbear SSH工具。Dropbear 是一个基于 MIT License 的开源软件,其一些基本信息可以参考如下软件发布页面:https://matt.ucc.asn.au/dropbear/dropbear.html 本文所演示的平台来自于Toradex
      hai.qin_651820742 2023-05-31 15:16 105浏览
    • 射频(RF)电路板设计虽然在理论上还有很多不确定性,但RF电路板设计还是有许多可以遵循的法则。不过,在实际设计时,真正实用的技巧是当这些法则因各种限制而无法实施时,如何对它们进行折衷处理,本文将集中探讨与RF电路板分区设计有关的各种问题。1、微过孔的种类电路板上不同性质的电路必须分隔,但是又要在不产生电磁干扰的最佳情况下连接,这就需要用到微过孔(microvia)。通常微过孔直径为0.05mm~0.20mm,这些过孔一般分为三类,即盲孔(blind via)、埋孔(bury via)和通孔(th
      攻城狮华哥 2023-05-30 11:27 203浏览
    • 阻抗匹配是指负载阻抗与激励源内部阻抗互相适配,得到最大功率输出的一种工作状态。阻抗匹配是微波电子学的一部分,也是射频电路中非常重要的一部分,主要用于传输线路中,以达到能够将所有高频微波信号传输到负载点的目的。回溯到原点,提高能源效率。阻抗,顾名思义就是对电路中电流起到阻碍作用的元器件。我们在射频电路中,又引入了特征阻抗和等效阻抗两个概念。特征阻抗是射频传输线的一个固有特性,其物理意义是在射频传输线上入射波电压与入射波电流的比值,或者反射波电压和反射波电流的比值。等效阻抗也是传输线理论的一个概念,
      cxtf004 2023-05-30 14:58 188浏览
    • [1] 压降 (1)什么是压降? 压降电压 VDO 是指为实现正常稳压,输入电压 VIN 必须高出所需输出电压 VOUT(nom) 的最小压差。 (2)决定压降的因素是什么?                           
      HGno1 2023-05-29 23:34 174浏览
    • 近日,经纬恒润AUTOSAR基础软件产品INTEWORK-EAS-CP成功适配智芯半导体的Z20K14x产品家族。同时,经纬恒润完成了对智芯半导体Z20K14X 产品MCAL软件适配和工程集成,为智芯半导体提供了全套AUTOSAR解决方案。  左图:经纬恒润AUTOSAR EAS CP软件工程配置页面  右图:智芯半导体Z20K14x产品板   通过本次合作,智芯半导体的芯片产品将以功能更加完善、性能更加量化、服务更加完整的状态面向车
      hirain 2023-05-30 11:12 243浏览
    • 在电脑内存条、显卡上,有一排金黄色导电触片,就是大家俗称的“金手指”。在PCB设计制作行业中的“金手指”(Gold Finger,或称Edge Connector),是由connector连接器作为PCB板对外连接网络的出口。关于“金手指”你知道多少呢?小编已做足了功课,今天就带大家全面了解PCB中“金手指”的设计,以及一些可制造性细节的处理等知识。“金手指”的功能用途1、“金手指”互连点当辅助PCB(如显卡、内存条)连接到主板时,会通过几个母槽中的其中一个插槽,如PCI、ISA或AGP槽,在外
      攻城狮华哥 2023-05-31 11:46 115浏览
    • 网约车行业竞争越来越卷,自动驾驶成为网约车平台重要的发力点,滴滴、T3出行、曹操出行等网约车平台相继对外宣布自动驾驶的计划并提出了“小目标”。滴滴发布两款自动驾驶核心硬件——“北曜Beta”激光雷达和三域融合计算平台“Orca虎鲸”,并宣布首款自动驾驶量产车型计划于2025年接入滴滴共享出行网络。T3出行联手轻舟智航在苏州启动Robtaxi的公开运营,并计划到2026年末,L4自动驾驶车辆商业运营达1000辆。曹操出行与吉利汽车达成战略合作,计划围绕出行平台构建集车内空间开发、定制车、智能驾驶、
      刘旷 2023-05-30 10:51 227浏览
    • 一、二极管基础 1、   基础知识 2、   各项参数: (1)    结电容       结电容有两种,分别是势垒电容和扩散电容。        势垒电容:PN结两端电压变化,引起积累在中间区域的电荷数量的改变,从而呈现电容效应,这个电容就是势垒电容。 扩散电容:当有外加正向偏压时,在PN结两侧的少子扩散
      HGno1 2023-05-29 22:55 173浏览
    •  近日,财政部会计司发布了《关于公布电子凭证会计数据标准(试行版)的通知》,为做好电子凭证会计数据标准深化试点工作,研究制定了9类电子凭证的会计数据标准。在通知的《电子凭证会计数据标准——全面数字化的电子发票(试行版)》指南中,明确了数电票报销入账归档的具体处理方式。    指南明确: 接收方取得数电票报销入账归档的,应按照《财政部 国家档案局关于规范电子会计凭证报销入账归档的通知》(财会〔2020〕6号,以下称《通知》)和《会计档案管
      科技财经汇 2023-05-29 20:47 190浏览
    我要评论
    0
    0
    点击右上角,分享到朋友圈 我知道啦
    请使用浏览器分享功能 我知道啦