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

这篇具有很好参考价值的文章主要介绍了ChatGPT带我做四轴飞行器和自平衡小车。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

// 飞行器控制参数结构体
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带我做四轴飞行器和自平衡小车,chatgpt,stm32,c语言

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

// 飞行器控制函数
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带我做四轴飞行器和自平衡小车,chatgpt,stm32,c语言
这段伪代码大致描述了如何将传感器数据转换为控制量,貌似就是乘了一个参数,参考意义不大。
根据ChatGPT提供的一些大方向,最终设计出的主板实物如下图所示:
ChatGPT带我做四轴飞行器和自平衡小车,chatgpt,stm32,c语言
这款主板已经能完美驾驭四轴飞行器和两轮自平衡小车,目前已在淘宝上线,在淘宝搜索"FlyBalance飞行器平衡车兼容驱动"或者直接点这里跳转,感兴趣的朋友可以移步那里获取更多信息。文章来源地址https://www.toymoban.com/news/detail-537469.html

到了这里,关于ChatGPT带我做四轴飞行器和自平衡小车的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 飞控学习笔记-飞行器数学模型(2)

    十字型模型 模型仿真 反扭力 仿真

    2024年02月12日
    浏览(47)
  • 【四旋翼飞行器】【模拟悬链机器人的动态】设计和控制由两个四旋翼飞行器推动的缆绳研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 四旋翼飞

    2024年02月05日
    浏览(41)
  • MATLAB - 四旋翼飞行器动力学方程

      本例演示了如何使用 Symbolic Math Toolbox™(符号数学工具箱)推导四旋翼飞行器的连续时间非线性模型。具体来说,本例讨论了 getQuadrotorDynamicsAndJacobian 脚本,该脚本可生成四旋翼状态函数及其雅各布函数。这些函数将在使用非线性模型预测控制(模型预测控制工具箱)控制

    2024年01月22日
    浏览(65)
  • SkyEye:助力飞行器状态控制系统仿真

    ​ 飞行器与常见的航天器一样,属于安全关键领域的大型复杂设备,对安全性、可靠性有着极高的要求。为保证稳定飞行,需要对目标对象进行实时跟踪,通过发出正确的修正偏差指令来操纵飞行器改变飞行姿态,因此对 飞行器状态控制系统 的研究极其重要。 飞行器状态控

    2024年03月09日
    浏览(64)
  • 航拍飞行器经营商城小程序的作用是什么

    航拍人群越来越越多,一款靠谱的装备往往能达到预期效果,随着互联网信息传播度加深,也吸引了大批同样的爱好者加入航拍序列。 对航拍飞行器企业/经营商来说,市场增幅下也带来了不少商机,然在实际销售及客户赋能方面还是面临一些痛点。 通过【 雨科 】平台 搭建

    2024年02月07日
    浏览(45)
  • UE4罗技X56飞行器开发配置

    提示:使用罗技X56模拟器映射键盘输入 文章目录 前言 一、下载罗技X56驱动X56 H.O.T.A.S. 二、使用方法 1.使用UE4插件Windows Rawlnput 2.X56 H.O.T.A.S.配置文件 总结:以上两种方法都可以实现我们需要的效果,方法二对应键盘的映射,使用更简单 如下(示例):在U4中找到-插件-Window

    2024年02月09日
    浏览(67)
  • 航空飞行器运维VR模拟互动教学更直观有趣

    传统的二手车鉴定评估培训模式存在实践性不强、教学样本不足、与实际脱节等一些固有的不足。有了VR虚拟仿真技术的加持,二手车鉴定评估VR虚拟仿真实训系统逐渐进入实训领域,为院校及企业二手车检测培训提供了全新的解决方案。 高职院校汽车专业虚拟仿真实训平台

    2024年01月20日
    浏览(46)
  • 控制四旋翼飞行器以进行多目标航点导航的MPC算法(Matlab代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 目前研

    2024年02月08日
    浏览(48)
  • MATLAB - 利用非线性模型预测控制(Nonlinear MPC)来控制四旋翼飞行器

    本示例展示了如何利用非线性模型预测控制(MPC)为四旋翼飞行器设计一个跟踪轨迹的控制器。 四旋翼飞行器有四个向上的旋翼。从四旋翼飞行器的质量中心出发,旋翼呈等距离的正方形排列。四旋翼飞行器动力学数学模型采用欧拉-拉格朗日方程 [1]。 四旋翼飞行器的十二种

    2024年01月22日
    浏览(69)
  • 我做了一个 VSCode 插件版的 ChatGPT

    大家好,我是风筝 其实很早之前就想学学 VSCode 插件开发了,但是又不知道做什么,加上我这半吊子前端水平,迟迟没有动手。 最近 ChatGPT 火的一塌糊涂,我也一直在用,真的非常好用,有些问题之前需要 Google 搜索,现在用 ChatGPT 基本上都能直接解决,效率提升了不少。

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包