ChatGPT带我做四轴飞行器和自平衡小车

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照ChatGPT的说法,这款主板的的主控MCU、无线通信、电源管理、外设接口可以共用,需要差异化的有电机驱动、传感器的选择、控制算法和软件、电源供电。ChatGPT说的共用部分没啥争议,有差异化的地方需要细想下:电机驱动显然应该不同,比如四轴飞行器使用空心杯电机,那么它的电机驱动电路只用通过PWM控制空心杯电机的转速即可,平衡车电机就不一样,除了要控制转速,还要能控制正反转方向,还要能测量电机转速实现速度闭环控制;那么传感器的选择呢,四轴飞行器最少要用六轴传感器才行,它要用到三轴陀螺仪和三轴加速度计才能将当前姿态计算出来,平衡车则会少两个轴,因为它左右两个轮子固定了,不能左右倾斜,相当于四轴飞行器的横滚角固定不用测量,所以传感器可以就选用一款六轴传感器,平衡车不用其中两个轴就行了;控制算法和控制逻辑显然也会有差异,毕竟飞控系统和自平衡控制系统的控制原理不一样,用到的姿态检测数据也不一样,电机也不一样;电源供电不一样主要是因为四轴飞行器和平衡车的电机的功率不一样,额定电压也不一样。看来ChatGPT虽然只说大方向,但大方向细想后也没啥不对,接下来按照这个大方向设计顶层原理图图纸如下图所示,差异化的电机驱动部分通过两组GPIO来控制,具体差异在电机驱动模块原理图中设计;传感器直接选择六轴传感器,平衡车不用这么多数据在软件上过滤,硬件上不体现差异;供电由3.7V锂电池输入,通过电源电路分出3.3V和6V两路电源,3.3V给所有芯片供电,6V给平衡车电机供电,四轴飞行器的电机直接由3.7V锂电池供电。
在这里插入图片描述
控制算法与软件上的差异怎么做呢?问问ChatGPT
在这里插入图片描述

// 飞行器控制参数结构体
typedef struct {float roll_gain;float pitch_gain;float yaw_gain;float throttle_gain;
} FlightControllerParams;// 平衡车控制参数结构体
typedef struct {float balance_gain;float steering_gain;
} BalancingControllerParams;// 获取飞行器传感器数据
FlightSensorData getFlightSensorData();// 获取平衡车传感器数据
BalancingSensorData getBalancingSensorData();// 发送飞行器控制信号
void sendFlightControlSignal(FlightControlOutput control_output);// 发送平衡车控制信号
void sendBalancingControlSignal(BalancingControlOutput control_output);// 飞行器控制函数
FlightControlOutput flightControl(FlightSensorData sensor_data, FlightControllerParams params);// 平衡车控制函数
BalancingControlOutput balancingControl(BalancingSensorData sensor_data, BalancingControllerParams params);// 主函数
int main() {// 初始化飞行器控制参数FlightControllerParams flight_controller_params = {.roll_gain = 0.5,.pitch_gain = 0.5,.yaw_gain = 0.5,.throttle_gain = 0.5};// 初始化平衡车控制参数BalancingControllerParams balancing_controller_params = {.balance_gain = 0.5,.steering_gain = 0.5};// 主循环while (1) {// 获取飞行器传感器数据FlightSensorData flight_sensor_data = getFlightSensorData();// 获取平衡车传感器数据BalancingSensorData balancing_sensor_data = getBalancingSensorData();// 飞行器控制FlightControlOutput flight_control_output = flightControl(flight_sensor_data, flight_controller_params);// 平衡车控制BalancingControlOutput balancing_control_output = balancingControl(balancing_sensor_data, balancing_controller_params);// 发送飞行器控制信号sendFlightControlSignal(flight_control_output);// 发送平衡车控制信号sendBalancingControlSignal(balancing_control_output);}return 0;
}

在这里插入图片描述

ChatGPT给出了一个软件设计框架,主循环中就干了三件事:1、获取姿态数据,飞行器获取飞行器的,平衡车获取平衡车的;2、运行控制算法,得到控制信号,这个可以理解为根据当前飞行器姿态计算出一个飞行器电机的控制量,根据当前平衡车姿态计算出一个平衡车电机的控制量;3、将飞行器控制量给飞行器电机驱动电路来调节飞行器电机转速,将平衡车控制量给平衡车电机驱动电路来调节平衡车电机转速和方向。大方向好像没错,这里最复杂的应该是第2点的控制算法应该具体怎么做,再问问ChatGPT:
在这里插入图片描述

// 飞行器控制函数
FlightControlOutput flightControl(FlightSensorData sensor_data, FlightControllerParams params) {// 获取飞行器姿态信息float roll = sensor_data.roll;float pitch = sensor_data.pitch;float yaw = sensor_data.yaw;float throttle = sensor_data.throttle;// 计算飞行器控制输出float roll_output = roll * params.roll_gain;float pitch_output = pitch * params.pitch_gain;float yaw_output = yaw * params.yaw_gain;float throttle_output = throttle * params.throttle_gain;// 返回飞行器控制输出FlightControlOutput control_output = {.roll = roll_output,.pitch = pitch_output,.yaw = yaw_output,.throttle = throttle_output};return control_output;
}// 平衡车控制函数
BalancingControlOutput balancingControl(BalancingSensorData sensor_data, BalancingControllerParams params) {// 获取平衡车姿态信息float balance = sensor_data.balance;float steering = sensor_data.steering;// 计算平衡车控制输出float balance_output = balance * params.balance_gain;float steering_output = steering * params.steering_gain;// 返回平衡车控制输出BalancingControlOutput control_output = {.balance = balance_output,.steering = steering_output};return control_output;
}

在这里插入图片描述
这段伪代码大致描述了如何将传感器数据转换为控制量,貌似就是乘了一个参数,参考意义不大。
根据ChatGPT提供的一些大方向,最终设计出的主板实物如下图所示:
在这里插入图片描述
这款主板已经能完美驾驭四轴飞行器和两轮自平衡小车,目前已在淘宝上线,在淘宝搜索"FlyBalance飞行器平衡车兼容驱动"或者直接点这里跳转,感兴趣的朋友可以移步那里获取更多信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/14403.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统一网关Gateway

一、网关Gateway作用介绍 网关功能: 身份认证和权限校验 对工作人员或者是内部人员才能允许查看敏感信息 一切请求先到网关再到微服务,这样就能做到身份认证和权限校验 服务路由、负载均衡 倘若我们通过了身份认证和权限校验,那怎么知道访问哪…

ChatGPT加持下!OpenAI估值已达290亿美元,新一轮融资宣告结束!

来源:机器之心 因为 ChatGPT 的发布,OpenAI 成为了目前最炙手可热的创业公司,很多投资者都希望加入光荣的股东行列。 根据本周五 TechCrunch 看到的文件,包括 Tiger Global、Sequoia Capital、Andreessen Horowitz、Thrive 和 K2 …

chatgpt赋能python:用Python快速替换文本的技巧

用Python快速替换文本的技巧 在编程世界中,文本处理是一项必备的技能。作为一名有10年Python编程经验的工程师,我深刻理解到Python在文本处理方面的强大之处,特别是在快速替换文本方面。在本篇文章中,我将分享几个用Python快速替…

【AI提示】ChatGPT提示工程课程(吴恩达OpenAI) 自动回复评论+温度参数设置(中文chatgpt版)...

Expanding 在本课中,您将生成针对每位客户的评论量身定制的客户服务电子邮件。 设置 import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fileopenai.api_key os.getenv(OPENAI_API_KEY) def …

AC66U-B1) 刷梅林固件教程

下载固件: 华硕ac6u和ac66u-B1用的是相同的固件,7.5版固件下载地址为http://firmware.koolshare.cn/Koolshare_Merlin_Legacy_380/ASUS/RT-AC66U_B1/ 升级固件 目前华硕路由器原厂固件支持刷第三方固件,因此我们只需要进入华硕路由器的后台…

路由器选择使用指南之一梅林

一、序 看了看我的博客数据,发现有关路由的文章最受欢迎,阅读量最大(仅指笔者所写的文章)。所以,以后多发点有关路由应用的。这一系列介绍的路由系统主要将说说梅林、padavan、和Openwrt。主要笔者也就这三个用得多了…

让梅林R6400支持sftp协议

说明 通常linux中ssh默认支持sftp,梅林路由器中的ssh是精简版,不支持sftp协议。 自带的配置不支持,是否有有办法呢?我们可以先装entware-setup.sh,然后用opkg安装sftp。 有了ssh和sftp,我们可以做很多事…

fgo梅林服务器维护,FGO:梅林池抽卡引发退游现象 国服没强卡真的不能玩?

大家所期待的梅林卡池终于在昨天维护以后正式登录国服FGO,梅林作为FGO第一强卡的存在使得其拥有很多强度党拥趸者,因为其“拐”的属性对于红卡英灵来说具有极大的提升,所有亦在所有国服FGO玩家心中有着重要的地位。而国服本年度开始第二波梅林…

开源路由器-OpenWRT/梅林

文章目录 前言开源路由器开源路由器有多个版本OpenWRTLEDE 华硕梅林华硕梅林官网华硕梅林文档开发工具链 梅林论坛刷机梅林小宝梅林插件梅林插件开发 前言 近段时间,有朋友咨询路由器刷梅林系统,定制上网加速的方案。我研究了一下,整理了一些…

梅林 php mysql_k3梅林7.7!完美安装onmp!!!K3架设php网站,博客,云盘,数据库!!!...

本帖最后由 chengmeiqq 于 2018-3-19 16:16 编辑 k3梅林7.7!完美安装onmp!!!phpMyAdmin-Owncloud-Kodexplo... 固件: K3_Melin_11.16_X7.7.trx 刷机我就不说了 -------------------------------------- 以下都架设下K3路由器上面梅…

如果ChatGPT有1%的风险伤害你,你还会用它吗?超级智能值得恐惧吗

文|Gary Marcus 源|学术头条 “超级智能可能会即将到来,也可能不会。但无论如何,都有很多值得担心的事情。” 近日,人工智能领域内的 “叛逆者”、纽约大学心理学和神经科学荣誉教授 Gary Marcus 发文称,“…

“ChatGPT的问题、风险与机遇”会议综述

来源:清华大学智能法治研究院 本文约7900字,建议阅读10分钟 本文为王博老师于2023年3月26日在“天津大学数字法学系列论坛”讲座的综述。 主讲人:天津大学智算学部王博副教授。王博老师担任天津大学智算学部语言与心理计算研究组负责人。曾先…

用 Python 写了一个自动弹钢琴脚本,轻松弹奏出各种钢琴曲!

(永久免费,扫码加入) 来源丨网络 事情是这样的,女神马上要毕业了,前两天跟我彻夜长谈,还说自己一直有个钢琴家的梦想。 这不为了帮女神圆梦,在我经过一番苦思冥想之后,终于用Python写…

近期微软重大论文----《通用人工智能的火花:GPT-4的早期实验》

这篇论文是最近讨论度极高的一篇论文,推特上几乎被这篇论文刷屏,作者Sebastien Bubeck是微软机器学习基础组的研究经理。他本人之前的研究主要集中在机器学习理论,凸优化,对抗鲁棒性方法,下面是该大佬的个人主页&#…

《分布式人工智能系统》讲习班开始报名|CCF ADL

深度学习正以“软件2.0”的姿态进入到AIGC、生物制药、新材料以及科学计算等领域。这些领域的模型规模越来越大,尤其以ChatGPT为代表的大模型层出不穷,但由于算力增速不足、分布式编程门槛高,分布式人工智能系统成为产学两界共同关注的焦点。…

东数西算与城市算力网发展 | CCDE2023专题论坛

近年来,算网融合已得到ICT、超算、金融等多领域的高度认同,被广泛视为加速产业数字化升级演进的重要抓手。论坛的主题报告围绕“东数西算”和城市算力网发展中算力、网络、大数据和运营等核心问题展开,联合多位院士发起,邀请政府、…

JSP住宅小区物业管理系统(源代码+开题报告+论文+答辩PPT)

详情介绍 小区物业管理毕业设计 (论文) 目 录 摘要——————————————————————————————–1 ABSTRACT———————————————————————————–2 第1章 绪论—————————————————————…

GitHub 前 CTO 再创业,起步便获 2600 万美元投资,唯一竞争对手只有 OpenAI!

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 对于技术人而言,哪有什么真正的退休,不再玩技术的,往往有的也只是说得到,做不到: 2011 年,金山软件创始人、董事长兼 CEO 求伯君宣…

net::ERR_CONNECTION_TIMED_OUT 微信小程序 解决办法

解决办法:查看是否IP地址有误 将查到的ip地址复制到微信小程序以下位置

奇点来临,GPT-4发布!ChatGPT大升级!太太太太强了,见证历史!

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享 点击关注#互联网架构师公众号,领取架构师全套资料 都在这里 0、2T架构师学习资料干货分 上一篇:ChatGPT研究框架(80页PPT,附下载)…