基于RK3399+PID的手持稳定云台的设计与实现

2023-05-16

手持稳定云台的主要作用是将外界环境因数引起的相机姿态变化进行隔离。如因操作者运动造成的机体震动、风阻力矩等,为了确保工作中相机的视轴始终保持期望的姿态不动。云台相机要拍摄出高质量的影像最重要的就是保证相机的视轴相对目标保持稳定。因此在相机拍摄的过程中要求设备始终保持水平、匀速运动并且还要保持设备姿态的稳定。
本文采用了瑞芯微 RK3399 作为手持稳定云台控制系统的控制芯片,本文设计了云
台的机械结构且对云台进行了运动学分析、应用姿态融合算法最后对云台控制系统硬件
和软件进行设计。本文的主要内容为:
首先,根据常见的稳定云台多采用单姿态传感器且安放在目标载体上或者云台基座上。本设计针对手持稳定云台系统的结构和特点,采用双惯性传感器的安装方案,一个安装在载体相机上,另一个安装在与框架相连的电机上。同时介绍了稳定云台工作原理并进行了运动学分析。
然后,选用了三个无刷直流电机驱动云台,根据已知无刷直流电机的数学模型得出稳定云台俯仰框架控制模型。对常规 PID 控制方法和模糊自适应 PID 控制方法进行对比,通过分析比较最终选用了模糊自适应 PID 控制方法对云台控制系统进行仿真,并且在加入扰动输入下的仿真结果较常规 PID 控制方法具有更好的快。速性和稳定性。同时将经典卡尔曼滤波方法用于控制系统,对经典卡尔曼滤波算法在本设计上的应用MATLAB 进行仿真验证。
最后,对手持稳定云台系统硬件控制系统和软件控制系统进行设计设计了RK3399 外围电路板并介绍了无刷直流电机驱动原理和反电动势的零位检测方法;对手持稳定云台俯仰轴、横滚轴、方位轴工作条件下的姿态进行了实验验证。

系统整体结构概述
稳定云台系统主要由云台实体、控制器、传感器模块、电机驱动模块,同时系统还
有电源模块等辅助模块。稳定云台控制系统的核心就是云台控制芯片[51]。传感器模块主要目的是检测载体相机和云台基座的姿态数据并将数据实时传送给云台控制器。然后控制器将姿态传感器测量到的原始数据通过融合计算得到载体相机实际姿态角,最后控制器根据载体相机和云台基座的实际姿态和期望姿态的差值去驱动无刷直流电机动作使其载体相机达到期望姿态目标值。以下图 5.1 是云台控制板硬件设计图。

 本设计选用的控制芯片为瑞芯微公司的 RK3399 芯片。云台控制板有两部分构成,
分别为核心板和外围板。系统使用的核心板是瑞芯微公司集成好的板子,而外围板是自

己绘制并定做的。本文将在 5.2 节详细介绍该芯片。控制板的硬件设计应用 Cadence
Allegro 绘制的 PCB 板,软件是基于 Ubuntu 系统下开发的。电源模块使用了俩个开关电
源芯片,其中 APW7080 作为系统 12V 5V 的稳压器件; SP6205 作为系统 5V 3.3V
控制芯片。系统的两个 MPU6050 姿态传感器通过 IIC 接口与控制板相连。电机驱动模
块主要驱动三个无刷直流电机。控制板上集成了大量的外接口方便以后设备的功能扩展。
5.1.2 主控制芯片的选型及介绍
RK3399 是基于 Big.Little 大小核架构的低功耗高性能处理器,它包括双 Cortex-A72 、 4核 Cortex-A53 以及独立的 NEON 协处理器,可应用于计算机、手机、个人移动互联网, 数字多媒体设备。RK3399 内置多种功能强大的嵌入式硬件引擎,为高端应用提供了优 异的性能。支持多格式视频、高品质的JPEG 的编解码,以及特殊图像的预处理和后处理。
对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都比较优秀; 支持双通道 DDR3-1866/DDR3L-1866/LPDDR3-1866/LPDDR4 最大能支持 4GB 的 内存空间;eMMC 则完全支持 JEDEC eMMC 5.1 标准,最大传输速率可达 3200Mbits ;拥有两个SD/MMC 接口,支持 SD3.0 MMC ver4.51 标准; GPU 则采用 ARM 自家的新一代高端四核图形处理器Mali-T860MP4 GPU ,集成更多带宽压缩技术RK3399内置 3D GPU ,能够完全兼容 OpenGL ES1.1/2.0/3.0/3.1 OpenCL DirectX 11.1。特殊的 MMU 2D 硬解码器能最大限度地提高显示性能,提供流畅的体验操作。 RK3399 具有高性能的双通道存储器接口( DDR3/DDR3L/LPDDR3/LPDDR4 ),能够提供高内存带宽,同时为应用提供了一套完整的外设接口。 本次试验采用的是信迈RK3399开发板作为验证。
RK3399 不仅在 CPU GPU 上更为先进,瑞芯微 RK3399 处理器还具备以下独家 优势:

(1) 集成双 USB3.0 Type-C 接口,支持 Type-C Display Port 音视频输出。
(2) ISP 像素处理能力高达 800MPix/s ,支持双路摄像头数据同时输入,支持 3D
深度信息提取等高阶处理。
(3)MIPI/eDP 接口,支持 2560×1600 屏幕显示和双屏显示。
(4)HDMI2.0 接口、 H.265/H.264/VP9 4K@60fps 高清视频解码和显示。
(5) 内置 PCI-e 接口,支持基于 PCI-e 的高速 Wi-Fi 和存储扩展。
(6) 支持 8 路数字麦克风阵列输入
(7) 全面系统支持:兼容 Android Linux 等操作系统
选用 RK3399 芯片主要是因为该芯片功能强大,考虑到后期需要对云台图片和视频进行处理所以选择了这个芯片。

5.3 RK3399 外围板元器件布局

 5.4 RK3399 布线图

5.2.3 外围板元器件焊接机及调试
首先对电源模块进行焊接和调试,因为电源是整个开发板能否正常使用的最关键因素。主要策略就是边焊接边测试。在焊接电源降压芯片后测试降压后的 5V 3.3V 电压满足系统要求。然后分别开始焊接无线模块,电机驱动模块、传感器模块等。因板子元器件过多选用的元器件封装又很小(如电阻 0402 大小的封装)手动焊比较麻烦。在测得功能可用后证明 PCB 设计没重大缺陷,然后应用回流焊机对整版元器件进行焊接。回流焊机焊接后的板子比较漂亮美观。在摆放元器件时需要应用钢网在 PCB 裸板上涂锡膏然后摆放元器件后放入回流焊机中。如图 5.5 和图 5.6 所示分别为 PCB 钢网和回流焊机制,如图 5.7 和图 5.8 分别为 RK3399 外围板裸板图和应用回流焊机焊接元器件后的 RK3399 正面图。从图 5.8 可以看出 RK3399 外围板外接扩展口很多,但很多本设计
未应用。
5.3 无刷直流电机选型及驱动模块设计
5.3.1 无刷直流电机的选型
电机驱动模块主要有电机和电子调速器组成。本设计的稳定云台选用的是无刷直流电机,无刷直流电机相比一般电机优点众多。无刷直流电机拥有传统的直流电机良好的调速性能的同时又具有交流电机结构简单、无换向火花、运行可靠和易于维护等优点。无刷直流电机以电子换相器代替了有刷直流电机的机械换向器,摆脱了有刷直流电机的先天性缺陷。
根据系统承载重量和稳定性要求云台选用可承载 800g-1000g 重量有大扭矩的电机。 本设计选用的俯仰框架电机, 横滚框架电机和方位框架电机选用的是同型号的无刷直流 电机其型号为 GBM5208H-200T ,如下图 5.9 所示。该电机 KV 值较小,绕组匝数相对较多,最高输出电流小,扭矩较大,运行转速较低比较适合稳定云台实际运行情况。

5.3.2 无刷直流电机驱动电路设计
无刷直流电机控制方式和交流同步电机相似。只是电机换相方式由机械换相变为子换相而已。直流电机的调速是用直流电压来控制的。但是选用的控制板并不能输出可 调的直流电压。因此本设计采用 PWM 方法来控制电机的输入电压。 PWM 占空比与等 效电压成正比。但是 RK3399 控制器给出的 PWM 波形只是控制信号且最高电压也只有 5V,而设计选用的电机额定工作电压是 11.1V 。可见由控制器输出电压不足以驱动无刷 直流电机,且电机正常工作时需要较大的驱动电流所以设计了一个无刷直流电机驱动器。 无刷直流电机驱动器选用的功率管是 MOSFET (场效应管)。如图 5.10 所示为无 刷直流电机的三相全桥驱动电路,从图中可以看到该电路使用了 6 N 沟道的场效应管 做功率输出元件。场效应管正常工作时输出电流可达到 10 安培。一般把 Q1 Q2 Q3 称作驱动桥的“ 上臂 Q4 Q5 Q6 称作驱动桥的 下臂 。 图中 R1 R2 R3 三个电阻分别为 Q1 Q2 Q3 场效应管的上拉电阻。他们分接二极 管和电容。这样就组成的倍压整流电路,其可以为上臂驱动管提供电源电压两倍的电压,这样上拉电阻使上臂场效应管在工作时有足够高的 压差,从而降低场VGS效应管大电流输出时的导通内阻。MOS 管的栅极分别由Q7、 Q8、 Q9 驱动,在工作时可以起到换相的作用。下臂 MOS管由 MCU 的 PWM 输出接口直接驱动。这里需要注意的是,所选用的 MCU 的 GPIO 口需要有推挽输出功能。
驱动桥全部选用 N 沟道的 MOSFET 的好处:
1 )此型号场效应管型号多,货源足便于购买;
2 )从图 5.7 可以看到上臂场效应管经过 Q7、 Q8、 Q9 驱动逻辑电平后和下臂场效 应管刚好相反。这样的好处在于当 MCU 上电时 I/O 状态默认为 1 ,上臂场效应管不会 导通,只有下臂场效应管会导通。因此消除了安全隐患。

5.4 姿态传感器模块的选型
本系统选用的姿态传感器是 INVENSENSE 公司的 MPU6050 此传感器功能强大精
度符合系统需要而且价格便宜。如图 5.13 所示为 MPU6050 的内部电路图。它集成了 3
MEMS 陀螺仪 3 MEMS 加速度计,同时还有一个可扩展功能可以外加第三方传感
器。比如磁力计或者气压计可通过 IIC 总线外置第三方传感器。
MPU6050 带有 16 ADC 和信号调理的三轴 MEMS 速率陀螺仪传感器和具有 16
ADC 和信号调理的三轴 MEMS 加速度计传感器。它可以将测量得到的模拟量转换为
数字量。
陀螺仪具有 131LSBs/°/sec 的敏感度与全格感测范围为 ±250 ±500 ±1000
±2000°/sec ,可以根据精度需要选择合适的范围。加速度计的测量精度有 ±2g ±4g
±8g ,和 ±16g 。选择 MPU6050 另一个原因就是选择组合了的陀螺仪和加速器,减少封装
时间应该更佳方便。同时该芯片还内嵌了一个温度传感器和在工作环境下仅有 ±1% 变动
的振荡器。
MPU6050 上的 SCL SDA 是连接 MCU IIC 接口, MCU 通过这个接口来控制
MCU6050 ,另外还有一个 IIC 接口: AUX_CL AUX_DA 用来连接上文所说的第三方
传感器,本设计没有采用第三方传感器所以这个接口没有用到。在这里需要强调的是 IIC
总线与始终线应通过上拉电阻接到电源正极。

信迈提供RK3399定制化解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于RK3399+PID的手持稳定云台的设计与实现 的相关文章

  • you need to install ‘unbuffer‘ (from package expect or expect-dev)

    在下载完RK3399 Linux SDK后的第一次编译时 报以下错误 you need to install unbuffer from package expect or expect dev log saved on home user
  • PID控制原理解释

    PID控制原理解释 文章目录 PID控制原理解释 0 前言 1 控制原理图解释 2 算法分析 3 PID数学模型解释 4 调参技巧说明 0 前言 参考网址 http blog gkong com liaochangchu 117560 as
  • PID自控理论(频域bode图理论分析)

    PID 迟后超前矫正 临界比例度法整定PID 在低频区 主要是PI控制器起作用 用以提高系统型别消除或减小稳态误差 在中 高频区 主要是PD控制器起作用 用以增大幅值穿越频率和相位裕度 提高系统的响应速度 因此 PID控制器可以全面地提高系
  • PID整定之临界比例度法

    概述 在闭环的控制系统中 激励为阶跃信号 将调节器置于纯比例作用下 从小到大逐渐改变调节器比例度的大小 直到出现等幅振荡的过渡过程 此时的比例度称为临界比例度 r 1 K p 相邻两个波峰间的距离称为临界振荡周期T r 比例增益K Pr 图
  • TB-RK3399pro成砖后Typec无法连接电脑的方法

    TB RK3399pro 即为toybrick的3399pro板 成砖原因 强行刷友善之臂的3399固件 且失败 解决方法 1 断开所有连接 2 用Typec连接电脑 3 按下板子正面的 maskrom 按键 在散热片固定钉旁的一个小按键
  • # Arduino小车PID调速——整定参数初试水

    Arduino小车PID调速 整定参数初试水 在实现了小车较为可靠的测速基础上 便可以正式开展PID调速实验了 本文是基于使用Arduino平台上由Brett Beauregard大神写的PID库进行参数整定的 侧重于在对PID算法有基本了
  • PID算法与PID自整定算法

    本文是由于研发恒温槽项目故需要了解PID控制算法和PID自整定算法 为方便本人日后需要故作此记录 直接粘贴代码吧 这是PID位置式控温算法 函数名 void Pid positional float speed 用途 PID输出 说明 参数
  • 3399的-mipi适应多个lcd屏显示-后续2-linux内核中的修改

    一 前提 1 rk3399核心板 2 linux4 4 19 源码 3 多个MIPI显示屏的启动序列以及显示时序 重要 4 rk3399MIPI通道0 5 接上一个uboot中的修改配置 二 内核驱动的修改 0 dts就不再给出了 请参考u
  • FriendlyDesktop系统烧写,SOM-RK3399/NanoPC T4烧录系统

    SOM RK3399 SOM RK3399 V2 NanoPC T4的系统是通用的 由于Type C烧写有蛮大的概率会识别不成功 实测 所以建议使用SD卡脱机烧写 友善之臂提供了几种系统支持 android7 8 10 FriendlyCo
  • 【RK3399】I3399烧写Android系统详解

    00 目录 文章目录 00 目录 01 驱动安装 02 Android镜像文件烧写 03 问题讨论 04 附录 01 驱动安装 1 1 没有安装驱动的时候 显示感叹号 1 2 解压DriverAssitant v5 1 1 zip 1 3
  • 如何以编程方式获取 OS X 上给定 PID 的打开文件描述符列表?

    我所看到的一切都说要使用lsof p 但我正在寻找不需要 fork exec 的东西 例如 在 Linux 上 人们可以简单地步行 proc pid fd You can use proc pidinfo与PROC PIDLISTFDS枚举
  • 进程组必须有一个正在运行的领导进程吗?

    在类 Unix 操作系统中 如果一个进程 pid和它的pgid相等 则该进程是进程组的领导者 但是 如果进程领导者已经退出 并且同组中的其他进程仍在运行 那么谁是继任的领导者进程 没有继任领导者 一旦流程组领导者退出 该组就失去了领导权 没
  • multiprocessing.Pool 与 maxtasksperchild 产生相同的 PID

    我需要在一个与所有其他内存完全隔离的进程中运行一个函数多次 我想用multiprocessing为此 因为我需要序列化来自函数的复杂输出 我设置了start method to spawn 并使用一个游泳池maxtasksperchild
  • 如何获取生成的 java 进程的 PID

    我正在编写几个 java 程序 在完成我想做的任何事情后 需要在单独的 JVM 中杀死 清理 为此 我需要获取我正在创建的 java 进程的 PID jps l可在 Windows 和 Unix 上运行 您可以使用 java 程序调用此命令
  • 什么是 .pid 文件以及它包含什么?

    我最近遇到了一个扩展名为 pid 的文件 并查看了它的内部 但没有找到太多内容 这文档 says Pid 文件是包含进程标识号 pid 的文件 该文件存储在文件系统的明确定义位置 从而允许其他程序找到正在运行的脚本的 pid 任何人都可以对
  • Ubuntu Java:查找特定程序的 pid 并终止该程序

    我正在尝试创建一个应用程序来检查此特定应用程序是否正在运行 然后在指定的时间后终止该应用程序 我打算获取应用程序的 pid 如何获取应用程序的 pid Thanks 你可以尝试ps aux grep foobar获取 pid 然后发出kil
  • 检查给定 pid 的进程是否存在

    给定 Linux 进程的 pid 我想从 C 程序检查该进程是否仍在运行 Issue a kill 2 http linux die net man 2 kill系统调用0作为信号 如果调用成功 则说明存在该pid的进程 如果呼叫失败并且e
  • PID和TID的区别

    PID和TID有什么区别 标准答案是 PID 用于进程 而 TID 用于线程 然而 我发现有些命令可以互换使用它们 例如 htop有一个 PID 列 其中显示同一进程的线程的 PID 具有不同的值 那么PID什么时候代表线程或进程呢 这很复
  • 如何在bash中列出所有后台pid

    要么我无法正确表达我的搜索 要么答案不容易找到 但我正在尝试找出如何列出我的所有后台任务 PID 例如 到目前为止 我发现要列出我们使用的最后一个 PID 但现在我想列出之前任务的 PID 如果存在 但我找不到如何做到这一点 最终我想列出我
  • docker 容器无法启动,因为现有的 pid 文件

    当我启动 docker 容器时 它会失败 因为现有的 pid 文件 root newhope sergio docker logs sharp shockley httpd pid 1 already running httpd pid 1

随机推荐

  • RK3568最小系统四层板设计总结

    很久没有关注DDR4和DDR5相关知识了 xff0c 利用找工作在家休息间隙从网上下载了RK3568的原理图和6层板的PCB参考设计 xff0c 将6层板改为4层板设计 进行总结之前 xff0c 先将设计时关于Allegro设计小技巧进行总
  • 部门管理经验小结

    很久没有针对管理做总结了 xff0c 回武汉后一直做工程师 xff0c 现对管理知识体系进行总结 xff1a 部门管理按照如下框图1所示 图1
  • STM32驱动开发(二)--USB Device RNDIS虚拟网卡(usb hound抓包完整数据流分析)

    一 简介 抓包工具 xff1a usb hound xff0c 本例使用安卓手机作为device 使用RNDIS功能连接电脑虚拟网卡 抓取完整数据流包按流程进行分析 数据流程熟悉之后 xff0c 查看stm32或者其他厂家的USB库开发RN
  • 瑞芯微RK3568控制板设计总结

    本周刚使用瑞芯微RK3568设计完成一款军用控制PCB板 xff0c 特进行总结便于后续设计提升效率 一 布局相关 器件布局效率及结果对于PCB设计至关重要 xff0c 特别在使用一个新处理器如何高效的展开器件的布局设计非常重要 xff0c
  • xilinx ise 下载地址

    10 1i ed2k file Xilinx ISE DS v10 1 iso 6345773056 5211e011944e70e0e682b3f90a613695 9 1i http download xilinx com direct
  • 输出比较模式时的TIM_OCMode_PWM1和TIM_OCMode_PWM2区别

    配合结构体成员TIM OCInitTypeDef TIM OCPolarity来一起使用 现在假定TIM OCInitTypeDef TIM OCPolarity 61 TIM OCPolarity High 则起始波形为高电位 若TIM
  • 运放稳定性连载4:运放网络,SPICE分析(1)

    作者 xff1a Tim Green xff0c 德州仪器公司 2 0 引言 本系列第2部分将着重分析运放电路 xff08 尤其是两种常见运放网络 xff09 的稳定性 重要的是必须在进行SPICE 仿真前先进行1 阶分析 xff08 主要
  • 运放稳定性连载18:电容负载稳定性:输出引脚补偿(2)

    我们的CMOS RRO输出引脚补偿实例如图9 20所示 这种实际电源应用采用OPA569功率运算放大器作为可编程电源 为了在负载上提供精确的电源电压 xff0c 可以采用一种差动放大器INA152对负载电压实施差动监控 闭环系统可以补偿任何
  • 音响开关机POP声/爆破声最新解决消除方法(D类音频功放IC应用实例)

    POP声是指音频器件在上电 断电瞬间以及上电稳定后 xff0c 各种操作带来的瞬态冲击所产生的爆破声 下文结合自身在推广小功率D类音频功放IC的过程中遇到的设计问题 xff0c 就音频系统开关机POP声的解决思路和大家分享一下 降低或去除P
  • 单片机stm32 USART串口实际应用解析

    stm32作为现在嵌入式物联网单片机行业中经常要用多的技术 xff0c 相信大家都有所接触 xff0c 今天这篇就给大家详细的分析下有关于stm32的出口 xff0c 还不是很清楚的朋友要注意看看了哦 xff0c 在最后还会为大家分享有些关
  • 串口数据传输当中的共用体和结构体转换

    https www cnblogs com codecamel p 4703174 html
  • extern "C" 引起的 error C2059

    extern 34 C 34 引起的 error C2059 转 在扩展名为 C的源文件中使用 extern 34 C 34 会引发错误 C2059 xff0c 错误提示为 xff1a error C2059 syntax error 39
  • 串口接收不定长数据

    这个通用的方法 xff0c 其实原理就是传输两个字节间是否超过了指定时间 xff0c 如果超过了一定的时间 xff0c 就认为是接收完一帧数据了 首先我们要知道 xff0c 串口是接收一个字节 xff0c 就会发生一次中断 xff0c 如果
  • VScode实现本地与远端同步开发的两种方式

    远程服务端开发IDE分析 这里仅对Pycharm 和 Visual Studio Code 简称VS或VScode 做简单的对比分析 xff0c Pycharm是面向专业开发者的Python IDE xff0c 分为Professional
  • MPU6050介绍及姿态解算

    1 介绍 xff1a MPU6050 是 InvenSense 公司推出的全球首款整合性 6 轴运动处理组件 xff0c 相较于多组件方案 xff0c 免除了组合陀螺仪与加速器时之轴间差的问题 xff0c 减少了安装空间 xff08 1 x
  • 2022 数学建模B题 高教社杯 含半成品论文 部分代码 全部数学模型 和全套思路

    2022 数学建模国赛B题 高教社杯 含半成品论文 部分代码 全部数学模型 和全套思路 定时更新 xff01 xff01 全部内容见 xff1a https mianbaoduo com o bread mbd Y5WUkppr 第一问 根
  • 【Java】String字符串的最大长度是多少?

    先说结论 对于Java字符串的最大长度 要分为2种情况进行讨论 编译期 一般情况下 最大长度为65534 运行期 Integer MAX VALUE 接下来通过对一个字节码文件反编译来解释一下为什么 一 编译期String字符串的最大长度为
  • 电脑间通过串口传输数据【串口练习】

    目录 一 串口通信概述1 串口如何连接2 如何计算波特率 二 实验演示1 实验设备2 实际电路连接3 通过串口传输数据 三 总结参考文献 一 串口通信概述 串口通信 xff08 Serial Communications xff09 的概念
  • 基于RK1126的人工智能安防检测方案,支持AI算法二次开发定制

    AI BOX 是一款基于 RK1126 设计的高性能 低功耗的边缘计算设备 xff0c 2Tops RK1126 支持 4K H264 H265 解码器解码 xff0c 支持1080P 64 60fps H264 H265 编码器编码 xf
  • 基于RK3399+PID的手持稳定云台的设计与实现

    手持稳定云台的主要作用是将外界环境因数引起的相机姿态变化进行隔离 如因操作者运动造成的机体震动 风阻力矩等 xff0c 为了确保工作中相机的视轴始终保持期望的姿态不动 云台相机要拍摄出高质量的影像最重要的就是保证相机的视轴相对目标保持稳定