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

    文章

    8929

    浏览量

    145065
  • PID
    PID
    +关注

    关注

    35

    文章

    1471

    浏览量

    85280
  • 开发板
    +关注

    关注

    25

    文章

    4942

    浏览量

    97174
收藏 人收藏

    评论

    相关推荐

    ARM开发板与树莓的比较

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

    树莓和arm开发板的区别

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

    linux开发板与树莓的区别

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

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

    19.3-【星曈科技】openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程 使用OpenMV循迹 openMV寻迹与
    的头像 发表于 08-20 11:32 795次阅读
    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 771次阅读
    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

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

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

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

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

    AGV小车升降平台控制

    简介: 应用于控制AGV小车升降,推拉,勾取动作 应用场景: 升降装置结构,AGV小车升降推拉装置结构 1、产品介绍: 本产品是AGV小车升降平台控制,应用于控制AGV
    的头像 发表于 05-11 16:30 543次阅读
    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 1019次阅读

    基于启明6M5开发板的无线环境监测小车系统设计

    本项目旨在基于启明6M5开发板设计一个无线环境监测小车系统,用于监测实验室环境,用户能够通过蓝牙对小车进行控制,并通过onenet云平台进行查看当前环境数据以及历史数据。
    的头像 发表于 12-11 12:22 894次阅读
    基于启明6M5<b class='flag-5'>开发板</b>的无线环境监测<b class='flag-5'>小车</b>系统设计

    香橙联合华为发布全新Orange Pi AIpro 开发板,起售价799元

    12月3日,第五届中国计算机教育大会于202312月2日-3日在厦门国际会议中心举行。期间,香橙联合华为发布了基于昇腾的OrangePiAIpro开发板,其8/20TOPS澎湃算力是目前
    的头像 发表于 12-05 10:44 1121次阅读
    香橙<b class='flag-5'>派</b>联合华为发布全新Orange Pi AIpro <b class='flag-5'>开发板</b>,起售价799元

    香橙联合华为发布基于昇腾的Orange Pi AIpro开发板 业界首款基于昇腾AI开发板

    是目前开发板市场中所具备的最大算力,能覆盖生态开发板者的主流应用场景,让用户实践各种创新场景,并为其提供配套的软硬件。而价格更是极为亲民,8TOPS、8GB内存的客价/预售价仅为799元,8TOPS、16GB内存的
    的头像 发表于 12-04 19:04 1450次阅读
    香橙<b class='flag-5'>派</b>联合华为发布基于昇腾的Orange Pi AIpro<b class='flag-5'>开发板</b> 业界首款基于昇腾AI<b class='flag-5'>开发板</b>

    方法|如何为开发板调试新的触摸屏

    方法|如何为开发板调试新的触摸屏
    的头像 发表于 11-30 11:30 865次阅读
    方法|如何为<b class='flag-5'>开发板</b><b class='flag-5'>调试</b>新的触摸屏