Linux Camera驱动开发(fpga vs soc)

Linux Camera驱动开发(fpga vs soc)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        不管是mipi camera,还是dvp camera,都可以通过fpga芯片,或者是soc芯片对它们进行数据处理。实际处理过程当中,两者有很多的相似点,也有很多的不同点。今天,正好有机会可以讨论下。

1、支持camera数量不同

        对于fpga而言,支持的camera数量取决于内部资源的数量。最典型的fpga开发板,就是几个camera sensor接口,一个ddr,一个hdmi输出接口。如果本身fpga内部资源比较多,那么支持的camera数量就会多一点,反之则少一点。而soc支持的camera数量是固定的,少则一个都没有,多则3、4个,7、8个都是有可能的。

2、isp支持不同

        fpga内部没有isp。一般fpga通过i2c ip和csi2 & mipi dphy ip接入camera获取数据之后,就可以开始处理camera数据了。但是fpga内部是没有固化isp ip的,一般需要自己写,或者使用开源ip解决。大部分soc,除了低端的soc,大部分都有自带isp的,至少有一个入门的isp。这也是fpga和soc很大的一个区别。

        因此,如果不想使用isp,fpga在选择camera sensor的时候,可以优先挑选一些带isp的sensor。不过这样做有利有弊,有利的一点就是fpga不再需要isp处理了,不好的一点就是sensor的选择面少了很多。

3、实时性不同

        大多数使用fpga的场合,都是看中了fpga实时性高、低延时的特点。信号从camera拿到之后,经过电路的实时处理之后,投射到hdmi,这中间的过程是非常高效的。但是一般的soc,从camera到isp、video out,这中间除非厂家提供了完善的硬件加速机制,如果只是靠纯软件来处理camera数据,一般来说,处理流程都是很慢的,至少都是几百ms级别。所以,哪怕是soc,我们在处理camera数据的时候都要尽可能复用硬件加速机制,尽可能减少软件的参与。

4、功能不同

        如果只是采样、显示、保存图片,那么fpga有很大的优势。这中间,如果还有一些自定义算法,需要硬件加速完成,那更是fpga的强项所在。但是,实际应用中我们除了图片采样之外,还需要对视频进行h264编解码处理、进行npu处理,这些都是fpga本身所不具备的。不仅如此,现在很多设备都需要tcp/ip联网处理,这对soc来说很容易实现。但是fpga要想联网,做起来就没有那么方便了。

5、成本不同

        一般的soc+ddr成本不是很高,少则几十元,多则几百元。而fpga处理,一般都不便宜。好一点的fpga,都要数百元起步。不仅如此,fpga开发人员少,一般不太好招聘,而soc的软件开发,相比较而言,这方面的人才要好找的多。

6、两者复用的方式

        鉴于fpga和soc的特点,对于特殊的一些场合,我们都是习惯于fpga、soc、fpga+soc这样分开来使用。如果客户对延时要求很高,同时对成本不敏感,可以直接用fpga实现。反之,客户希望实现的功能比较多,对延时、自定义算法有一定容忍度,这个时候使用soc是最好的。最后,如果客户是那种既要、又要、还要的类型,对成本不是特别敏感的话,这种场合可以camera sensor先接入fpga开发板,再接入soc,这也是可以的。至于fpga和soc通信的接口,可以是csi2 tx/rx,也可以是pcie,这个根据不同的soc灵活做出选择。

        对于成本要求特别严格的场合,这种情况下只能用mcu+dvp接口的形式来解决了。选择的camera sensor只能是一些低价的、带isp的sensor,只有这样才能满足低成本的要求。

Read more

具身智能演示深解---从盲行到跑酷:深度视觉如何赋予足式机器人极限运动能力

具身智能演示深解---从盲行到跑酷:深度视觉如何赋予足式机器人极限运动能力

1. 引言:为什么需要深度视觉 在过去数年间,基于强化学习的足式机器人运动控制取得了长足进展。早期的工作——以ETH的legged_gym框架和IsaacGym并行训练环境为代表——已经证明,仅依靠本体感知(关节编码器、IMU等)就能训练出在连续复杂地形上鲁棒行走的策略。这类方法通常被称为"Blind Locomotion",即机器人不借助任何外部视觉传感器,完全依赖对自身状态的感知来适应地形变化。DreamWaQ(KAIST, ICRA 2023)等工作进一步证明,通过非对称Actor-Critic框架配合隐式地形估计,四足机器人甚至可以在户外多样地形上实现长距离鲁棒行走。 然而,Blind Locomotion存在一个根本性的局限:机器人无法预知前方地形的具体形态。当面对跳箱、深沟、高台阶等需要提前规划动量和轨迹的极限地形时,纯本体感知的策略往往力不从心。跑酷(Parkour)场景要求机器人在接近障碍物之前就判断出障碍物的高度、宽度和距离,并据此调整步态、积累动量、选择起跳时机。这些决策必须依赖对前方环境的主动感知——深度视觉由此成为从"能走"到"能跑酷&

《智能仿真无人机平台(多线程 V4.0)技术笔记》(集群进阶:多无人机任务分配与碰撞规避)

本次实现的是一个具备任务分配、入侵者检测与攻击、自主巡逻功能的智能无人机可视化平台,采用多线程机制保证无人机、任务、入侵者的并发运行。整个项目共包含7个核心类,下面逐类进行详细解析。 1. Drone 类(无人机核心实体) 该类是无人机的实体定义,封装了无人机的位置、速度、尺寸、状态等属性,同时提供了绘制、移动、状态修改的核心方法。 packageduoxiancheng.xq0129.dronev4;importjava.awt.*;/** * @author xuqiang * @date 2026/1/22 16:07 * @description 无人机实体类,封装属性与核心行为(绘制、移动) */publicclassDrone{int x,y;// 无人机坐标(左上角)int speedx,speedy;// 横、纵方向速度int size;

使用 NVIDIA Isaac 构建医疗机器人:从仿真到部署

摘要 一篇实用指南,手把手教你如何采集数据、训练策略,并将自动化医疗机器人工作流程部署到真实硬件上。 简介 仿真一直是医学影像中弥补数据缺口的重要手段,但在医疗机器人领域,它过去往往速度太慢、系统割裂,或难以迁移到现实应用中。 NVIDIA Isaac for Healthcare 是一个专为 AI 医疗机器人开发者打造的框架,提供从数据采集到训练、评估再到部署的全流程工具链,适用于仿真环境与真实硬件。特别是在 v0.4 版本中,Isaac 提供了一个SO-ARM 入门工作流以及自定义手术室教程,帮助开发者低门槛快速构建并验证自动化手术机器人。 * SO-ARM 入门工作流https://github.com/isaac-for-healthcare/i4h-workflows/blob/main/workflows/so_arm_starter/README.md * 自定义手术室教程https://github.com/isaac-for-healthcare/i4h-workflows/blob/main/

无人机开发分享——基于强化学习的无人机端到端飞行控制算法开发

无人机开发分享——基于强化学习的无人机端到端飞行控制算法开发

之前分享过很多关于机载智能软件的开发方法,今天的分享主题是飞控算法。目前人工智能算法应用广泛,应用场景更多的用在了感知、决策等方向。想必很多搞飞控的人都会思考,传统的控制算法亘古不变,如何求得创新,如何结合时兴的人工智能搞一搞。今天就来分享下这个主题。 人工智能和飞控结合,有几个方向可选,比如 思路 1:AI 增强传统控制,用 AI 解决传统控制的 “建模难、抗干扰弱” 问题,保留传统控制的稳定性(如 PID、MPC); 思路 2:强化学习(RL)端到端控制,无需系统模型,通过强化学习训练智能体(Agent)直接从 “传感器输入→控制输出” 映射,适合复杂环境(如动态避障、多机协作); 思路 3:感知 - 控制一体化,跳过单独的感知模块(如目标检测、障碍物分割)