当前位置: 首页 > news >正文

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲

本文是Andrew演讲的中文翻译,你可以直接观看视频了解演讲的全部内容,此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块,你可以在 Arudpilot官网(https://ardupilot.org) 获取该视频:

你也可以直接通过Bilibili链接(https://www.bilibili.com/video/BV1N5B8YbEbL/ )跳转该视频。

【翻译中文版】DroneCAN 2024最新开发进展 Andrew在ardupilot开发者大会2024上的演讲

非常感谢。我很高兴来到加贺市。市长先生,非常感谢您精彩的介绍,我必须说,这次会议比澳大利亚的会议组织得好得多,Drone Japan做得太棒了,Randy和整个团队组织了这次会议。

我今天的演讲主题是系统更新(Systems Update),这实际上只是一个借口,有各种各样的技术,这些技术使ardupilot的底层在过去的18个月里发生了变化,距离我们上次在堪培拉举行的会议已经过去了18个月。

刚开始,我通常会向你介绍一下ardupilot的开发速度,我们处理了大约2500个PRs,大约从上次会议开始,在过去的18个月里,有超过8000个补丁 ,42万行代码发生了变化,我们有314位个人贡献者为主代码库贡献了代码,这太棒了!这些贡献者中有很多人就在这里。非常感谢大家对ardupilot的贡献。

我今天演讲的真正主题是连接和桥接,基本上,在过去的18个月里,我们做了很多工作,将我们在ardupilot中支持的所有不同类型的总线连接起来。我这里有一架示范的小四轴。这是一台小型Hexsoon EDU-450,如果你走到前面看到它,你会看到它有很多额外的部件,这些部件通常不会出现在这种规模的飞行器上,它展示了很多新的连接选项。

在过去的18个月里,ardupilot在以太网连接方面做了很多工作,因此网络支持已经取得了很大进展,我们开始看到以太网被部署在更多的车辆中,这太棒了!我们现在在IPv4上都有了虚拟串行端口,所以我们在网络上有了虚拟串行端口。我们在can总线上也有虚拟串行端口,允许我们传输所有不同的串行协议,我们支持通过以太网传输dronecan协议数据,稍后我会详细讨论这个问题。

IPv4网络通过串行桥接,所以我们可以通过快速串行端口连接网络。我们有连接虚拟设备和真实设备的软件在环仿真,我们有了基于CAN总线的R/C输入,总的来说,我们有很多不同的数据传输方式聚集在一起。

顺便说一下,在这个演讲中,如果你想提问,请大声喊出来

【有人在提问,但听不到具体问的什么,后面Andrew复述了问题】

在我配置的这个特殊设备中,是12.5Mbps。汤姆的问题是,他问IPv4串行链路,串行链路有多快?通过串行网络建立的典型串行链路是12.5Mbps。作为参考,ardupilot用户使用的大多数CAN设备都是1Mbps,这意味着我们实际上可以通过快速串行端口获得的带宽,比我们通过直接CAN端口(bxCAN)获得的带宽高12倍。当然,你可以配置为使用FDCAN的CAN端口,最高可达8Mbps。但串行总线实际上比CAN总线速度更快。我一会要展示的这个设备,它使用12.5Mbps的串行链路,使用点对点协议。

虚拟串行端口基本上允许任何ardupilot串行协议通过IPv4网络传输,所以最常见的用例是,例如,一个虚拟的mavlink TCP或UDP端口,以便您可以连接。比如我这里通过地面站连接了端口,这可能很难看到,我用MAVProxy和这个小无人机建立了两个连接,其中一个通过Herelink,使用91600波特率的Herelink,第二个连接是通过以太网的TCP连接,我有一个以太网连接,连接到serial to ethernet适配器,所以我在飞控中获得了12.5Mbps。

这架无人机的飞控是CubeOrange Plus,CubeOrange Plus没有原生以太网,但是用我这里的小适配器,你可以得到12.5Mbps的IPv4网络,在那些基于H7 MCU的飞控上,像CubeOrange、CubeOrange Plus和许多其他H7飞控上。

过去18个月发生的另一件事是大量用于网络的lua绑定,现在可以编写能够访问本地网络资源的lua脚本了。有了TCP/IP,你就可以和其他lua脚本,和其他组件比如配套计算机,和基于IP的无线电设备,和摄像机进行通信,除此之外你也可以和互联网资源进行通信。所以你可以有一个lua脚本,持续从云端获取数据,lua脚本可以直接运行在飞控上,一个基于STM32的飞控,或一个基于Linux的飞控,当你飞行时它可以访问互联网资源,这可以为你在你的飞控内的操作提供丰富的可能性。

我最近有一个非常有用的案例是和热像仪通信,比如ZT-30,有一个lua脚本,直接通过UDP和热像仪通信,查询热像仪的热数据,然后将其打包成数据包发送到地面站进行地理投影。这是我和某大学一起做的一个火灾观测项目的一部分,还有彼得和米歇尔,他们就在观众席上,它为与基于IP的设备交互提供了巨大的可能性。我认为,在未来几年,我们将看到越来越多的飞机使用IPv4以太网作为车辆内部通信的核心骨干网。

有问题吗?请再说一下。Q:你能引导加载吗?

所以问题是:能通过它引导加载吗?

可以的,实际上,我们确实有一个IPv4引导加载程序

既然我在这里,我就来演示一下

这是一个网页,该网页直接在小型飞控上运行,以及这里的这些小设备,有几个不同的可用设备,这是来自CubePilot的,这是一个非常小的以太网到串行和CAN适配器,我马上就会把它传递给大家;然后这个是BotBlox DroneCAN设备,它有一个小的五端口以太网交换机

这是一个很小的网页,这有一个 Reboot for firmware update,它进入一个基于网络的引导加载程序,这意味着你可以通过以太网更新设备上的固件,您的CAN外设都可以从远程地面站通过以太网更新,这些小设备的固件本身可以通过IPv4网络更新,因为我们在这些设备上有一个基于以太网的引导加载程序。

既然我在这里,不妨展示一下,这是一个用Lua编写的web服务器,如果你愿意,你可以用Lua编写一个完整的web服务器,这是一个非常简单的例子,我知道Tom有一个更复杂的web服务器,里面有很多javascript和漂亮的图片等等,我不太擅长javascript,所以我只做了一个非常基本的web服务器在这些小设备上运行。

而这个网络服务器可以,例如,访问你的日志,所以我在这里访问这个设备上的日志,我可以通过一个IP无线电从地面站下载这些日志,这实际上是通过一个Herelink Air Uint(一个产品的名称),我这里有一个Herelink,我通过我的笔记本电脑连接到Herelink,它将连接到无人机上的Air Uint,Ari Uint有一个以太网连接,连接到无人机上的小以太网交换机,然后连接到CubeOrange Plus飞控。

当我查看这些日志时,通常会使用点对点协议的串行到以太网连接器

以及这些设备中的以太网支持来访问飞行控制器上的日志

事实上,你可以通过这个下载日志,比直接用USB下载要快

从地面站远程获取日志比插入USB电缆获取日志要快得多

实际上您可以获得每秒约900kb的数据

这大约是直接USB连接速度的两倍

好了,我已经提到了网络引导加载程序和web服务器

现在我们已经有了基本的基础

我所期待的是

现在它已经准备好交给那些更好的

web开发人员来创建更好的web界面

我知道Peter 将会谈论一些新的基于 javascript 网络的界面

我希望我们将来能够将其直接放到车辆上

以便能够通过网络服务器

在飞控上直接提供更好的全面监控界面

就像我说的,汤姆已经在他的无人机里开发了一个

这是一些小型的串行转以太网的设备

这些都是基于AP_Periph的设备

AP_Periph 是我们为 ardupilot 设计的外围基础设施

它使我们能够创建GPS、空速传感器、指南针、测距仪

以及您可能需要作为无人机外设的所有其他不同的东西

网络带来的是能够支持以太网和IPv4网络连接的外设

我将分发给大家看一下

Andrew离麦克风太远了,听不清

我刚刚开始分发的这个小设备是CubePilot

一个小型的以太网CubeNode设备

它提供CAN总线,以太网和高速串行

因此你可以把这个小设备插到没有以太网的现有飞控上

然后你就可以在飞控上获得以太网

你也可以通过以太网访问你的CAN总线

我马上就会演示这个

不幸的是,只有一个CubePilot用以传递

屏幕右边的这个是BotBlox DroneNet

它和左侧设备的主要区别在于

它是一个更大的设备,内置了一个五端口的交换器

它是一个相当智能的交换器,真的是一个了不起的设备

我在我这架无人机上用的就是这个BotBlox DroneNet

这个五个端口的交换器意味着你可以把很多设备

很多以太网设备集成到飞行器上,把它们连接到飞控上

你可以连接你的云台,你的IP无线电

以及任何其他基于以太网的设备,都可以一次插进去

并且之后你就可以在lua中访问交换器的监控

继续下一页PPT

接下来这个是最近的更新

这就是基于多播UDP的CAN总线

基于前面的基础,现在我们在ardupilot中有了以太网

那么接下来的重点是,我们需要一套协议来利用以太网

很明显,有现有的协议

比如视频流RTSP,这是现有的IP无线电协议

但我们真正想要的是一套成熟的协议

可以反映传感器、执行器,以及飞行器、潜艇或漫游者的状态

最明显的协议就是DroneCAN

所以这部分内容就是将DroneCAN引入以太网或IPv4网络

这意味着我们得到了DroneCAN协议的全部力量

在车辆的IPv4以太网网络上有数百种不同的消息和控制机制

这意味着,例如,有一个以太网端口的配套计算机

可以看到并控制你车上所有的can设备

因此你可以去监控所有的ESC、伺服器、空速计的can流量

您可以使用它来更新固件

从而基于以太网的设备可以完全参与您的DroneCAN网络

如此这般,DroneCAN协议不再局限于CAN总线

它也适用于您的以太网

那么我来做个演示

我这里有...,这是dronecan_gui_tool上位机

这是dronecan_gui_tool

我之前已经把它和飞控建立了连接

你可以看到那些ESC

我马上就会讲到这些来自VimDrones的神奇的ESC

飞行器上的DroneCAN ESC通过can总线与飞控连接

然后CAN总线被桥接在点对点协议链路上

最大为12.5Mbps的点对点协议链路

该链路连接到以太网交换机

以太网交换机通过笔记本电脑桥接到地面站

通过我们基于Herelink建立的网络链路

此外,实际上我也有一条直接的以太网电缆来演示这一点

所以我实际上有一台假装是配套计算机的设备

所以我有两个连接,两个以太网连接,或者两个网络连接到飞机

所以我现在看到了这些ESC的状态,我看到了这里的流消息

我可以使用上位机去运行电机

现在这里有几个电机在运转

我把编号搞错了

现在是启动电机,由地面站(gui_tool)控制

可以看到所有从ESC到地面站的遥测信息

这些消息是在DroneCAN的Message中通过以太网传下来的

我在这里只是展示了你拥有的各种能力

现在这条数据链路有足够的速度(12.5Mbps)

我甚至不需要启用过滤

整个CAN总线的数据可以很轻松地把通过这条链路

因为我们有12.5Mbps,它很容易地承载整个CAN总线

我可以切换到另一个can总线

我可以连接到另一个,我现在就不麻烦了,非常轻松

我可以看到它们在这里,它在另一个can总线上,并连接到它

这确实为地面站管理CAN设备提供了有趣的可能性

我认为,特别是配套计算机

能够通过以太网访问所有CAN设备将会非常的棒

有什么问题吗

是的 乔治 我可以 我可以重复问题

在这种情况下

将机载的DroneCAN外设通过以太网连接在一起是否是个好方案

或者物理CAN总线仍然是一个更好的方案?

我认为,这些设备,无人机飞行时的控制信号

还是直接通过物理CAN总线连接与传输

我演讲的最后一张幻灯片

我将讨论未来的车辆架构

我怀疑,对于更大的车辆

在大型车辆上迁移到基于以太网的主干是值得的

我将在后面讨论更多

所以George的问题是

是直接使用CAN总线连接外围设备更好?

还是我们应该通过以太网?

在后面的幻灯片中会有更多的内容

您还可以将软件在环仿真与真正的can网络混合使用

如果我在这里启动一个SITL模拟,ardupilot运行你的模拟车辆

例如在Mission Planner中运行模拟

那么它将能够看到真实车辆的escs和gps

因为这些被投射到以太网上的多播UDP网络上

该网络是与居家进行SITL模拟的用户相同的网络

这意味着您可以居家开发can总线设备,并且可以控制这些设备

并且可以通过多播UDP网络进行模拟和物理设备混合仿真

我发现这非常有用

我对一些用户做过的一件事是

当一个远程用户有一个CAN总线设备的问题,我想要调试

我让他们使用我们的支持系统:support.ardupilot.org

把所有的遥测数据发给在澳大利亚的我

稍后我会展示更多关于 supported.ardupilot.org 的内容

遥测数据包括所有通过support.ardupilot.org的CAN总线流量

然后我可以做的是,将从用户输入的链接连接到本地仿真

然后我能够在本地仿真与他们的远程设备交互

这些物理设备在另一个国家,来自世界的另一边

出现在我的本地仿真里

这意味着我可以测试这些物理设备, 例如

如果有一个CANGPS行为不正常

我可以连接这个远程CANGPS或者连接我这里的本地副本

然后我可以编辑代码,重新编译,并重新连接

看看我是否已经解决了问题

就好像我坐在他们旁边,不管他们的物理设备在哪里

这是一项非常强大的技术 可以将物理世界与模拟世界连接起来

这可以通过网络从世界的另一端远程完成

我们有一个叫做DroneCAN Bridge的通用工具

它是pydronecan的一部分

它允许你在不同的传输之间进行n路桥接

因为DroneCAN支持CAN总线

并且它也支持slcan和mavcan以及多播UDP和TCP

你可以把所有这些连接在一起,创造出有趣的网络

我提到了支持系统:support.ardupilot.org

我把这个小窗户挪开

我知道你们很多人都知道ardupilot支持系统

有多少人用过ardupilot.support.org系统?

也许你们中有三分之一的人

你们中有多少人是作为支持工程师,而不是作为用户使用它的?

是的,所以说真的

你们所有人都应该给自己弄一个支持工程师的ID来远程支持别人

如果你还没有用过它

我强烈建议你去support.ardupilot.org看看它是如何工作的

自从上次会议以来

support.ardupilot.org的使用率增加了很多

我查看了系统的日志

我们已经有超过8400个基于这个系统的支持会议

自从我们在上次会议之前不久启动了这个系统后

并且有1.95亿个mavlink数据包通过支持系统

这是相当大的mavlink流量

确实有一些合作伙伴经常使用它来支持他们的用户

但很多其他的ardupilot合作伙伴还没有利用它

如果你不知道它,基本上它是一种方式

当你试图帮助你的一个客户,你可以让他们按下这个按钮

你们可以看到这个按钮在幻灯片的右下角

这是Mission Planner中的Support Proxy按钮

这就把他们的地面站和你这个支持工程师连接起来

你需要一个支持工程师的id,我可以在系统中给你分配一个id

这样就在他们的电脑和支持工程师之间建立了一个安全的连接

然后你可以得到它们所有的参数,所有的遥测数据

你还可以看到它们的can总线

实际上,您可以查看它们的can总线上的参数

并且可以远程调试问题

因此它是一个非常有用的工具来支持你的终端用户

如果你们中有人没有支持ID,请问我

或者在你们的合作伙伴支持频道上问

我们可以为你们的公司创建一组支持工程师ID

在过去的一年里,我们一直在继续研究各种事物

现在我们有了一个新的 HAL

它实际上是几年前我们有过的HAL的复兴

叫做HAL_QURT

所以HAL_QURT

QURT它运行在一个可爱的小的叫做VOXL-2的飞控上

我们找到Eric了吗?是的,Eric在后面

我们从ModalAI请来了Eric

Eric一直在和我们密切合作

与Eric合作非常棒

因为他非常了解QURT和VOXL-2的内部结构

所以这架小型多轴是一个漂亮的基于视觉的开发工具

这是ModalAI技术的试验台

他们有一个可爱的视觉里程计

事实上,他们在ModalAI系统中有两个视觉里程计系统

我们几年前就有了这个QURT

现在我们重新启用了它,它工作得很好

右下角的图片是空中书写的一个例子

我所做的就是让这架小无人机在户外飞行

它完全依靠视觉里程计飞行,它带着相机飞行,在空中书写

绿色的是视觉里程计路径,红色的是GPS显示的

但实际上不确定是GPS更准确还是视觉里程计更准确

但它确实能飞

通过一个小型视觉飞行里程计系统,它可以飞得非常好

这是一个非常紧凑的小板,功能非常强大

所以如果你有一个基于视觉的飞行器和视觉飞行里程计

VOXL-2系统是很值得研究的

有什么问题吗?

好吧。现在来谈谈我目前痴迷的事情

在过去的几个月里,我对这个叫做AM32的东西非常着迷

AM32是一个开源的ESC固件

它已经存在了好几年

但当BLHeli32停止向您提供固件时,它得到了真正的推动

停止向您提供固件

现在很多ESC供应商正在转换到AM32开源固件

它确实是一个很棒的固件

巨大的创造力,特别是 AM32 的首席开发人员 AlkaMotors

在开发这个固件方面做得非常出色

我已经思考了一段时间了

如果Ardupilot社区中有更多的人

可以使用开源ESC固件,那将是非常棒的

这样我们就可以在飞控和ESC之间建立更紧密的关系

并且对我们来说,调试ESC问题更容易了

因为在Ardupilot车辆中遇见ESC问题太常见了

通常很难找出ESC内部出了什么问题

因此,拥有一个开源 ESC,我们可以在其中添加额外的调试信息

可以获得有关ESC中发生的情况的真正详细的内部信息

这是一个巨大的机会

AM32是一个非常灵活的设计

目前,它支持八种不同的微控制器,有STM32、GD32和AT32

此外我一直在做CHV23,它很快就会被合并到AM32主固件中

当然,它支持DShot, BDShot和PWM输入

它支持EDT(扩展DShot遥测),给你反馈RPM,电压和电流

这就是标准的东西,和你用blhelixx得到的东西很相似

和你用BLHeli32得到的东西很相似

但AM32真正令人兴奋的地方在于它是开源的,我们可以扩展它

我们最近做的一件大事

就是在AM32上增加了对DroneCAN的支持

这辆车有四个AM32 DroneCAN ESC

这些ESC是由VimDrones制造的

那么,HuiBean,你想站起来打个招呼吗?

这是来自VimDrones的开发者HuiBean

我和他一直在密切合作,他是另一个AM32开发者

他一直在创建AM32 DroneCAN ESC

我要在房间里传一些,你们可以看看,因为它们真的很了不起

我还要把这个development-ESC传递给大家

下一张幻灯片是它的图片,这是development-ESC

这太棒了。这是一个小型ESC,它有一个内置电机

有一个小型的4000Kv电机,它有CAN总线和调试端口

都在一个小PCB上

所以对于一个软件工程师来说

收到来自VimDrones(HuiBean的团队)的

这个development-ESC真是太棒了

因为这推动了DroneCAN AM32的开发

我要把它们传下去

我还有这些小型ESC

微小的由VimDrones制造的DroneCAN AM32 ESCs

Andrew下去分发电调去了

这两个电调都是国内团队VimDrones做的

它们非常酷,非常漂亮的小型ESC

所以,我们现在在固件中拥有的是

我们在过去的一两个月里才开发出这个固件

但是我们已经有了DroneCAN参数管理

有一个完整的DroneCAN引导加载程序,引导更新固件

我们有ESC遥测

我们已经有四种不同的ESC设计 还有更多的在路上

我一直在被联系

几乎每周都会有一个供应商就创建AM32 ESC联系我

我预计很多供应商将开始制造自己的 ESC

因为您可以根据这个参考设计进行设计

并且可以非常轻松地构建适合您车辆的新型 ESC 设计

这是你们可以看到的一些ESC

左边是VimDrones的development-ESC

右上方的这个,是Sierra的,叫做Sierra脉冲ESC

右下角的这个,看不太清楚

这是TBS(Team Blacksheep)的12S ESC

现在,我只有一张没有DroneCAN支持的照片

但是有一个基于AT-F415微控制器的新版本

我有一个与 DroneCAN 配合使用的测试版本

它是一个 90A 12S ESC,完全支持 DroneCAN

很高兴看到像 Team-Blacksheep 

这样享有盛誉的制造商推出更大一点的 ESC

trappy 我相信你就在观众席的某个地方

是的!站起来打个招呼

这是来自Team-Backsheep的trappy

所以和TBS合作非常棒

他们即将推出他们的90A 12S ESC的DroneCAN版本

然后中间的这个微小的微型的,纳米的

就是我正在传递的ESC之一

蒂姆的问题是,没有DroneCAN,遥测技术是否有效?

有效,你在DShot上得到EDT(扩展DShot遥测)遥测

ardupilot支持这一点

和BLHeli_32一样,你得到RPM,电压,电流和温度

所以你只需要DShot(扩展DShot遥测)支持

就可以获得基本的遥测

有了DroneCAN,你可以得到更多的数据

所以我预计,至少对于大型车辆

大多数人会使用基于DroneCAN的ESC

好了,我想谈谈关于DroneCAN AM32 ESs的未来展望

因为拥有开源固件给了我们用这些ESC做更多事情的绝佳机会

我想做的是开始在飞行控制器和ESC之间建立更紧密的关系

你在飞行控制器上有一个lua脚本

它向ESC发送信息,根据你的飞行阶段改变ESC的设置

最明显的例子是你有一个倾斜旋翼

所以飞行器的电机是有垂直的,当你在悬停和向前飞行时

ESC的最佳设置在向前飞行和悬停时是完全不同的

所以如果你有一个长航时无人机

你想要最大限度地利用ESC

我想要能够告诉ESC我现在在向前飞行

更改为此替代参数集,不同的高级设置

关闭互补 PWM,更改制动级别,在飞行时更改 pwm 频率

以获得适合您的特定车辆的最佳设置

我们也可以在悬停时做这个

如果你处于非常安静的状态你不需要非常快速的控制

你可以调整ESC以获得最大的效率

然后在你需要的时候调整到最大的控制

因为它应该能够非常非常快地改变

比如在几毫秒内,在ESC的不同配置之间

现在,这些都是推测性的

我还没有对这种类型的变化做过很多测试

但我认为它开启了一些有趣的可能性

这是我上周刚刚添加的一个新Message,叫做FlexDebug

这不仅适用于AM32 ESC

也适用于任何制造DroneCAN外设的人

这是什么?这是一个新的DroneCAN消息

允许外设将任意的调试或内部数据

从设备发送到飞控并进入lua脚本

在这个特殊的例子中

我在这个飞行器上运行

我让飞行器发送了一个数据结构

里面有很多关于ESC内部发生的事情的详细信息

然后我让它出现在地面站上

我来展示一下这里发生了什么

如果你看这里,这是我的MAVProxy控制台

我要进去看看这个小图表

我现在画的是ESC内部的换相间隔

所以如果我真的启动了一些电机

你会看到它现在实时显示了换相间隔

我需要启动其他的电机,我们应该开始实时遥测了

它的作用是,你可以看到它在这里的数据流

这是FlexDebug消息的一小部分

FlexDebug消息只是一团数据

它以你想要的速率从ESC内部发送原始数据结构

在这种情况下,我发送25Hz,但也可以是200Hz

你正在发送这些原始的调试数据

这些调试数据可以在飞控上运行的lua脚本中使用

lua脚本可以将数据记录到我们的ardupilot板载bin日志中

或者它可以,在这种情况下

我将它作为名称-值流发送到地面站

或者你可以对此做出决定

Message非常简单,这就是这里的Message

这是一个非常简单的Message

我所做的是它有一个消息id,其中有一个保留区域

因此每个供应商可以保留他们自己的调试消息id范围

我期待更多正在开发他们自己的外设的ardupilot供应商

或者正在开发他们自己的专有设备的供应商,专有ESC

我希望像xxxx和xxxx等供应商将添加此消息

以便从他们的设备发送快速内部信息

并能够在ardupilot飞控中进行日志记录

这是试图解决我们在esc和伺服系统中遇到的一个核心问题

我昨天和xxx的人谈过

从他们的伺服器发送这个消息的可能性

从他们的伺服器获得内部调试信息

发送到飞控中进行记录和转储到地面站

我认为这将是一种调试复杂设备的绝妙方法

好了,差不多讲完了

这是最后一张幻灯片,我想谈谈ardupilot未来的架构

在右下角的图片 是从谁那里借来的,因为我不擅长画图等

随着飞机变得越来越大,越来越复杂

它们有越来越多的执行器,越来越多的设备

在过去的几年里,大多数大型车辆的标准都在向CAN总线转移

我认为值得考虑的一件事是,在接下来的几年里

像这样的交通工具是否会开始转向以太网骨干网

使用以太网到CAN适配器

这些小设备,我正在分发的其中一些,比如CubePilot

这个小设备它是以太网到串行适配器

它也是以太网到CAN适配器

这意味着您可以将它们作为车辆的外设从而拥有以太网主干网

然后连接到 CAN 总线外围设备

更好的是,我希望开始看到具有本机以太网支持的外设

我很乐意为AM32 ESC添加本地以太网支持

从而您可以将以太网电缆直接插入ESC

这就提供了一个有趣的机会

我们可以使用以太网链路聚合这样的设备

允许在车辆周围有冗余的以太网总线

如果你丢失了一个总线...

内置在这个BotBlox上的小交换机,以太网交换机DroneNet

是一个非常智能的小交换机

它可以做一些像链路聚合这样的事情

这意味着当你在车辆周围有多路总线时

如果你失去了其中一个以太网总线

它会自动将流量转移到另一个以太网总线上

同时所有的流量仍然可以通过

我认为,在未来几年内

这对于大型车辆来说将是一种绝妙的方式

可以拥有一个真正可靠的高速主干网

该主干网可以通用,适用于其视频设备、IP 无线电

以及所有不同类型的设备、执行器、传感器等

我的演讲到此结束

有问题吗?在我结束演讲并交给下一位演讲者之前

你提到过lua现在可以承载网页吗?

是的,的确,是的

这是否意味着在ardupilot上,我们可以运行自己的GCS?

是的 你可以 确实 是的 我们有所有需要的钩子

所以我今天的演讲确实展示了我们所能做的所有基础设施

但是我们还没有为这些部分开发用户界面层

有些改进了很多

像来自VimDrones的HuiBean确实改进了dronecan_gui_tool

我来展示给你看

在这里,例如,你会注意到这个界面

这个ESC界面,你可能以前没有见过

所有这些遥测信息都直接显示在ESC管理工具中

如果我去看参数,这些是其中一个VimDrone的ESC的参数

这是在飞行器上运行的小型ESC所有的内部调整和控制参数

HuiBean做的其中一件事是

我们可以用STARTUP_TUNE编辑器来编辑STARTUP_TUNE

所以我们需要更多这样的东西来创造更好的界面

我们已经有了基础

我们可以创建lua脚本,可以用javascript创建复杂的网页

我们有服务器端lua支持,在web html中嵌入lua脚本

可以访问车辆上任意的lua操作、参数等。

所以你的网页在你的地面站上运行

并访问所有数以百计的lua功能

现在这些功能在你的飞控中也可用

这为你的飞行器创造真正丰富的受控环境提供了巨大的机会

但我们需要优秀的网络开发人员

他们可以利用这一点开发出漂亮的界面

希望在未来的演讲中,在未来的几年里

我们可以展示这些类型的新界面,新功能

还有问题吗 好的 非常感谢大家。

相关文章:

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲

本文是Andrew演讲的中文翻译,你可以直接观看视频了解演讲的全部内容,此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块,你可以在 Arudpilot官网(https://ardupilot.org) 获取该视频: 你也可以直接通过Bilibili链…...

UDP客户端服务器通信

在这篇博客中,我们将探索 UDP(用户数据报协议) 通信,简要地说,UDP 是一种无连接、快速但不可靠的通信协议,适用于需要快速数据传输但对丢包容忍的场景,比如视频流和在线游戏。就像《我是如此相信…...

适合中小型公司的自动化测试的测试框架,OpenSourceTest

适合中小型公司的自动化测试的测试框架,OpenSourceTest 文档地址: http://docs.opensourcetest.cn/代码仓库: https://github.com/chineseluo/opensourcetest安装方式: pip3 install opensourcetest -i https://pypi.tuna.tsin…...

实现跨语言通信:Rust 和 Thrift 的最佳实践

前言 在分布式系统中,服务之间高效且安全的通信至关重要。Apache Thrift 是一个被广泛应用的跨语言 RPC(远程过程调用)框架,它支持多种编程语言,包括 Rust。Rust 以其卓越的性能和内存安全保障,成为越来越…...

js判断空对象

1. 使用 Object.keys() 方法 Object.keys(obj) 方法返回一个包含对象可枚举属性名称的数组。如果返回的数组长度为 0,表示对象为空。 const isEmpty (obj) > Object.keys(obj).length 0;// 示例 const emptyObject {}; const nonEmptyObject { key: value …...

visionpro官方示例分析(一) 模板匹配工具 缺陷检测工具

1.需求:找出图像中的这个图形。 2.步骤 使用CogPMAlignTool工具,该工具是模板匹配工具,见名知意,所谓模板匹配工具就是说先使用该工具对一张图像建立模板,然后用这个模板在其他图像上进行匹配,匹配上了就说…...

PyCharm中Python项目打包并运行到服务器的简明指南

目录 一、准备工作 二、创建并设置Python项目 创建新项目 配置项目依赖 安装PyInstaller 三、打包项目 打包为可执行文件 另一种打包方式(使用setup.py) 四、配置服务器环境 五、上传可执行文件到服务器 六、在服务器上运行项目 配置SSH解释…...

cocos creator 3.8 合成大西瓜Demo 11

界面上的Node节点: 背景 警戒线 三面墙 初始位置节点 水果容器 先分组吧,墙 地板 水果 创建预制体 先挂一个脚本 刚体碰撞器先弄上再说 import { _decorator, Component, Node } from cc; const { ccclass, property } _decorator;ccclass(FruitData) e…...

Vue前端开发-动态插槽

不仅父组件可以通过插槽方式访问并控制子组件传入的数据,而且可以控制传入父组件时插槽的名称,从而使不同的插槽根据名称的不同,使用场景也不同,例如在一个小区详细页中,可以根据小区类型,调用不同名称的详…...

使用easyexcel导出复杂模板,同时使用bean,map,list填充

背景 在使用easyexcel导出时,如果遇到一个模板中同时存在 一部分是实体类中的字段,另外部分是列表的字段,需要特殊处理一下,比如下面的模板: 这里面 user, addr 是实体类(或者map&#xff09…...

最大值(Java Python JS C++ C )

题目描述 给定一组整数(非负),重排顺序后输出一个最大的整数。 示例1 输入:[10,9] 输出:910 说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 输入描述 数字组合 输出描述 最大的整数 示例1 输入 10 9输出 910解题思路 题目要求 是:给定一…...

17.5k Star,ThingsBoard 一款开源、免费、功能全面的物联网 IoT 平台 -慧知开源充电桩平台

项目介绍 ThingsBoard是一个开源、免费、功能全面、灵活易用的物联网(IoT)平台,专注于数据收集、处理、可视化以及设备管理。它提供了一个全面的解决方案,用于构建和管理物联网应用。支持从各种设备收集数据,通过内置…...

《C++ 与神经网络:自动微分在反向传播中的高效实现之道》

在深度学习蓬勃发展的今天,神经网络成为了众多领域的核心技术驱动力。而反向传播算法作为训练神经网络的关键手段,其背后的自动微分技术的高效实现尤为重要,特别是在 C 这样追求性能与内存控制极致的编程语言环境下。 神经网络通过大量的参数…...

【CSS】设置文本超出N行省略

文章目录 基本使用 这种方法主要是针对Webkit浏览器,因此可能在一些非Chrome浏览器中不适用。 基本使用 例如:设置文本超出两行显示省略号。 核心代码: .ellipsis-multiline {display: -webkit-box; -webkit-box-orient: vertical; /* 设置…...

open-instruct - 训练开放式指令跟随语言模型

文章目录 关于 open-instruct设置训练微调偏好调整RLVR 污染检查开发中仓库结构 致谢 关于 open-instruct github : https://github.com/allenai/open-instruct 这个仓库是我们对在公共数据集上对流行的预训练语言模型进行指令微调的开放努力。我们发布这个仓库,并…...

DI依赖注入详解

DI依赖注入 声明了一个成员变量(对象)之后,在该对象上面加上注解AutoWired注解,那么在程序运行时,该对象自动在IOC容器中寻找对应的bean对象,并且将其赋值给成员变量,完成依赖注入。 AutoWire…...

TDengine在debian安装

参考官网文档&#xff1a; 官网安装文档链接 从列表中下载获得 Deb 安装包&#xff1b; TDengine-server-3.3.4.3-Linux-x64.deb (61 M) 进入到安装包所在目录&#xff0c;执行如下的安装命令&#xff1a; sudo dpkg -i TDengine-server-<version>-Linux-x64.debNOTE 当…...

【C#设计模式(15)——命令模式(Command Pattern)】

前言 命令模式的关键通过将请求封装成一个对象&#xff0c;使命令的发送者和接收者解耦。这种方式能更方便地添加新的命令&#xff0c;如执行命令的排队、延迟、撤销和重做等操作。 代码 #region 基础的命令模式 //命令&#xff08;抽象类&#xff09; public abstract class …...

XGBoost库介绍:提升机器学习模型的性能

XGBoost库介绍&#xff1a;提升机器学习模型的性能 在机器学习领域&#xff0c;模型的准确性和训练效率是最为关注的两大因素。特别是在处理大量数据和复杂任务时&#xff0c;传统的机器学习算法可能无法满足高效和准确性的需求。XGBoost&#xff08;eXtreme Gradient Boostin…...

网络安全构成要素

一、防火墙 组织机构内部的网络与互联网相连时&#xff0c;为了避免域内受到非法访问的威胁&#xff0c;往往会设置防火墙。 使用NAT&#xff08;NAPT&#xff09;的情况下&#xff0c;由于限定了可以从外部访问的地址&#xff0c;因此也能起到防火墙的作用。 二、IDS入侵检…...

SpringMVC——SSM整合

SSM整合 创建工程 在pom.xml中导入坐标 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_…...

Windows系统电脑安装TightVNC服务端结合内网穿透实现异地远程桌面

文章目录 前言1. 安装TightVNC服务端2. 局域网VNC远程测试3. Win安装Cpolar工具4. 配置VNC远程地址5. VNC远程桌面连接6. 固定VNC远程地址7. 固定VNC地址测试 前言 在追求高效、便捷的数字化办公与生活的今天&#xff0c;远程桌面服务成为了连接不同地点、不同设备之间的重要桥…...

【ubuntu24.04】GTX4700 配置安装cuda

筛选显卡驱动显卡驱动 NVIDIA-Linux-x86_64-550.135.run 而后重启:最新的是12.6 用于ubuntu24.04 ,但是我的4700的显卡驱动要求12.4 cuda...

Spring Boot 动态数据源切换

背景 随着互联网应用的快速发展&#xff0c;多数据源的需求日益增多。Spring Boot 以其简洁的配置和强大的功能&#xff0c;成为实现动态数据源切换的理想选择。本文将通过具体的配置和代码示例&#xff0c;详细介绍如何在 Spring Boot 应用中实现动态数据源切换&#xff0c;帮…...

MySQL技巧之跨服务器数据查询:进阶篇-从A服务器的MySQ数据库复制到B服务器的SQL Server数据库的表中

MySQL技巧之跨服务器数据查询&#xff1a;进阶篇-从A服务器的MySQ数据库复制到B服务器的SQL Server数据库的表中 基础篇已经描述&#xff1a;借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MyS…...

大语言模型LLM的微调中 QA 转换的小工具 xlsx2json.py

在训练语言模型中&#xff0c;需要将文件整理成规范的文档&#xff0c;因为文档本身会有很多不规范的地方&#xff0c;为了训练的正确&#xff0c;将文档进行规范处理。代码的功能是读取一个 Excel 文件&#xff0c;将其数据转换为 JSON 格式&#xff0c;并将 JSON 数据写入到一…...

CFD 在生物反应器放大过程中的作用

工艺工程师最常想到的一个问题是“如何将台式反应器扩大到工业规模的反应器&#xff1f;”。这个问题的答案并不简单&#xff0c;也不容易得到。例如&#xff0c;人们误以为工业规模的反应器的性能与台式反应器相同。因此&#xff0c;扩大规模的过程并不是一件容易的事。必须对…...

Axios与FastAPI结合:构建并请求用户增删改查接口

在现代Web开发中&#xff0c;FastAPI以其高性能和简洁的代码结构成为了构建RESTful API的热门选择。而Axios则因其基于Promise的HTTP客户端特性&#xff0c;成为了前端与后端交互的理想工具。本文将介绍FastAPI和Axios的结合使用&#xff0c;通过一个用户增删改查&#xff08;C…...

美畅物联丨如何通过ffmpeg排查视频问题

在我们日常使用畅联AIoT开放云平台的过程中&#xff0c;摄像机视频无法播放是较为常见的故障。尤其是当碰到摄像机视频不能正常播放的状况时&#xff0c;哪怕重启摄像机&#xff0c;也仍然无法使其恢复正常的工作状态&#xff0c;这着实让人感到头疼。这个时候&#xff0c;可以…...

基于OpenCV视觉库让机械手根据视觉判断物体有无和分类抓取的例程

项目实例&#xff0c;在一个无人封闭的隔绝场景中&#xff0c;根据视觉判断物件的有无&#xff0c;通过机械手 进行物件分类提取&#xff0c;并且返回状态结果&#xff1b; 实际的场景是有一个类似采血的固件支架盘&#xff0c;上面很多采血管&#xff0c;采血管帽颜色可能不同…...

有哪些类型的网站/个人网站首页设计

415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 &#xff0c;计算它们的和。注意&#xff1a;num1和num2的长度都小于 5100.num1和num2都只包含数字0-9.num1和num2都不包含任何前导零。你不能使用任何內建BigInteger库&#xff0c; 也不能直接将输入的字符串转换为整…...

做棋盘游戏辅助的网站/网络营销的含义的理解

2019独角兽企业重金招聘Python工程师标准>>> 需求&#xff1a; 1.可以通过数据库配置cronExpression表达式&#xff0c;动态修改执行时间 2.不修改服务器环境支持集群架构&#xff1a;即保证集群环境下单实例运行 3.实现业务上的实时开启/停止控制功能 第一步&#…...

网站开发毕业论文任务书/seo技术培训岳阳

经过前面22小节&#xff0c;我们已经将自己的博客网站搭建完成了&#xff0c;但是只能在本机通过127.0.0.1:8000进行访问&#xff0c;那么如何才能够让别人通过登录自己的网站&#xff0c;在外网也能够访问自己的博客呢&#xff1f;为了完成这个目的&#xff0c;我们需要做如下…...

如何用爬虫做网站监控/网络广告创意

在学习Java编程完之后&#xff0c;学员们面临的就是就业问题。作为一名Java开发工程师&#xff0c;企业在招聘的时候&#xff0c;也是有一定的标准的。为了帮助大家更好的找到适合自己的工作&#xff0c;在这里分享了作为一名Java开发工程师需要掌握的专业技能&#xff0c;大家…...

wordpress文章没缩略图/培训网站推广

现在的上班族&#xff0c;都是依靠电脑在办公的&#xff0c;所以每天接收到的电子文件有很多&#xff0c;这些都跟自己的工作息息相关&#xff0c;所以一般都是需要保存在电脑里面的&#xff0c;但是电脑就真的很安全吗&#xff1f;能确保数据的安全吗&#xff1f; 其实电脑虽然…...

wordpress 的ip怎么隐藏/一个新产品的营销方案

文章目录1 问题描述1.1 求整个DAG的最长路径&#xff08;即不固定起点和终点&#xff09;1.2 固定终点&#xff0c;求DAG的最长路径2 求解问题12.1 求解最长路径长度2.2 求解最长路径2.2.1 路径序列的字典序3 求解问题23.1 求解最长路径长度3 应用3.1 实际例题1 问题描述 1.1 …...