一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

AI模型部署邊緣設(shè)備的奇妙之旅:視覺巡線

福州市凌睿智捷電子有限公司 ? 2025-03-31 09:56 ? 次閱讀

1、項(xiàng)目簡(jiǎn)介

在本次項(xiàng)目中,我們將采用LockAI視覺攝像頭與OpenCV-C++技術(shù)相結(jié)合的方式來實(shí)現(xiàn)特定場(chǎng)地內(nèi)的視覺巡線任務(wù)。

控制方面,我們選用了小凌派-RK2206開發(fā)板,該開發(fā)板運(yùn)行OpenHarmony請(qǐng)諒解操作系統(tǒng),并通過串口通訊與LockAI進(jìn)行高效的數(shù)據(jù)交互?;跀z像頭傳輸回來的目標(biāo)坐標(biāo)數(shù)據(jù),我們將運(yùn)用PID算法精確地對(duì)智能車的行駛進(jìn)行調(diào)控。這樣,不僅能夠確保智能車沿著預(yù)定線路穩(wěn)定行駛,還能通過實(shí)時(shí)數(shù)據(jù)分析優(yōu)化行車路徑,提升整體運(yùn)行效率和穩(wěn)定性。整個(gè)方案集成了先進(jìn)的圖像識(shí)別技術(shù)和精準(zhǔn)的控制算法,為實(shí)現(xiàn)自動(dòng)化巡線提供了可靠的技術(shù)保障。

2、基本知識(shí)

2.1、PID算法簡(jiǎn)介

PID算法,即比例-積分-微分(Proportional-Integral-Derivative)控制器,是一種在工業(yè)控制中廣泛應(yīng)用的反饋控制機(jī)制。它通過計(jì)算設(shè)定值(目標(biāo)值)與實(shí)際值之間的誤差,并基于此誤差進(jìn)行調(diào)節(jié),以達(dá)到穩(wěn)定系統(tǒng)輸出的目的。其原理如下:

比例(P)控制:比例控制是根據(jù)當(dāng)前誤差值(即設(shè)定值與實(shí)際值之差)直接按比例調(diào)整輸出。它的作用是快速響應(yīng)誤差,減少誤差幅度。比例系數(shù)Kp越大,調(diào)節(jié)的速度越快,但是過大的Kp會(huì)導(dǎo)致系統(tǒng)振蕩。

積分(I)控制:積分控制是對(duì)過去所有誤差的累積進(jìn)行調(diào)節(jié),其目的是消除靜差(即系統(tǒng)穩(wěn)定后仍然存在的誤差)。積分項(xiàng)通過累加過去的誤差來影響控制量,使得即使誤差很小,只要持續(xù)存在,也會(huì)逐漸增加控制量,直到誤差被完全消除。積分系數(shù)Ki需要謹(jǐn)慎選擇,因?yàn)樘叩姆e分作用可能導(dǎo)致系統(tǒng)不穩(wěn)定。

微分(D)控制:微分控制考慮的是誤差的變化率,用于預(yù)測(cè)誤差的未來趨勢(shì),從而提前采取措施減小誤差。微分項(xiàng)能夠幫助抑制超調(diào)現(xiàn)象,提高系統(tǒng)的響應(yīng)速度和平穩(wěn)性。然而,由于它對(duì)噪聲較為敏感,因此實(shí)際應(yīng)用中往往需要慎重設(shè)置微分系數(shù)Kd。

在實(shí)際的控制過程中我們采用離散型PID控制。在離散時(shí)間系統(tǒng)中,假設(shè)采樣周期為TT,則離散型PID控制器的輸出u(k)u(k)可以表示為: u(k)=Kpe(k)+Ki∑i=0kTe(i)+Kde(k)?e(k?1)Tu(k)=Kpe(k)+K**ii=0kTe(i)+KdT**e(k)?e(k?1) 其中,

KpK**p、KiK**i和 KdK**d分別為比例、積分和微分系數(shù)。

e(k)e(k) 代表第kk次采樣時(shí)的誤差,即設(shè)定值與實(shí)際值之差。

TT是采樣時(shí)間間隔。

為了更有效地實(shí)現(xiàn)積分項(xiàng)的計(jì)算,通常采用增量式PID算法,其表達(dá)式為: Δu(k)=u(k)?u(k?1)=Kp[e(k)?e(k?1)]+KiTe(k)+Kde(k)?2e(k?1)+e(k?2)TΔu(k)=u(k)?u(k?1)=K**p[e(k)?e(k?1)]+KiT**e(k)+KdT**e(k)?2e(k?1)+e(k?2)

這樣做的好處在于,只需保存最近幾次的誤差值以及上一次的控制量,就可以計(jì)算出當(dāng)前的控制增量Δu(k)Δu(k),從而減少了存儲(chǔ)需求,并且易于編程實(shí)現(xiàn)。

2.2、LockAI簡(jiǎn)介

凌智視覺模塊(Lockzhiner Vision Module) 是福州市凌睿智捷電子有限公司聯(lián)合百度飛槳傾力打造的一款高集成度人工智能視覺模塊,專為邊緣端人工智能和機(jī)器視覺應(yīng)用而設(shè)計(jì)。讀者如有興趣,可以參考Gitee倉庫(LockAI Gitee倉)

3、實(shí)驗(yàn)內(nèi)容

3.1、視覺代碼實(shí)現(xiàn)

本項(xiàng)目是基于攝像頭的視覺檢測(cè)系統(tǒng),主要功能包括實(shí)時(shí)捕獲視頻流、提取感興趣區(qū)域(ROI)、通過 HSV 閾值分割檢測(cè)黑色區(qū)域,并計(jì)算目標(biāo)質(zhì)心位置以確定水平偏移量。系統(tǒng)通過串口將質(zhì)心 X 坐標(biāo)發(fā)送給外部設(shè)備(如小車控制器),同時(shí)在圖像上繪制 ROI 邊框和質(zhì)心位置,并將處理結(jié)果發(fā)送至編輯模塊進(jìn)行顯示,便于調(diào)試和驗(yàn)證。代碼采用模塊化設(shè)計(jì),支持動(dòng)態(tài)調(diào)整攝像頭分辨率,具備良好的靈活性和擴(kuò)展性,適用于智能車視覺巡線、目標(biāo)跟蹤等場(chǎng)景。為進(jìn)一步提升性能,建議增強(qiáng)異常處理機(jī)制、優(yōu)化算法效率,并將關(guān)鍵參數(shù)提取到配置文件中以便于調(diào)整和適配不同環(huán)境。整體而言,該系統(tǒng)實(shí)現(xiàn)了實(shí)時(shí)性、可視化與模塊化的結(jié)合,為嵌入式視覺應(yīng)用提供了可靠的技術(shù)支持。

#include#include#include#include#include#include#includeintmain(intargc,char*argv[]){ // 設(shè)置串口波特率為115200 lockzhiner_vision_module::USART1 usart; if(!usart.Open(115200)) { std::cout <> temp_mat;// 獲取新的一幀 if(temp_mat.empty()) { std::cerr <(cx + roi_rect.x),static_cast(cy + roi_rect.y)),5, cv::Scalar(0,255,0),-1);// 綠色圓點(diǎn)表示質(zhì)心位置 // 輸出質(zhì)心的X坐標(biāo) std::cout <

3.2、PID代碼實(shí)現(xiàn)

本項(xiàng)目主要通過串口與 LockAI 攝像頭進(jìn)行通信,并在串口任務(wù)中解析出目標(biāo)的關(guān)鍵數(shù)據(jù),例如目標(biāo)的質(zhì)心坐標(biāo)、目標(biāo)檢測(cè)區(qū)域的大小等信息。這些數(shù)據(jù)被用作 PID 控制器的反饋輸入,進(jìn)而計(jì)算出 PID 的輸出值。小凌派開發(fā)板基于該輸出值實(shí)現(xiàn)了麥克納姆輪的運(yùn)動(dòng)解算。只需輸入期望的 X 軸、Y 軸以及旋轉(zhuǎn) W 軸的速度,即可通過解算函數(shù)計(jì)算出四個(gè)輪子對(duì)應(yīng)的速度。各軸的速度會(huì)自動(dòng)疊加,確保運(yùn)動(dòng)的平滑性與精確性。將 PID 的輸出結(jié)果輸入到麥克納姆輪的解算函數(shù)中,即可實(shí)現(xiàn)對(duì)小車車身姿態(tài)和運(yùn)動(dòng)的精準(zhǔn)控制。

floatPID_Calc(PidTypeDef *pid,floatref,floatset){ if(pid == NULL) { return0.0f; } pid->error[2] = pid->error[1]; pid->error[1] = pid->error[0]; pid->set=set; pid->fdb =ref; pid->error[0] =set-ref; if(pid->mode == PID_POSITION) { pid->Pout = pid->Kp * pid->error[0]; pid->Iout += pid->Ki * pid->error[0]; pid->Dbuf[2] = pid->Dbuf[1]; pid->Dbuf[1] = pid->Dbuf[0]; pid->Dbuf[0] = (pid->error[0] - pid->error[1]); pid->Dout = pid->Kd * pid->Dbuf[0]; LimitMax(pid->Iout, pid->max_iout); pid->out= pid->Pout + pid->Iout + pid->Dout; LimitMax(pid->out, pid->max_out); } elseif(pid->mode == PID_DELTA) { pid->Pout = pid->Kp * (pid->error[0] - pid->error[1]); pid->Iout = pid->Ki * pid->error[0]; pid->Dbuf[2] = pid->Dbuf[1]; pid->Dbuf[1] = pid->Dbuf[0]; pid->Dbuf[0] = (pid->error[0] -2.0f* pid->error[1] + pid->error[2]); pid->Dout = pid->Kd * pid->Dbuf[0]; pid->out+= pid->Pout + pid->Iout + pid->Dout; LimitMax(pid->out, pid->max_out); } returnpid->out;}voidUserControl(){ WheelControl wheelControls[WHEELS_COUNT]; floatvx =0;// X方向線速度,單位:m/s floatvy =0;// Y方向線速度,單位:m/s floatw =0; // 角速度,單位:rad/s CtrolInit(); for(;;) { // PID_Calc(&PWMPid[0], x, 320); // PID_Calc(&PWMPid[0], x, 320); if(FirstRec ==1) { // 檢測(cè)用 // PID_Calc(&PWMPid[2], x, 240); // PID_Calc(&PWMPid[1], s, 10000); // calculateWheelPWMSpeeds(-PWMPid[1].out, vy, PWMPid[2].out, wheelControls); // 循跡用 PID_Calc(&PWMPid[2], x,240); calculateWheelPWMSpeeds(-5, vy, PWMPid[2].out, wheelControls); // 設(shè)置方向GPIO LzGpioSetVal(GPIO0_PA5, wheelControls[0].direction);// 右前 LzGpioSetVal(GPIO0_PA3, wheelControls[3].direction);// 右后 LzGpioSetVal(GPIO0_PA1, wheelControls[2].direction);// 左后 LzGpioSetVal(GPIO0_PA0, wheelControls[1].direction);// 左前 // 啟動(dòng)PWM IoTPwmStart(RU_B4, wheelControls[0].pwm,1000);// 右前 IoTPwmStart(RD_B6, wheelControls[3].pwm,1000);// 右后 IoTPwmStart(LD_C7, wheelControls[2].pwm,1000);// 左后 IoTPwmStart(LU_C3, wheelControls[1].pwm,1000);// 左前 } LOS_Msleep(1); }}

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

    關(guān)注

    37

    文章

    1479

    瀏覽量

    86945
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    33554

    瀏覽量

    274203
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5389

    瀏覽量

    100901
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    邊緣AI應(yīng)用越來越普遍,AI模型邊緣端如何部署?

    模型在端側(cè)的部署也成了業(yè)界關(guān)注的焦點(diǎn)。 ? 如何把AI 模型邊緣部署 ? 首先得軟硬件適配
    的頭像 發(fā)表于 07-04 00:11 ?3046次閱讀
    <b class='flag-5'>邊緣</b><b class='flag-5'>AI</b>應(yīng)用越來越普遍,<b class='flag-5'>AI</b><b class='flag-5'>模型</b>在<b class='flag-5'>邊緣</b>端如何<b class='flag-5'>部署</b>?

    邊緣側(cè)部署模型優(yōu)勢(shì)多!模型量化解決邊緣設(shè)備資源限制問題

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)大模型邊緣部署是將大模型部署邊緣
    的頭像 發(fā)表于 01-05 00:06 ?4442次閱讀

    AI模型部署邊緣設(shè)備奇妙之旅:如何實(shí)現(xiàn)手寫數(shù)字識(shí)別

    處理,而不必傳輸?shù)酵獠糠?wù)器,這有助于更好地保護(hù)用戶隱私和數(shù)據(jù)安全。 然而,邊緣計(jì)算也帶來了獨(dú)特的挑戰(zhàn),特別是在資源受限的嵌入式系統(tǒng)中部署復(fù)雜的AI模型時(shí)。為了確保神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 12-06 17:20

    AI模型部署邊緣設(shè)備奇妙之旅:如何在邊緣部署OpenCV

    的能力。 本文章主要講述如何在邊緣設(shè)備上使用OpenCV。本次使用的邊緣設(shè)備是凌智電子開發(fā)的凌智視覺模塊,具體如下: 如對(duì)該
    發(fā)表于 12-14 09:31

    AI模型部署邊緣設(shè)備奇妙之旅:目標(biāo)檢測(cè)模型

    以及邊緣計(jì)算能力的增強(qiáng),越來越多的目標(biāo)檢測(cè)應(yīng)用開始直接在靠近數(shù)據(jù)源的邊緣設(shè)備上運(yùn)行。這不僅減少了數(shù)據(jù)傳輸延遲,保護(hù)了用戶隱私,同時(shí)也減輕了云端服務(wù)器的壓力。然而,在邊緣
    發(fā)表于 12-19 14:33

    AI模型部署邊緣設(shè)備奇妙之旅邊緣設(shè)備的局域網(wǎng)視頻流傳輸方案

    代碼展示了如何使用Python內(nèi)置的socket庫來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的TCP回顯服務(wù)器和客戶端。 3 邊緣設(shè)備實(shí)現(xiàn) 我此次使用的設(shè)備是凌智視覺模塊,但是該
    發(fā)表于 01-04 14:32

    邊緣設(shè)備奇妙之旅:在小凌派-RK2206上部署AI模型來實(shí)現(xiàn)視覺

    1、項(xiàng)目簡(jiǎn)介 在本次項(xiàng)目中,我們將采用LockAI視覺攝像頭與OpenCV-C++技術(shù)相結(jié)合的方式來實(shí)現(xiàn)特定場(chǎng)地內(nèi)的視覺任務(wù)。 控制方面,我們選用了小凌派-RK2206開發(fā)板,該開
    發(fā)表于 03-31 10:58

    Deepseek海思SD3403邊緣計(jì)算AI產(chǎn)品系統(tǒng)

    海思SD3403邊緣計(jì)算AI框架,提供了一套開放式AI訓(xùn)練產(chǎn)品工具包,解決客戶低成本AI系統(tǒng),針對(duì)差異化AI 應(yīng)用場(chǎng)景,自己采集樣本數(shù)據(jù),進(jìn)
    發(fā)表于 04-28 11:05

    EdgeBoard FZ5 邊緣AI計(jì)算盒及計(jì)算卡

    科技攜手百度,推出系列高性能及高性價(jià)比EdgeBoard 邊緣AI計(jì)算卡/計(jì)算盒,助力AI項(xiàng)目落地??伸`活適配海量的且不斷迭代的AI模型,并
    發(fā)表于 08-31 14:12

    介紹在STM32cubeIDE上部署AI模型的系列教程

    介紹在STM32cubeIDE上部署AI模型的系列教程,開發(fā)板型號(hào)STM32H747I-disco,值得一看。MCUAI原文鏈接:【嵌入式AI開發(fā)】篇四|
    發(fā)表于 12-14 09:05

    嵌入式邊緣AI應(yīng)用開發(fā)指南

    保駕護(hù)航。下面讓我們來了解如何不借助手動(dòng)工具或手動(dòng)編程來選擇模型、隨時(shí)隨地訓(xùn)練模型并將其無縫部署到TI處理器上,從而實(shí)現(xiàn)硬件加速推理。圖1: 邊緣A
    發(fā)表于 11-03 06:53

    嵌入式AI邊緣智能系統(tǒng)用,加速機(jī)器人&amp;機(jī)器視覺設(shè)備部署 ——2022研華工業(yè)物聯(lián)網(wǎng)在線論壇

    邊緣智能系統(tǒng)包含了邊緣AI + 邊緣計(jì)算,在設(shè)備側(cè)進(jìn)行推理和部署深度學(xué)習(xí)
    發(fā)表于 07-07 11:31 ?727次閱讀
    嵌入式<b class='flag-5'>AI</b><b class='flag-5'>邊緣</b>智能系統(tǒng)用,加速機(jī)器人&amp;機(jī)器<b class='flag-5'>視覺</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>部署</b> ——2022研華工業(yè)物聯(lián)網(wǎng)在線論壇

    AI模型部署邊緣設(shè)備奇妙之旅:如何在邊緣部署OpenCV

    1簡(jiǎn)介Opencv(OpenSourceComputerVisionLibrary)是一個(gè)基于開源發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫,它實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法,已成為計(jì)算機(jī)視覺領(lǐng)域最有
    的頭像 發(fā)表于 12-14 09:10 ?688次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b><b class='flag-5'>邊緣</b><b class='flag-5'>設(shè)備</b>的<b class='flag-5'>奇妙</b><b class='flag-5'>之旅</b>:如何在<b class='flag-5'>邊緣</b>端<b class='flag-5'>部署</b>OpenCV

    AI模型部署邊緣設(shè)備奇妙之旅:目標(biāo)檢測(cè)模型

    1簡(jiǎn)介人工智能圖像識(shí)別是人工智能領(lǐng)域的一個(gè)重要分支,它涉及計(jì)算機(jī)視覺、深度學(xué)習(xí)、機(jī)器學(xué)習(xí)等多個(gè)領(lǐng)域的知識(shí)和技術(shù)。圖像識(shí)別主要是處理具有一定復(fù)雜性的信息。計(jì)算機(jī)采用與人類類似的圖像識(shí)別原理,即對(duì)圖像
    的頭像 發(fā)表于 12-19 14:12 ?1058次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b><b class='flag-5'>邊緣</b><b class='flag-5'>設(shè)備</b>的<b class='flag-5'>奇妙</b><b class='flag-5'>之旅</b>:目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

    AI模型部署邊緣設(shè)備奇妙之旅邊緣設(shè)備的局域網(wǎng)視頻流傳輸方案

    1、簡(jiǎn)介隨著物聯(lián)網(wǎng)(IoT)和智能設(shè)備的快速發(fā)展,邊緣計(jì)算技術(shù)已成為高效數(shù)據(jù)處理和服務(wù)交付的重要組成部分。當(dāng)我們考慮利用邊緣設(shè)備進(jìn)行實(shí)時(shí)監(jiān)控時(shí),一個(gè)常見的需求是通過攝像頭捕捉視頻,并
    的頭像 發(fā)表于 01-04 12:00 ?526次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b><b class='flag-5'>邊緣</b><b class='flag-5'>設(shè)備</b>的<b class='flag-5'>奇妙</b><b class='flag-5'>之旅</b>:<b class='flag-5'>邊緣</b>端<b class='flag-5'>設(shè)備</b>的局域網(wǎng)視頻流傳輸方案