0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

立创梁山派开发板-21年电赛F题-送药小车-小车角度环的调试与实现

jf_31863339 来源:jf_31863339 作者:jf_31863339 2023-07-27 10:18 次阅读

小车转向的调试与实现

怎么实现小车的90度转向?

首先,在09_国产IMU移植及姿态解算.md里面我们可以获取到小车的姿态信息,对应的转向信息就是Yaw(偏航角)。

而在08_直流减速电机PID速度环与位置环调试中我们也可以准确控制小车轮子的转速和转多少个脉冲(也就是转几圈)了。

这样实现小车的转向就有了两种方案了。一种是用Yaw(偏航角)作为测量值,想要转的角度作为目标值,用PID驱动小车以一定的速度去旋转来达到目标值。

第二种是在实现小车轮子位置环的基础上,控制两边轮子同时向不同的方向旋转一定的圈数(编码器脉冲),在小车轮子不打滑的情况下转过的角度就是一个确定的值,在送药小车的地图中,旋转基本都是90度的,所以这种实现方法会很简单也容易调试。

用角度环实现90度转向

在pid_thread.c中实现:

创建相应的PID控制参数的结构体:

positional_pid_params_t car_angle_ring_pid;

初始化控制结构体并修改kp ki kd:

//角度环配置
//角度环 pid 参数初始化
positional_pid_init(&car_angle_ring_pid, 0.015, 0, 0, 0.1, 2, -2);
//修改 角度环 kp ki kd
car_angle_ring_pid.positional_pid_set_value(&car_angle_ring_pid, 0.015, 0,
                                            0);

在PID的软件定时器回调函数中计算两个轮子需要的速度:

// 小车角度环
if (car_angle_ring_enable_flag == 1)
{
    static float error = 0;

    error = turn_target - fusion_data.euler.euler.yaw;
    // 处理角度突变
    if (error > 180.0f)
        error -= 360.0f;
    else if (error < -180.0f)
        error += 360.0f;

    angle_ring_speed_target = positional_pid_compute(
        &car_angle_ring_pid, error, fusion_data.euler.euler.yaw);
}
else
{
    turn_target = fusion_data.euler.euler.yaw;
    angle_ring_speed_target = 0;
}

打开角度环后他就会保持Yaw为0,如下面这个图一样:

wKgZomTB0_CAGcVLAB6Ip3df6Pc667.jpg

下面是设定他靠角度换旋转90度的效果:

wKgZomTB0_OAL-mcAMWJ-SB9-D4998.jpg

用位置环实现90度转向

还是在pid_thread.c中实现:

在08_直流减速电机PID速度环与位置环调试已经可以让轮子转固定的脉冲(圈数)了,直接把对应的目标值加给电机1和电机2的位置目标就可以了。

// 位置式旋转,负数左转,正数右转。
void car_spin_position(int32_t _position_target)
{
    motor1_position_target += -_position_target;    motor2_position_target -= _position_target;
}

在实际实现中,如下面的gif图所示:

wKgaomTB0_WAQLwDABnYgU9ZdEk092.jpg



审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电机
    +关注

    关注

    142

    文章

    9019

    浏览量

    145472
  • PID
    PID
    +关注

    关注

    35

    文章

    1472

    浏览量

    85509
  • 开发板
    +关注

    关注

    25

    文章

    5049

    浏览量

    97448
收藏 人收藏

    评论

    相关推荐

    ARM开发板与树莓的比较

    ARM开发板和树莓都是基于ARM架构的单板计算机,它们在教育、工业控制、物联网等领域有着广泛的应用。 硬件配置 ARM开发板和树莓的硬件配置各有特点,具体取决于不同的型号和制造商。
    的头像 发表于 11-05 11:11 443次阅读

    PY32F002A单片机开发板 PY32F002AF15P6开发板 32位MCU,M0+内核

    PY32F002A 开发板上 搭载的是 PY32F002AF15P6 单片机,TSSOP20封装,开发板使用Type C接口供电, 可以用来对PY32
    的头像 发表于 09-03 14:41 516次阅读
    PY32<b class='flag-5'>F</b>002A单片机<b class='flag-5'>开发板</b> PY32<b class='flag-5'>F</b>002AF15P6<b class='flag-5'>开发板</b> 32位MCU,M0+内核

    树莓和arm开发板的区别

    树莓(Raspberry Pi)和ARM开发板都是基于ARM架构的微型计算机,但它们之间存在一些关键区别。 一、历史背景 树莓(Raspberry Pi) 树莓是由英国树莓
    的头像 发表于 08-30 15:36 1017次阅读

    linux开发板与树莓的区别

    定义和用途 Linux开发板:Linux开发板是一种基于Linux操作系统的嵌入式开发板,通常用于工业自动化、物联网、智能家居等领域。 树莓:树莓
    的头像 发表于 08-30 15:34 963次阅读

    19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程

    19.3-【星曈科技】openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程 使用OpenMV循迹 openMV寻迹与
    的头像 发表于 08-20 11:32 890次阅读
    19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32<b class='flag-5'>F</b>103C8T6视觉巡线<b class='flag-5'>小车</b> STM32循迹<b class='flag-5'>小车</b>系列教程

    19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与小车控制 Openmv+STM32F103C8T6视觉巡线小车

    19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与小车控制 Openmv+STM32F103C8T6视觉巡线小车
    的头像 发表于 08-20 11:12 928次阅读
    19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与<b class='flag-5'>小车</b>控制 Openmv+STM32<b class='flag-5'>F</b>103C8T6视觉巡线<b class='flag-5'>小车</b>

    【核桃ZeroW开发板体验连载】核桃ZeroW开发板拆箱、组装、上

    核桃ZeroW开发板拆箱、组装、上 1.做工很精致,芯片很强大 2.自带WIFI、蓝牙、4K高清接口,TYPEC供电,彩屏驱动 3.可以用python、C、C++进行开发 4.自
    发表于 08-09 11:08

    STM32平衡小车原理图

    STM32f103c8t6平衡小车原理图
    发表于 07-05 10:54 1次下载

    【Vision Board客营连载体验】基于RA8D1-Vision Board的自动路径规划小车

    电机和编码器实现,大脑使用RA8D1-Vision Board开发板的openmv固件完成障碍识别和底盘移动控制,两个部分使用串口进行通讯。 二、底盘:(1)底盘使用普通车轮以菱形布局,可实现
    发表于 06-18 15:33

    【项目展示】基于CW32的遥控循迹小车

    CW32循迹小车.zip_免费高速下载|百度网盘-分享无限制  一、概述 CW32循迹、遥控小车具有循迹和遥控两种功能,小车的硬件模块由CW32F030C8T6小蓝板、智能
    的头像 发表于 05-31 17:33 1313次阅读
    【项目展示】基于CW32的遥控循迹<b class='flag-5'>小车</b>

    AGV小车升降平台控制

    简介: 应用于控制AGV小车升降,推拉,勾取动作 应用场景: 升降装置结构,AGV小车升降推拉装置结构 1、产品介绍: 本产品是AGV小车升降平台控制,应用于控制AGV
    的头像 发表于 05-11 16:30 609次阅读
    AGV<b class='flag-5'>小车</b>升降平台控制<b class='flag-5'>板</b>

    用悟空全志H3开发板做一个基于ROS系统的全向轮小车

    这个强大的开发板的一些关键特性以及我是如何利用它来打造一个全向轮的小车的。 2、产品设计介绍 本次设计的全向轮小车是在一个圆形底盘上安装了三个带有反馈编码器的全向轮,控制中心是悟空
    发表于 05-06 11:15

    米尔电子和瑞萨电子推出首款MPU生态开发板瑞米

    近日,米尔电子和瑞萨电子共同定义和开发了瑞萨第一款MPU生态开发板——瑞米(Remi Pi)正式上市了!在各种Pi板卡琳琅满目的当下,Remi Pi是一款与众不同的开发板,它兼顾了严
    的头像 发表于 01-25 09:21 1102次阅读

    【飞腾4G版免费试用】飞腾4G版开发板套装测试及环境搭建

    先简单介绍一下这款飞腾4G版开发板套装; 飞腾是由中港萤火工场研发的一款面向行业工程师、学生和爱好者的开源硬件。主板处理器采用飞腾嵌入式四核处理器,兼容ARM V8架构,包含2个
    发表于 01-22 00:47

    使用爱芯Pro开发板部署人体姿态估计模型

    在经过之前对于开发板的使用,以及通过几个爱芯官方给出的示例demo(mobilenet/yolov5)在开发板上的部署之后,笔者也逐渐了解了爱芯这块
    的头像 发表于 01-09 09:50 1429次阅读
    使用爱芯<b class='flag-5'>派</b>Pro<b class='flag-5'>开发板</b>部署人体姿态估计模型