AGV车载控制系统搭建(初学者入门)

2023-05-16

本文转载:博主robinvista的http://blog.csdn.net/robinvista/article/details/78349627。

目的

  本文介绍 AGV 车载控制系统的实现过程,可以分为硬件搭建和软件设计,并在其中穿插 AGV 控制的基础知识讲解。

1. 车载控制器

1.1 车载控制器的类型

  车载控制器是控制系统乃至整个 AGV 的核心,那么应该选择什么样的控制器呢?根据笔者的经验,现在的 AGV 厂家采用的车载控制器基本可以分为以下三种: 


   下面简要介绍几种控制器的特点: 
  1. PLC:代表产品例如西门子的 S7-1200和1500,使用厂家有新松、嘉腾。PLC 以稳定性好、可靠性高著称,它主要用于逻辑控制。购买大厂家的产品,其附带的编程调试软件会很完善、强大,帮助文档也比较详细。西门子 PLC 的价格大概在3000元~12000元左右。 
  2. 工控机:代表产品例如倍福的 CX5130,使用厂家有昆船、海通、罗伯特木牛流马。工控机其实就是一台电脑,只不过经过精心的设计使其具有很强的抗干扰能力和稳定性,可以用于工厂恶劣环境。工控机结构紧凑、体积小巧,不占用过多的空间,输入电源可以是24V直流,因此适合AGV的电池供电。工控机上运行有通用的操作系统,比如 Windows、Linux。以倍福为例,安装它的 TwinCAT 控制软件后,会在 Windows 操作系统中插入实时内核,将电脑变成适合工业场合的实时控制系统。工控机中的高端品牌倍福的售价大概在4000到10000元左右。 
  3. 单片机:代表产品例如 STM32,使用厂家有昆船、机科、嘉腾、科钛。在十几年前,单片机的稳定性不好,容易受干扰,可能会出现死机。但是电子技术突飞猛进,现在的单片机已经非常可靠了,而且价格非常低廉,加上外围器件成本最多也不过千元左右。使用单片机的一个缺点是,如果要做成成熟的产品,你需要花费很多精力设计外部电路以及各种底层算法。 
  上面的分类并不意味着三者是泾渭分明的,例如 PLC 的核心芯片可能就是一个单片机;而工控机的编程语言很可能就采用了 PLC 领域使用的梯形图、ST等语言;单片机上面也可以装载操作系统,从而形成一个完整的控制器。所以,虽然它们各有自己适用的领域,但是相互之间也会取长补短,演变成你中有我我中有你的局面。

1.1 西门子 S7-1200 PLC

  本文采用西门子的 S7-1215C 型 PLC 作为 AGV 的车载控制器(以后简称为S1200),订货号见下表(西门子公司的产品非常丰富,各个型号在接口种类、性能等方面有细微的差别,购买时为了准确描述具体是哪个型号,最好使用订货号。西门子的每种产品都有一个唯一的订货号,在采购时只需要提供这个编号即可)。

   
名称订货号价格
西门子1200 CPU6ES7215-1AG40-0XB03400元

   想了解 S1200 的功能特性和参数设置可以阅读书籍《S7-1200 PLC 编程及应用》或者官方文档《S7-1200可编程控制器系统手册》。让笔者感到奇怪的是,网上竟然找不到这个手册的完整版本(全长1862页),所以我把它上传到网盘供大家免费下载,点击这里下载。

什么是上位机和下位机?有些设备能够访问其它的设备,比如读取内存中的数据、向内存写数据,这样的设备具有较高的权限和地位,因此被称为上位机。有些设备只能被其它设备访问,而没有访问其它设备的权力,这样的设备就称为下位机。在本文中,PLC就是下位机,而编程计算机就是它的上位机。

  想对PLC进行操作,需要使用普通网线将 S1200 与上位机连接,只需要将上位机的 IP 地址设置为与 PLC 同一网段即可。S1200 一般默认的 IP 地址是 192.168.0.1,所以可以将你的电脑的 IP 设置为 192.168.0.2。对于 AGV 来说,因为它是移动的,在调试的时候如果拖着一根网线就显得很不方便。实际上,你完全可以使用无线的通信方式,例如 Wifi、ZigBee等等。由于 Wifi 在实际中使用较多,我介绍一下它的配置方法。使用 Wifi 连接西门子 PLC 非常方便,只需要用网线将 PLC 的以太网口连接到无线路由器的 LAN 口,然后用笔记本搜索到对应的 Wifi 后连接即可访问 PLC。所用的无线路由器可以是任意品牌,甚至家用路由器都可以。如果你想追求更稳定可靠的通信,可以选择工业级路由器,例如摩莎(MOXA),它的体积非常小,供电电压兼容12V~48V。

   
名称型号价格
MOXA 无线APAWK-1131A-EU3000元

    
  

2. 驱动器

  如果说车载控制器是 AGV 的大脑,那么 AGV 还要有心脏和肌肉才能运动起来,驱动器给车轮的电机提供电流,相对于心脏。

2.1 AGV使用的驱动器

  由于 AGV 普遍采用蓄电池供电,其电压一般在 24V~72V 左右。因此 AGV 使用的驱动器属于低压直流型伺服驱动器。提供低压驱动器的厂家有:AMC、RobotQ、ZAPI、CURTIS等等。使用低压供电附带的一个好处是对人没有任何危险(电压太低电不死人)。

2.2 PLC与驱动器通信

  PLC 要想控制驱动器就要向它发送指令数据,这样的通信可以借助 RS-232、RS-485、CAN 等协议实现。因为 S1200 的 CPU 模块没有这些通讯接口,所以要想连接驱动器,需要购买额外的通信模块(Communication Module)。上面提到的几种协议西门子都有对应的通信模块支持,比如西门子的 232 、485 和 CANopen 通信模块如下图所示(这三种模块外形完全一样),注意 232 和 CANopen 模块的插头是公头,而485的则是母头。 

 232通信模块        485通信模块       CANopen通信模块

   本文使用的驱动器采用 485 协议,所以我们选择485模块。

   
名称订货号价格
西门子485通信模块6ES7 241-1CH30-0XB0500元
西门子232通信模块6ES7 241-1AH32-0XB0500元
HMS CANOpen通信模块021620-B3800元

  西门子485模块的接头采用了标准9 针D型插孔式连接器。为了将驱动器和PLC连接起来,我们要购买DB9接头,并用信号线将两个头连接起来。这里我们只利用两个信号线即可。值得注意的是,西门子的485接口定义和常规的485不一样,常规485的信号收发是1、2头,而西门子的485则是3、8头(参考手册的第1769页)。所以在连线时,要按照 3-2、8-1的对应顺序焊接,如下图所示。 

 

3. 移动机构

  AGV要想实现移动就要有移动机构,使用最多的移动机构形式有舵轮、差速轮和麦克纳姆轮。那么它们各自有什么特点呢?什么场合又该使用哪种轮子呢? 
  小负载(<200kg)AGV通常采用差速轮和麦克纳姆轮,而中大负载(>1000kg)AGV采用舵轮较多(也有使用麦克纳姆轮的)。如下图所示,麦克纳姆轮的结构复杂,车轮两侧的支撑轮廓紧贴地面,因此只能用于平整的地面,遇到坑洼的地形容易出现接触摩擦。如果AGV使用麦克纳姆轮,那么所有车轮全部都要用麦克纳姆轮,这也就解释了为什么有的重载AGV用了很多麦克纳姆轮(多的甚至能达到 12~24个)。而如果AGV使用舵轮则可以通过安装承重轮(例如万象支撑轮,俗称脚轮)的方式分担一部分重量,所以舵轮的数量不需要很多。 

 

   舵轮由齿轮箱、驱动电机、转向电机、编码器、限位开关等组成,它既能提供牵引力(驱动),也可以主动转向,因此一个舵轮有两个自由度。AGV 使用一个或以上的舵轮就可以实现全向移动:原地旋转、斜行、横移等等。舵轮一般用于地面条件较好的室内环境,所以轮面的材料多为聚氨酯。舵轮的运动精度决定了AGV的重复定位精度,所以舵轮的好坏对AGV的性能有重要的影响。根据电机的安装位置可以将舵轮分为两种:卧式和立式,分别如下两图所示。卧式舵轮的驱动电机横向安装,因此整体高度很低,有些AGV对高度有要求(例如潜入式的AGV要很矮才能钻到货物底下),这时就适合使用卧式舵轮;立式舵轮的驱动电机竖着安装,其整体高度偏高,它的优点是方便将电机隔离起来,在有些场合(例如危险品工厂),要求舵轮电机与外部环境隔离,这时就适合使用立式舵轮,因为它容易做防爆处理。国外主要的舵轮生产厂家有:意大利的 CFR 和德国的 schabmuller(夏伯穆勒),后来从CFR中又独立出来了一个厂家——马路达。这些舵轮生产厂家一般只卖舵轮,不提供驱动器,驱动器则由代理商提供。一台AGV上最贵的部件就是舵轮,以一台成本10万元左右的AGV为例,如果配备两个舵轮,就需要4~5万元,占整车成本将近一半。不过好消息是,国内的舵轮厂家开始参与竞争,这将降低AGV的成本。 

4. 磁循迹传感器和磁条

4.1 磁条

  磁条导航是目前 AGV 使用最多的导航方式之一。只需要预先在地面铺设好磁条,AGV 就会沿着磁条形成的路径运动。磁条一般宽3~5cm,它像胶带一样,一面光滑、一面带有粘性,将粘性的一面粘贴在地面即可完成铺设。磁条具有极性,在购买时注意是N极还是S极,磁条的极性对应磁寻迹传感器的极性,但有些传感器两种都兼容。注意磁条一般不抗压,所以如果被轮子反复碾压可能会压扁。

4.2 磁循迹传感器

  沈阳军航电器有限公司磁循迹传感器如何与PLC接线?PLC有一个COM接口。

5. 电池

  AGV可以使用锂电池或者铅酸蓄电池,生产厂家有POWERCAN、霍克HAWKER。下左图所示的是POWERCAN公司的容量80Ah,输出电压12V的铅酸蓄电池。下右图所示的是霍克AGV专用电池。

   
名称型号价格
PowerCan 电池6DM12V-80Ah1000元

   

 

  配套的充电器:

6. 开关

6.1 电源开关

  选择电源总开关时要注意它是自锁的还是自动复位的。自锁的意思就是按下后即使手指松开,开关依然保持闭合使供电畅通;而自动复位的开关按下按钮后如果松开手指,电路就会被切断,如下图所示。一般机箱上的电源总开关应该选择自锁型的,否则你要一直按着按钮才能使电路畅通,因此不要购买下图右所示的自复位型开关(代号:XB2-BA31C,价格在22元左右)。假如你买错了也不要紧,你可以再买一个自锁模块 ZB2-BZ21 C,将这个模块添加到 XB2-BA31C 开关上就能将它变成一个自锁开关。 

 

6.2 急停开关

  在所有 AGV 车体上都能找到的一个东西就是急停开关。根据国家标准《GBT 20721-2006 自动导引车 通用技术条件》中第4.2.6项的规定:“AGV 应配备紧急停车按钮,该按钮的安装位置在紧急情况下应便于操作。应采用红色按钮,急停按钮按下应关闭 AGV 驱动电源”。在AGV失去控制的情况下,按下急停开关能让它立即停止运动,从而防止伤害到人。因此急停开关构成了最后的安全屏障。为了保证使用可靠,可以购买施耐德的 XB2-BS542C。急停开关的按钮一般设计得很大,方便按下,因此又被俗称为蘑菇头,它一般都是自锁的,按下后需要旋转才能松开。购买时唯一要注意的是它的安装直径,一般选择 22mm 即可。 

7. 接触器、断路器、继电器

  AGV 上既有强电也有弱电,例如舵轮的驱动器需要的电流通常很大,而控制器和一些传感器只需要很小的电流。我们要合理设计电路,防止它们相互干扰,更主要的是包含弱电器件。根据国家标准《GBT 30029-2013 自动导引车(AGV)设计通则》中第6.7.7.4项的规定,控制器应该具有过压保护、欠压保护、过流保护功能。 
  我们要在电路中加入以下器件: 
   接触器:用小电流控制大电流。上面的电源开关只允许通过较小的电流,但有时设备里有些组件需要大电流才能启动,例如舵轮驱动器。我们不能用一个开关既控制小电流也控制大电流,这时就需要借助接触器。接触器内部有个电磁铁,我们用小电流控制电磁铁的吸合,电磁铁带动另一组开关闭合使大电流通过。 
   断路器:起到过流、欠压保护的作用。断路器也相当于一个开关,在短路等电流过大时开关断开; 
   继电器:也相当于一个开关,它是用小电压控制触点开闭的,但是注意触点不能流过太大电流。 
  AGV 采用电池作为能源,而电池的电压通常不是很稳定,在使用时电压会逐渐下降。虽然西门子的 PLC 对输入电压具有一定的适应能力,但是我们最好用一个24V到24V的稳压模块将电池的电压稳定后再供给 PLC。对于使用24V供电的其它器件,例如传感器,也是这样。

8. 触摸屏

  现在的 AGV 越来越多地开始配备触摸屏了。使用触摸屏可以方便地设置AGV的参数,例如运动速度、充电电压等等,而不需要每次都将程序下载到 PLC。既然我们选择了西门子的PLC,当然触摸屏选择西门子是最配对的,但是考虑到西门子的触摸屏有点贵,我们选择国产的品牌。国产触摸屏的质量也很可靠,而且价格合理,代表厂家有:昆仑通态、威纶通、步科。

   
名称型号价格
昆仑通态 触摸屏TPC1561Hi3800元

   
  我们选择昆仑通态的触摸屏,它采用24V直流供电,并配有网口,用普通网线将触摸屏和 S1200 连接,并将触摸屏的 IP 地址设置为与 PLC 所在同一网段(例如192.168.0.3)即可实现和 PLC 的互联。设置 IP 的方法是上电后在进入正式界面之前,在屏幕的任意位置点击一下即可进入设置界面。 
  我们如何使用触摸屏呢?我们需要对触摸屏进行编程,或者说“组态”。编程需要使用昆仑通态自己的组态软件:MCGS,可以在它的官方网站免费下载。 


   在你的电脑上安装该软件,注意在软件中需要输入 PLC 的地址才能读写数据。触摸屏上只有一个网口,所以你可以用网线将触摸屏连接到你的电脑。我们注意到 S1200 有两个网口,所以一种更方便的连接方式是,将触摸屏连接到 S1200 上,然后将 S1200 连接到你的电脑,这样同样能对触摸屏进行编程。 
  触摸屏最基本的功能就是读写 PLC 的内存(因此它也是PLC的上位机)。要实现这个功能非常简单,只需要在 MCGS 中对 PLC 的变量进行关联即可。 

8. PLC编程

  要对西门子 PLC 编程必须使用专用的软件:STEP 7 。不过现在西门子将它和另外几个自动化软件都集成到一起,形成一个大软件包,称为:TIA Portal(博途),安装这个软件包就能使用 STEP 7 了。本文使用的就是 TIA V14 版,如下图所示。 


   购买了S1200并不意味着你能免费使用博途软件,但是没关系,网上有很多破解版本可以下载。有意思的是,其中有些资源就是西门子公司的人故意释放出来的,他们可能想占有更多的市场。

8.1 西门子PLC的特点

  要想用好PLC,就要熟悉它的一些特点,下面我们就了解一下这款PLC的特点。 
  1215C的内存有多大呢? 
  我们用电脑连接上PLC,如何打开博途软件,在左侧双击“在线和诊断”,然后在打开窗口中点击“存储器”,如下图所示。 

   
   可以看到这里有三个存储器,分别是:装载存储器、工作存储器和保持存储器。并且可以看到三个存储器的大小,分别是: 
  1. 装载存储器: 4194304 Byte ÷1024÷1024=4MB 
  2. 工作存储器: 128000 Byte ÷1024=125KB 
  3. 保持存储器: 10240 Byte ÷1024=10KB 
  这和系统手册中给出的数值是一样的,如下: 
  
   你看完是不是都哭了,10年前的手机存储器都比这要大。 
  这三个存储器各有什么作用呢? 
  1. 装载存储器:用于存储用户项目文件(例如:用户程序、组态信息),相当于硬盘; 
  2. 工作存储器:CPU在执行用户程序时会将一些项目内容从装载存储区复制到工作存储区,相当于电脑的内存; 
  3. 保持存储器:掉电后数据仍然保持。如果你希望一些数据能在断电后一直保持就要使用这个存储器。但遗憾的是,小气的西门子公司只给了我们10KB。 
  PLC 扫描一次程序需要多长时间呢? 
  PLC会自动记录时间,在同一页面,打开“循环时间”,就能看到PLC完整执行一遍程序需要的时间,如下图所示。这个时间不是固定的,取决于你的程序长短,一般的执行时间在3毫秒以内。 
   
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AGV车载控制系统搭建(初学者入门) 的相关文章

  • openfire xmpp 如何判断用户是否在线

    http iammr 7 blog 163 com blog static 49102699201041961613109 想象中如此简单的功能 xff0c 想不到却这般大费周折 如要实现 xff0c 必须先确保 xff1a 1 openf
  • sql 分组统计

    原始的数据结构是这样的 xff1a 这是一个信息表 xff0c 记录下每个app每天对应什么等级 现在需求是 xff1a 统计每天每个等级有多少个app xff1f 实现的sql如下 xff1a select count as num le
  • Errors running builder JavaScript Validator的问题

    http jc dreaming iteye com blog 1038995 最近使用eclipse时 xff0c 在编译项目总是出现问题 Errors occurred during the build Errors running b
  • coreseek索引更新机制

    k索引更新机制 版权声明 xff1a 转载时请以超链接形式标明文章原始出处和作者信息及本声明 http fatal blogbus com logs 45153968 html 61 61 xff0c 昨晚太晚睡觉 xff0c 所以日记又没
  • golang生成自定义标签名(带CDATA标识)的xml

    在golang中 xff0c 有时候需要生成带CDATA标识的xml值 xff0c 例如这种 xff1a lt xml version 61 34 1 0 34 gt lt xml gt lt to User gt lt CDATA use
  • 有人痴狂,有人跑路,开源软件新一年的冰火两重天

    最近有关开源软件的话题始终占领着IT界的新闻头条 xff0c Log4j开源软件的惊天漏洞 xff0c 才刚刚出现不久 xff0c Fake js的作者也惊天删库跑路了 xff0c CurL的作者怒怼苹果只会白嫖开源却不出力 xff0c L
  • linux下通过ssh用户名密码的rsync传输文件方法

    一般用rsync传输文件都会使用密钥的方式实现免密码验证 xff0c 但有些机器由于特殊的原因 xff0c 不能配置密钥 xff0c 这时就要用ssh的用户名和密码方式使用rsync 1 首先 xff0c 通过ssh 命令登录一次远程的主机
  • codeigniter验证码类库

    http hi baidu com mediumgirl item c734b8f5a1cacfc3a835a2ae 折腾了我四五个小时 xff0c 终于 xff0c ci的验证码类库成功的整出来了 下面请看源码 xff1a 在applic
  • golang json.Marshal 特殊html字符被转义解决方案

    pages goods goods gid 61 56 amp code 61 1 会在转json中变成pages goods goods gid 61 56 u0026code 61 1 解决方案 xff1a content 61 str
  • mongodb 错误src/mongo/db/query/plan_enumerator.cpp的修复

    某个mongodb 3 2的库执行下面的查询就报错 xff1a db 34 xxxx 34 find 34 createdAt 34 34 gte 34 34 2019 04 23T00 00 00 43 08 00 34 34 lte 3
  • MySQL新建用户,授权,删除用户,修改密码

    http www cnblogs com analyzer articles 1045072 html grant all privileges on test to test 64 96 96 identified by 39 1234
  • HTTP/HTTPS, without index.php, using htaccess, plus XHR

    http ellislab com forums viewthread 86113 Removing index php and forcing HTTP HTTPS I have read many posts about people
  • 解决mysql返回的字段值全变成string型的问题

    使用php的CI框架的时候 xff0c 发现在数据库中是int型的数据 xff0c 返回的时候全变成了string了 对于弱类型的语言来说 xff0c 这个没多大关系 xff0c 但是 xff0c 如果是用于其它语言 xff0c 例如obj
  • STM32学习路线

    随笔 停更了好久啊 xff0c 有偷懒 xff0c 但不是完全偷懒 xff0c 主要还是意识到 xff0c 自己太菜了 xff0c 需要补很多东西 xff0c 以下算是学习中的一些体会吧 关关难过关关过 xff0c 成为专家可能需要天赋 x
  • 做个爱读书的程序员

    很多时候我们抱怨工作过于忙碌 xff0c 疲于应付各种事情 但是往往即使有时间也总是会无所事事地浪费掉 xff0c 我们可以找很多理由去给自己解脱 xff0c 固然是想在忙碌之外给自己放松一下 xff0c 大多却是过于可惜的时候 今天跟一个
  • 共用体结构体位域的应用

    1 xff09 增加位域定义 我们经常需要直接访问寄存器中的某个位域 C281x C C 43 43 头文件及外设示例所涉及的位域结构体方法 xff0c 为多数片上外设寄存器提供了位域定义 例如 xff0c 可以为CPU 定时器 xff08
  • C#的并发机制优秀在哪?

    笔者上次用C 写 Net代码差不多还是10多年以前 xff0c 由于当时Java已经颇具王者风范 xff0c Net几乎被打得溃不成军 因此当时笔者对于这个 Net的项目态度比较敷衍了事 xff0c 没有对其中一些优秀机制有很深的了解 xf
  • 集合中常见接口与实现类的基本介绍

    1 Iterable java中集合顶级接口之一 xff0c 实现Iterable接口的集合都是可迭代到 xff0c 可遍历 2 Collection Collection接口继承了Iterable xff0c 并且实现了Iterator迭
  • KEIL5 打开时候很多文件都自动打开解决方法

    Keil5 中修改配置 Edit gt Configuration gt Other gt Open most recent project 选中既可以 xff0c 下次打开Keil时候不会再打开很多文件
  • 新手小白,求教matlab

    用matlab写了个求阶乘的函数 xff0c function y 61 digui n n为元素个数 if n lt 61 1 y 61 1 end y 61 digui n 1 n end 结果显示 xff1a 内存不足 可能的原因是程

随机推荐

  • 字符串有长度限制吗?是多少?

    首先字符串的内容是由一个字符数组 char 来存储的 xff0c 由于数组的长度及索引是整数 xff0c 且String类中返回字符串长度的方法length 的返回值也是int xff0c 所以通过查看java源码中的类Integer我们可
  • C++实现推理, 基于Onnx-simplifier、onnx-tensorrt、TensorRT和Cuda编程

    Cuda基础 深度学习模型推理 为啥需要学习tensorRT 因为需要加速 需要C 43 43 部署 为啥又需要学习cuda编程呢 因为有些前处理 后处理需要cuda编程来并行运算进行加速 比如anchor的解码 nms等后处理 1 CUD
  • nuScenes、Culane数据集、Camera选型及内参标定、TX2外接双目相机ZED

    1 xff1a nuScenes数据集 https zhuanlan zhihu com p 295549692 nuScenes mini data 点云数据集 针对cuda10 0 spconv版本 安装cu100版本 torch 1
  • 指针指向0的问题

    问 xff1a 定义指针变量int a 61 0 是指针变量指向地址为零的数据吗 xff1f 答 xff1a 指针赋0 xff0c 就是不指向任何对象 xff0c 相当于NULL
  • pip install basicsr安装时在Preparing metadata (setup.py)卡住

    pip install basicsr安装时在Preparing metadata setup py 卡住 如下图pip安装basicsr时卡在Preparing metadata 查了很多资料也没解决 xff0c 最后从pypi下载包通过
  • Ros 图(节点,消息,话题)命令

    1 启动守护进程 xff1a roscore xff1a ros 43 core这条命令会启动ros的核心模块 xff0c 我感觉这个是一个守护进程 xff0c 会在11311端口 xff08 可能会有不同的配置 xff09 启动一个soc
  • Android 串口通信(二)

    前言 上一篇中主要介绍了串口基础内容和基于谷歌官方android serialport api库 对Android设备进行的串口操作 xff0c 这篇文章主要介绍基于Usb转串口驱动库usb serial for android 的相关内容
  • DeepMind带来了大魔王阿尔法扣,程序员还有前途吗?

    最近 著名的编程竞赛网站C odeforces 发布了一篇名为 AlphaCode DeepMind Solves Programming Problems on CodeForce 的文章 xff0c 将阿尔法扣 xff08 AlphaC
  • 最优控制理论 四、线性二次型最优控制和LQR

    在前面两节最优控制理论 二 哈密尔顿函数法 xff0c 我们利用Hamilton函数法讨论了终端等式约束的非线性控制系统的最优控制 xff0c 它所解决的是 x
  • 多源传感器GNSS INS 视觉 LiDAR 组合导航与SLAM开源项目总结

    多源传感器GNSS INS 视觉 LiDAR 组合导航与SLAM开源项目总结 本文基于 吴桐wutong 微信公众号文章完善而来 开源代码总览 名称传感器类型组合类型滤波方法备注RTKLIBG KFGAMP rtklibexplorer h
  • Integer类超详解

    目录 xff08 点击传送 x1f680 x1f680 xff09 前言 Integer的内部结构 1 MAX VALUE 2 MIN VALUE 3 SIZE 4 TYPE 构造方法 1 Integer xff08 int number
  • PPM信号介绍

    原文地址 xff1a http nicekwell net blog 20161223 ppmxin hao jie shao html 我们知道PWM信号可以控制舵机 xff0c 一般信号周期是20ms xff0c 脉宽在500us 25
  • 算法建模语言比较:C的优势(相比于Matlab)

    数据结构定义 structure 方便组织相关数据 union 方便多角度访问数据 xff08 软件角度 硬件角度等 xff09 bit field 方便硬件角度访问数据 内存分配方式 malloc 预先 灵活申请内存空间 xff0c 拓展
  • 学会使用CMakeLists.txt在VScode中搭建C++工程

    目录 一 Cmake 简介 二 常用命令 1 指定 cmake 的最小版本 2 设置项目名称 3 设置变量 3 1 set 直接设置变量的值 3 2 set 追加设置变量的值 3 3 list 追加或者删除变量的值 4 添加第三方库或链接其
  • WIN10源码编译安装QGC-V3.4

    目录 写在前面 环境 安装VS2015 xff08 采用的是社区版 xff09 安装Git xff08 见GIT安装教程 xff09 并克隆QGC源码 安装Qt xff0c 并用Qt进行编译 运行 安装注意事项 写在前面 最近想起来之前有过
  • 飞控固件烧录方法

    目录 写在前面 方法一 方法二 写在前面 整理两个烧录飞控固件的方法 方法一 1 xff09 waf targets bin ardusub upload 这时两个过程 xff0c 第一个过程target 会产生一个 px4 文件 xff0
  • Ubuntu 20.04 LTS 安装qt4 library

    How to Install Qt4 Libraries in Ubuntu 20 04 LTS July 9 2020 3 Comments The Qt4 framework has been removed from Ubuntu 2
  • STM32接入ONENET-实现数据上传和命令下发

    前言 xff1a 使用ONENET平台进行远程传输数据和远程控制开发板是相对简单的事 xff0c 但由于ONENET官方给的代码只对他家的开发板比较友好 xff0c 对于初学者来说修改这些代码相对麻烦 xff0c 所以我就分享一份STM32
  • 从x86到ARM,代码移植指北

    最近ARM架构的处理器从云到端全面开花 xff0c 比如苹果MAC上的ARM架构处理器M1 MAX就堪称王炸 xff0c 华为的鲲鹏系列ARM处理器也已经稳定服务了很长时间 xff0c 目前业内有口皆碑 xff0c 因此基于x86环境编写的
  • AGV车载控制系统搭建(初学者入门)

    本文转载 xff1a 博主 robinvista的http blog csdn net robinvista article details 78349627 目的 本文介绍 AGV 车载控制系统的实现过程 xff0c 可以分为硬件搭建和软