0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

立創(chuàng)梁山派開發(fā)板-21年電賽F題-送藥小車-小車角度環(huán)的調(diào)試與實現(xiàn)

jf_31863339 ? 來源:jf_31863339 ? 作者:jf_31863339 ? 2023-07-27 10:18 ? 次閱讀

小車轉向的調(diào)試與實現(xiàn)

怎么實現(xiàn)小車的90度轉向?

首先,在09_國產(chǎn)IMU移植及姿態(tài)解算.md里面我們可以獲取到小車的姿態(tài)信息,對應的轉向信息就是Yaw(偏航角)。

而在08_直流減速電機PID速度環(huán)與位置環(huán)調(diào)試中我們也可以準確控制小車輪子的轉速和轉多少個脈沖(也就是轉幾圈)了。

這樣實現(xiàn)小車的轉向就有了兩種方案了。一種是用Yaw(偏航角)作為測量值,想要轉的角度作為目標值,用PID驅動小車以一定的速度去旋轉來達到目標值。

第二種是在實現(xiàn)小車輪子位置環(huán)的基礎上,控制兩邊輪子同時向不同的方向旋轉一定的圈數(shù)(編碼器脈沖),在小車輪子不打滑的情況下轉過的角度就是一個確定的值,在送藥小車的地圖中,旋轉基本都是90度的,所以這種實現(xiàn)方法會很簡單也容易調(diào)試。

用角度環(huán)實現(xiàn)90度轉向

在pid_thread.c中實現(xiàn):

創(chuàng)建相應的PID控制參數(shù)的結構體:

positional_pid_params_t car_angle_ring_pid;

初始化控制結構體并修改kp ki kd:

//角度環(huán)配置
//角度環(huán) pid 參數(shù)初始化
positional_pid_init(&car_angle_ring_pid, 0.015, 0, 0, 0.1, 2, -2);
//修改 角度環(huán) kp ki kd
car_angle_ring_pid.positional_pid_set_value(&car_angle_ring_pid, 0.015, 0,
                                            0);

在PID的軟件定時器回調(diào)函數(shù)中計算兩個輪子需要的速度:

// 小車角度環(huán)
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;
}

打開角度環(huán)后他就會保持Yaw為0,如下面這個圖一樣:

wKgZomTB0_CAGcVLAB6Ip3df6Pc667.jpg

下面是設定他靠角度換旋轉90度的效果:

wKgZomTB0_OAL-mcAMWJ-SB9-D4998.jpg

用位置環(huán)實現(xiàn)90度轉向

還是在pid_thread.c中實現(xiàn):

在08_直流減速電機PID速度環(huán)與位置環(huán)調(diào)試已經(jīng)可以讓輪子轉固定的脈沖(圈數(shù))了,直接把對應的目標值加給電機1和電機2的位置目標就可以了。

// 位置式旋轉,負數(shù)左轉,正數(shù)右轉。
void car_spin_position(int32_t _position_target)
{
    motor1_position_target += -_position_target;    motor2_position_target -= _position_target;
}

在實際實現(xiàn)中,如下面的gif圖所示:

wKgaomTB0_WAQLwDABnYgU9ZdEk092.jpg



審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電機
    +關注

    關注

    142

    文章

    9031

    瀏覽量

    145693
  • PID
    PID
    +關注

    關注

    35

    文章

    1472

    瀏覽量

    85595
  • 開發(fā)板
    +關注

    關注

    25

    文章

    5074

    瀏覽量

    97656
收藏 人收藏

    評論

    相關推薦

    ARM開發(fā)板與樹莓的比較

    ARM開發(fā)板和樹莓都是基于ARM架構的單板計算機,它們在教育、工業(yè)控制、物聯(lián)網(wǎng)等領域有著廣泛的應用。 硬件配置 ARM開發(fā)板和樹莓的硬件配置各有特點,具體取決于不同的型號和制造商。
    的頭像 發(fā)表于 11-05 11:11 ?492次閱讀

    自適應藍牙控制智能小車

    基于野火Renesas R7FA8D1BH (Cortex?-M85)開發(fā)板,設計的一款智能控制小車。其可實現(xiàn)采集現(xiàn)場環(huán)境的溫度、濕度、光照強度,同時使用超聲波雷達掃描環(huán)境的參數(shù),以了解特殊環(huán)境的地形特性
    發(fā)表于 10-07 23:08

    樹莓和arm開發(fā)板的區(qū)別

    樹莓(Raspberry Pi)和ARM開發(fā)板都是基于ARM架構的微型計算機,但它們之間存在一些關鍵區(qū)別。 一、歷史背景 樹莓(Raspberry Pi) 樹莓是由英國樹莓
    的頭像 發(fā)表于 08-30 15:36 ?1065次閱讀

    linux開發(fā)板與樹莓的區(qū)別

    定義和用途 Linux開發(fā)板:Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式開發(fā)板,通常用于工業(yè)自動化、物聯(lián)網(wǎng)、智能家居等領域。 樹莓:樹莓
    的頭像 發(fā)表于 08-30 15:34 ?1025次閱讀

    19.3-星曈科技 openmv Hopenmv發(fā)送五個uchar Openmv+STM32F103C8T6視覺巡線小車 STM32循跡小車系列教程

    19.3-【星曈科技】openmv Hopenmv發(fā)送五個uchar Openmv+STM32F103C8T6視覺巡線小車 STM32循跡小車系列教程 使用OpenMV循跡 openMV尋跡與
    的頭像 發(fā)表于 08-20 11:32 ?932次閱讀
    19.3-星曈科技 openmv Hopenmv發(fā)送五個uchar Openmv+STM32<b class='flag-5'>F</b>103C8T6視覺巡線<b class='flag-5'>小車</b> STM32循跡<b class='flag-5'>小車</b>系列教程

    19.4-STM32接收數(shù)據(jù)-狀態(tài)顯示在屏幕 openMV尋跡與小車控制 Openmv+STM32F103C8T6視覺巡線小車

    19.4-STM32接收數(shù)據(jù)-狀態(tài)顯示在屏幕 openMV尋跡與小車控制 Openmv+STM32F103C8T6視覺巡線小車
    的頭像 發(fā)表于 08-20 11:12 ?957次閱讀
    19.4-STM32接收數(shù)據(jù)-狀態(tài)顯示在屏幕 openMV尋跡與<b class='flag-5'>小車</b>控制 Openmv+STM32<b class='flag-5'>F</b>103C8T6視覺巡線<b class='flag-5'>小車</b>

    【核桃ZeroW開發(fā)板體驗連載】核桃ZeroW開發(fā)板拆箱、組裝、上,

    核桃ZeroW開發(fā)板拆箱、組裝、上 1.做工很精致,芯片很強大 2.自帶WIFI、藍牙、4K高清接口,TYPEC供電,彩屏驅動 3.可以用python、C、C++進行開發(fā) 4.自
    發(fā)表于 08-09 11:08

    STM32平衡小車原理圖

    STM32f103c8t6平衡小車原理圖
    發(fā)表于 07-05 10:54 ?1次下載

    【Vision Board創(chuàng)客營連載體驗】基于RA8D1-Vision Board的自動路徑規(guī)劃小車

    電機和編碼器實現(xiàn),大腦使用RA8D1-Vision Board開發(fā)板的openmv固件完成障礙識別和底盤移動控制,兩個部分使用串口進行通訊。 二、底盤:(1)底盤使用普通車輪以菱形布局,可實現(xiàn)
    發(fā)表于 06-18 15:33

    【項目展示】基于CW32的遙控循跡小車

    CW32循跡小車.zip_免費高速下載|百度網(wǎng)盤-分享無限制? 一、概述 CW32循跡、遙控小車具有循跡和遙控兩種功能,小車的硬件模塊由CW32F030C8T6小藍板、智能
    的頭像 發(fā)表于 05-31 17:33 ?1343次閱讀
    【項目展示】基于CW32的遙控循跡<b class='flag-5'>小車</b>

    AGV小車升降平臺控制

    簡介: 應用于控制AGV小車升降,推拉,勾取動作 應用場景: 升降裝置結構,AGV小車升降推拉裝置結構 1、產(chǎn)品介紹: 本產(chǎn)品是AGV小車升降平臺控制,應用于控制AGV
    的頭像 發(fā)表于 05-11 16:30 ?619次閱讀
    AGV<b class='flag-5'>小車</b>升降平臺控制<b class='flag-5'>板</b>

    用悟空全志H3開發(fā)板做一個基于ROS系統(tǒng)的全向輪小車

    這個強大的開發(fā)板的一些關鍵特性以及我是如何利用它來打造一個全向輪的小車的。 2、產(chǎn)品設計介紹 本次設計的全向輪小車是在一個圓形底盤上安裝了三個帶有反饋編碼器的全向輪,控制中心是悟空
    發(fā)表于 05-06 11:15

    米爾電子和瑞薩電子推出首款MPU生態(tài)開發(fā)板瑞米

    近日,米爾電子和瑞薩電子共同定義和開發(fā)了瑞薩第一款MPU生態(tài)開發(fā)板——瑞米(Remi Pi)正式上市了!在各種Pi板卡琳瑯滿目的當下,Remi Pi是一款與眾不同的開發(fā)板,它兼顧了嚴
    的頭像 發(fā)表于 01-25 09:21 ?1123次閱讀

    【飛騰4G版免費試用】飛騰4G版開發(fā)板套裝測試及環(huán)境搭建

    先簡單介紹一下這款飛騰4G版開發(fā)板套裝; 飛騰是由中港螢火工場研發(fā)的一款面向行業(yè)工程師、學生和愛好者的開源硬件。主板處理器采用飛騰嵌入式四核處理器,兼容ARM V8架構,包含2個
    發(fā)表于 01-22 00:47

    使用愛芯Pro開發(fā)板部署人體姿態(tài)估計模型

    在經(jīng)過之前對于開發(fā)板的使用,以及通過幾個愛芯官方給出的示例demo(mobilenet/yolov5)在開發(fā)板上的部署之后,筆者也逐漸了解了愛芯這塊
    的頭像 發(fā)表于 01-09 09:50 ?1453次閱讀
    使用愛芯<b class='flag-5'>派</b>Pro<b class='flag-5'>開發(fā)板</b>部署人體姿態(tài)估計模型