Cov txheej txheem:

Rpibot - Txog Kev Kawm Robotics: 9 Kauj Ruam
Rpibot - Txog Kev Kawm Robotics: 9 Kauj Ruam

Video: Rpibot - Txog Kev Kawm Robotics: 9 Kauj Ruam

Video: Rpibot - Txog Kev Kawm Robotics: 9 Kauj Ruam
Video: LOKY -Txhob Ua Yog Toog (Official MV )Hmong New Song 2024, Hlis ntuj nqeg
Anonim
Rpibot - Txog Kev Kawm Robotics
Rpibot - Txog Kev Kawm Robotics

Kuv yog tus kws tshaj lij software tsim hauv German tuam txhab tsheb. Kuv pib qhov haujlwm no los ua kev kawm rau kev teeb tsa kab ke. Txoj haujlwm tau tso tseg thaum ntxov tab sis kuv nyiam nws heev uas kuv txuas ntxiv hauv kuv lub sijhawm dawb. Qhov no yog qhov tshwm sim…

Kuv muaj cov hauv qab no:

  • Cov cuab yeej yooj yim (tsom mus rau yog software)
  • Kho vajtse pheej yig (li 100 €)
  • Nthuav dav (qee qhov kev xaiv twb yog ib feem ntawm qhov kev piav qhia)
  • Muab qhov hluav taws xob rau txhua qhov khoom siv los ntawm ib qho 5V qhov chaw (powerbank)

Tsis muaj lub hom phiaj tiag tiag ntawm kev kawm. Lub platform tuaj yeem siv rau kev kawm, kev saib xyuas, kev sib tw neeg hlau, …

Nws tsis yog pib qhia. Koj xav tau qee qhov kev paub yooj yim txog:

  • Programming (Nab hab sej)
  • Cov khoom siv hluav taws xob yooj yim (txhawm rau txuas cov qauv ua ke los ntawm qhov hluav taws xob raug)
  • Kev tswj hwm yooj yim (PID)

Thaum kawg koj yuav zaum ntsib teeb meem ib yam li kuv tau ua. Nrog qee qhov xav paub thiab ua siab ntev, koj yuav mus dhau txoj haujlwm thiab daws cov teeb meem. Kuv tus lej yog yooj yim li sai tau thiab cov kab lus tseem ceeb tau tawm tswv yim los muab cov lus qhia.

Ua tiav qhov chaws thiab cov ntaub ntawv muaj nyob ntawm no:

Khoom siv:

Mechanics

  • 1x Plywood board (A4 loj, 4 hli tuab)
  • 3x M4 x 80 Ntsia Hlau thiab txiv ntseej
  • 2x Gear motors nrog theem thib ob tso rau lub cav. Log.
  • 1x Lub log dawb

1x Yias thiab qaij lub koob yees duab mounting (yeem)

Electronics

  • 1x Raspberry Pi Zero nrog lub taub hau thiab lub koob yees duab
  • 1x PCA 9685 servo tswj
  • 2x Optical encoder log thiab Circuit
  • 1x Poj niam jumper xov hlau
  • 1 x USB powerbank
  • 1x DRV8833 dual lub cev muaj zog tsav tsheb
  • 2x Micro servos SG90 rau lub koob yees duab yias thiab qaij (xaiv tau)
  • 1x MPU9250 IMU (yeem)
  • 1x HC-SR04 ultrasonic nrug sensor (yeem)
  • 1x perforated board thiab soldering hlau, headers,…

Kauj Ruam 1: Tsim Chassis

Tsim Chassis
Tsim Chassis
Tsim Chassis
Tsim Chassis
Tsim Chassis
Tsim Chassis

Kuv tsis yog tus kws kho lub tshuab zoo. Tsis tas li cov phiaj xwm phiaj xwm tsis siv sijhawm ntau hauv lub chassis. Xijpeem kuv txhais cov kev xav hauv qab no:

  • Cov khoom pheej yig
  • Kev sib dhos sai thiab tshem tawm
  • Expandable (piv txwv li qhov chaw rau ntxiv sensors)
  • Cov khoom siv lub teeb kom txuag hluav taws xob rau cov khoom siv hluav taws xob

Lub chassis yooj yim thiab pheej yig tuaj yeem ua los ntawm plywood. Nws yog ib qho yooj yim rau tshuab nrog fretsaw thiab siv tes xyaum. Koj tuaj yeem lo cov ntoo me me los tsim cov khoom tuav rau cov ntsuas thiab lub cav.

Xav txog kev hloov pauv ntawm cov khoom puas lossis cov khoom siv hluav taws xob debugging. Qhov tseem ceeb yuav tsum tau kho los ntawm cov ntsia hlau los hloov pauv. Rab phom kub kub tuaj yeem yooj yim, tab sis tej zaum tsis yog txoj hauv kev zoo tshaj los tsim lub chassis … Kuv xav tau sijhawm ntau los xav txog lub tswv yim yooj yim kom tshem tawm cov khoom yooj yim. 3D luam ntawv yog lwm txoj hauv kev zoo, tab sis tuaj yeem kim heev lossis siv sijhawm.

Lub log dawb yog thaum kawg lub teeb heev thiab yooj yim rau nruab. Cov kev xaiv tau tag nrho hnyav lossis tag nrho ntawm kev sib txhuam (kuv tau sim ob peb ntawm lawv ua ntej yuav pom qhov kawg). Kuv tsuas yog yuav tsum tau txiav ntoo spacer kom qib lub log dawb tom qab rub lub log loj.

Log lub zog (rau kev suav software)

Txoj kab uas hla: 21, 5 cmPulses: 20 pulses/rev. Reolution: 1, 075 cm (thaum kawg 1 mem tes yog li 1cm, uas yooj yim rau kev suav software)

Kauj Ruam 2: Hluav Taws Xob thiab Hluav Taws Xob

Electronics thiab thaiv
Electronics thiab thaiv
Electronics thiab thaiv
Electronics thiab thaiv
Electronics thiab thaiv
Electronics thiab thaiv

Txoj haujlwm yog siv cov qauv sib txawv raws li qhia hauv daim duab.

Raspberry Pi Zero yog tus tswj hwm tseem ceeb. Nws tab tom nyeem cov cim thiab tswj lub cav los ntawm PWM teeb liab. Nws txuas nrog lub PC nyob deb ntawm wifi.

DRV8833 yog ob lub cav H-choj. Nws tau muab qhov txaus tam sim no rau lub cav (uas Raspberry Pi tsis tuaj yeem ua raws li cov txiaj ntsig tuaj yeem xa qee qhov mA).

Tus kho qhov muag kho qhov muag muab lub xwmfab zoo li lub teeb liab txhua lub sijhawm lub teeb mus los ntawm lub log log. Peb yuav siv HW cuam tshuam ntawm Raspberry Pi kom tau txais cov ntaub ntawv txhua lub sijhawm teeb liab tau hloov pauv.

Pca9695 yog pawg tswj hwm servo. Nws tab tom sib txuas lus los ntawm I2C cov npav loj. Pawg thawj coj no tau muab PWM cov cim thiab muab hluav taws xob uas yog tswj cov servos rau yias thiab qaij ntawm lub cam.

MPU9265 yog 3-axis nrawm, 3-axis angular tig nrawm, thiab 3-axis sib nqus flux sensor. Peb yuav siv nws feem ntau kom tau txais lub koob npe.

Cov qauv sib txawv yog txhua qhov txuas ua ke los ntawm jumper hlau. Lub khob cij ua haujlwm ua tus xa khoom thiab muab cov khoom siv hluav taws xob (5V thiab 3.3V) thiab thaj chaw. Cov kev sib txuas tau piav qhia tag nrho hauv cov lus sib txuas (saib cov ntawv txuas). Txuas 5V rau 3.3V cov tswv yim yuav ua rau koj lub nti puas tsuaj. Saib xyuas thiab tshuaj xyuas tag nrho koj cov thaiv ob zaug ua ntej muab khoom (ntawm no tshwj xeeb tshaj yog tus encoder yuav tsum tau txiav txim siab). Koj yuav tsum ntsuas qhov ntsuas hluav taws xob tseem ceeb ntawm lub rooj xa khoom nrog lub ntsuas hluav taws xob ua ntej txuas tag nrho cov laug cam. Cov qauv tau kho los ntawm nylon screws rau hauv lub chassis. Tsis tas li ntawm no kuv zoo siab tau kho lawv tab sis kuj tseem tshem tau thaum ua haujlwm tsis raug.

Tsuas yog qhov muag thaum kawg lub cav thiab lub khob cij thiab lub taub hau. Yuav kom ncaj ncees, Kuv nyiam cov xov hluav taws xob tab sis lawv tuaj yeem ua rau kev sib txuas xoob. Hauv qee qhov xwm txheej, qee qhov kev tshuaj xyuas software tuaj yeem txhawb koj hauv kev txheeb xyuas kev sib txuas.

Kauj ruam 3: Software Infrastructure

Software Infrastructure
Software Infrastructure
Software Infrastructure
Software Infrastructure

Tom qab ua tiav cov tshuab, peb yuav teeb tsa qee cov software tsim kho kom muaj kev txhim kho zoo.

Git

Nov yog pub dawb thiab qhib qhov system tswj hwm qhov system. Nws tau siv los tswj cov haujlwm loj li Linux, tab sis kuj tseem tuaj yeem siv tau yooj yim rau txoj haujlwm me me (saib Github thiab Bitbucket).

Txoj haujlwm hloov pauv tuaj yeem taug qab hauv ib cheeb tsam thiab tseem raug thawb mus rau lub server deb deb los qhia software nrog zej zog.

Cov lus siv tseem ceeb yog:

git clone https://github.com/makerobotics/RPIbot.git [Tau txais qhov chaws thiab git teeb tsa]

git rub keeb kwm tus tswv [tau txais qhov tseeb los ntawm cov chaw cia khoom deb]

git xwm txheej [tau txais cov xwm txheej ntawm cov chaw cia khoom hauv zos. Puas muaj cov ntaub ntawv hloov pauv?] Git cav [tau txais cov npe ntawm kev cog lus] git ntxiv. [ntxiv txhua qhov hloov pauv cov ntaub ntawv mus rau theem kom tau txiav txim siab rau tom ntej kev cog lus] git cog lus -m "tawm tswv yim rau kev ua txhaum" [cog lus hloov pauv mus rau lub chaw cia khoom hauv zos] git thawb tus thawj xib fwb [thawb txhua qhov kev cog lus rau lub chaw cia khoom deb]

Logging

Nab hab sej tau muab qee qhov ua hauv kev ua haujlwm logging. Cov qauv software yuav tsum tau txhais tag nrho cov txheej txheem txiav ntoo ua ntej pib txhim kho ntxiv.

Tus logger tuaj yeem teeb tsa los teev npe nrog cov ntawv txhais hauv lub davhlau ya nyob twg lossis hauv cov ntaub ntawv teev cia. Hauv peb qhov piv txwv, tus logger tau teeb tsa los ntawm chav kawm webserver tab sis peb kuj tuaj yeem ua nws ntawm peb tus kheej. Ntawm no peb tsuas yog teeb tsa qib nkag mus rau DEBUG:

logger = logging.getLogger (_ name_)

logger.setLevel (logging. DEBUG)

Kev ntsuas thiab phiaj xwm

Txhawm rau txheeb xyuas cov cim nyob rau lub sijhawm, qhov zoo tshaj yog npaj lawv hauv kab ntawv. Raws li Raspberry Pi muaj lub davhlau ya nyob twg nkaus xwb, peb yuav taug cov ntaub ntawv hauv ib semicolon cais cov ntawv csv thiab phiaj nws los ntawm lub PC nyob deb.

Cov ntawv kab zauv sib cais sib cais tau tsim los ntawm peb lub ntsiab lus nab hab sej thiab yuav tsum muaj lub taub hau zoo li no:

timestamp; yawCorr; encoderR; I_L; odoDistance; ax; encoderL; I_R; yaw; eSpeedR; eSpeedL; pwmL; speedL; CycleTimeControl; wz; pwmR; speedR; Iyaw; hdg; m_y; m_x; eYaw; cycleTimeSense;

1603466959.65;0;0;25;0.0;-0.02685546875;0;25;0;25;25;52;0.0;23;0.221252441406;16;0.0;0;252.069366413;-5.19555664062;-16.0563964844;0;6; 1603466959.71;0;0;50;0.0;0.29150390625;0;50;0;25;25;55;0.0;57;-8.53729248047;53;0.0;0;253.562118111;-5.04602050781;-17.1031494141;0;6; 1603466959.76;0;-1;75;0.0;-0.188232421875;1;75;2;25;25;57;0;52;-24.1851806641;55;0;0;251.433794171;-5.64416503906;-16.8040771484;2;7;

Thawj kab ntawv muaj cov timestamp. Cov kab hauv qab no yog pub dawb. Cov phiaj xwm phiaj xwm raug hu nrog cov npe kab uas yuav tsum tau npaj ua:

tej thaj chaw deb@pc: ~/python rpibot_plotter -f trace.csv -p speedL, speedR, pwmL, pwmR

Cov phiaj xwm tsab ntawv muaj nyob hauv cov ntawv tais ceev tseg:

Tus phiaj xwm tab tom siv lej ua piv txwv hauv Python. Koj yuav tsum luam nws rau hauv koj lub PC.

Txhawm rau kom muaj kev nplij siab ntxiv, tsab ntawv nab nab yog hu los ntawm tsab ntawv bash (plot.sh) uas yog siv los theej Raspberry Pi cov kab ntawv taug qab mus rau lub khoos phis tawj nyob deb thiab hu rau tus kws npaj nrog lub teeb liab xaiv. Bash tsab ntawv "plot.sh" nug yog tias cov ntawv yuav tsum theej. Qhov no yooj yim dua rau kuv tsis txhob luam tawm txhua lub sijhawm. "sshpass" yog siv los theej cov ntawv los ntawm Raspberry Pi mus rau lub PC deb ntawm scp. Nws muaj peev xwm theej cov ntaub ntawv yam tsis nug tus password (nws tau dhau los ua qhov ntsuas).

Thaum kawg lub qhov rais qhib nrog cov phiaj xwm raws li qhia hauv daim duab.

Kev sib txuas lus deb

Kev txhim kho kev cuam tshuam rau Raspberry Pi yog SSH. Cov ntaub ntawv tuaj yeem kho ncaj qha rau ntawm lub hom phiaj, lossis theej los ntawm scp.

Txhawm rau tswj cov neeg hlau, lub vev xaib server tau khiav ntawm Pi, muab kev tswj ntawm Websockets. Lub interface no tau piav qhia hauv cov kauj ruam tom ntej.

Teeb lub Raspberry Pi

Muaj cov ntaub ntawv piav qhia txog kev teeb tsa Raspberry Pi hauv "doc" nplaub tshev ntawm qhov chaws (teeb tsa_rpi.txt). Tsis muaj ntau qhov kev piav qhia tab sis muaj txiaj ntsig ntau cov lus txib thiab txuas.

Kauj ruam 4: Tus Neeg Siv Kev Sib Tham

Tus Neeg Siv Khoom Siv
Tus Neeg Siv Khoom Siv

Peb siv lub khaub zeeg cua Tornado web server los tuav tus neeg siv interface. Nws yog Python module uas peb hu thaum peb pib ua haujlwm tswj neeg hlau.

Software architecture

Tus neeg siv interface yog tsim los ntawm cov ntaub ntawv hauv qab no: gui.html [Piav txog lub vev xaib tswj hwm thiab teeb tsa] gui.js [Muaj cov lej javascript los tswj kev tswj hwm thiab qhib lub websocket txuas rau peb cov neeg hlau] gui.css [Muaj cov yam ntxwv ntawm html tswj. Txoj haujlwm ntawm kev tswj hwm tau piav qhia ntawm no]

Kev sib txuas lus websocket

Tus neeg siv interface tsis yog qhov txias tshaj, tab sis nws ua haujlwm. Kuv tsom mus rau ntawm cov thev naus laus zis uas tshiab rau kuv zoo li Websockets.

Lub vev xaib sib tham nrog cov neeg hlau web server los ntawm Websockets. Nov yog ob txoj kev sib txuas lus sib tham uas yuav nyob twj ywm raws li kev sib txuas tau pib. Peb xa cov neeg hlau cov lus txib ntawm Websocket mus rau Raspberry Pi thiab tau txais cov ntaub ntawv (nrawm, txoj haujlwm, lub koob yees duab kwj) rov qab rau zaub.

Tus txheej txheem interface

Tus neeg siv interface muaj phau ntawv qhia tswv yim rau cov lus txib. Qhov no tau siv thaum pib los xa cov lus txib mus rau tus neeg hlau. Koj lub koos pis tawj tau tig lub koob yees duab kwj tawm thiab tawm. Ob tus sliders yog tswj lub koob yees duab yias thiab qaij. Qhov sab saum toj sab xis ntawm tus neeg siv interface yog tswj cov neeg hlau txav. Koj tuaj yeem tswj qhov nrawm thiab phiaj nrug. Cov ntaub ntawv xov tooj cua yooj yim tau tshwm rau hauv daim duab neeg hlau.

Kauj Ruam 5: Programming Robot Platform

Programming Robot Platform
Programming Robot Platform
Programming Robot Platform
Programming Robot Platform
Programming Robot Platform
Programming Robot Platform

Qhov no yog lub hom phiaj tseem ceeb ntawm txoj haujlwm. Kuv refactored ntau software raws li kuv qhia lub chassis tshiab nrog DC motors. Kuv siv Python ua cov lus programming rau qhov laj thawj sib txawv:

  • Nws yog hom lus Raspberry Pi
  • Nws yog cov lus qib siab nrog ntau yam ua hauv cov yam ntxwv thiab txuas ntxiv
  • Nws yog cov khoom taw qhia tab sis kuj tseem tuaj yeem siv rau cov phiaj xwm ua ntu zus
  • Tsis muaj qhov muab tso ua ke lossis cov cuab yeej saw tsim nyog. Kho qhov chaws thiab khiav nws.

Main software architecture

Lub software yog qhov taw qhia, muab faib ua ob peb yam. Kuv lub tswv yim yog faib cov cai hauv 3 qhov ua haujlwm zoo:

Sense Xav Ua

Sense.py

Lub ntsiab sensor tau txais thiab ua. Cov ntaub ntawv raug khaws cia hauv phau ntawv txhais lus kom siv los ntawm cov theem hauv qab no.

Tswj.py

Ib qho kev ua haujlwm subclass yog tswj cov cav thiab servos tom qab qee qhov tsis suav nrog. Qhov kev tswj hwm lub ntsiab yog tuav cov lus txib qib siab thiab tseem tswj cov txheej txheem (PID) rau lub cav.

rpibot.py

Lub hom phiaj tseem ceeb no yog tswj Tornado lub web server thiab ua kom muaj kev nkag siab zoo thiab tswj chav kawm hauv cov xov sib cais.

Txhua tus qauv tuaj yeem ua haujlwm ib leeg lossis ua ib feem ntawm tag nrho txoj haujlwm. Koj tuaj yeem nkag siab nkaus xwb thiab luam tawm cov ntaub ntawv ntsuas kom pom tias cov ntsuas tau txuas nrog raug thiab xa cov ntaub ntawv raug.

PID tswj

Thawj txoj haujlwm yog nrhiav seb peb xav tswj hwm dab tsi. Kuv pib los ntawm kev sim tswj txoj haujlwm, uas nyuaj heev thiab tsis pab ntau.

Thaum kawg, peb xav tswj hwm txhua lub log nrawm thiab cov neeg hlau qhia. Txhawm rau ua qhov ntawd peb yuav tsum tau cascade ob qhov kev tswj xyuas cov laj thawj.

Txhawm rau nce qhov nyuaj ib qib zuj zus, tus neeg hlau yuav tsum raug tswj:

qhib lub voj (nrog lub zog tas li)

pwm = k

tom qab ntawd ntxiv qhov kaw lub kaw lus kaw lus

pwm = Kp.speedError+Ki. Integration (speedError)

thiab thaum kawg ntxiv cov kev taw qhia tswj raws li cov kauj ruam kawg.

Txog kev tswj ceev kuv siv "PI" tswj thiab "P" tsuas yog rau yaw. Kuv manually teeb tsa qhov ntsuas los ntawm kev sim. Tej zaum ntau qhov tsis zoo tuaj yeem siv ntawm no. Kuv lub hom phiaj tsuas yog kab ncaj thiab kuv yuav luag tau txais nws. Kuv tsim lub interface hauv software kom sau qee qhov hloov pauv los ntawm tus neeg siv interface. Teeb tsa qhov ntsuas Kp rau 1.0 xav tau cov lus txib hauv qab no hauv tus neeg siv interface:

SET; Kp; 1.0

Kuv tuaj yeem teeb tsa P qhov ntsuas qis txaus kom tsis txhob muaj qhov hla dhau. Qhov yuam kev ntxiv yog kho los ntawm I parameter (kev ua yuam kev ua ke)

Nws nyuaj rau kuv kom paub yuav ua li cas cascade ob qho kev tswj hwm. Kev daws teeb meem yog qhov yooj yim, tab sis kuv tau sim ntau txoj hauv kev ua ntej… Yog li thaum kawg, kuv tau hloov lub hom phiaj nrawm ntawm lub log kom tig mus rau ib lossis lwm txoj kev. Hloov pauv kev tswj nrawm tso tawm ncaj qha yog qhov ua yuam kev raws li kev tswj nrawm tau sim tshem qhov kev cuam tshuam no.

Daim duab tswj kev siv tau txuas nrog. Nws qhia tsuas yog sab laug ntawm tus neeg hlau tswj.

Kauj Ruam 6: Lub Sensor Calibrations

Kev ntsuas Calibrations
Kev ntsuas Calibrations
Kev ntsuas Calibrations
Kev ntsuas Calibrations
Kev ntsuas Calibrations
Kev ntsuas Calibrations

Thawj qhov los txiav txim siab yog tias tag nrho IMU yuav tsum ua haujlwm kom raug. Kuv xaj 3 ntu thiab xa lawv rov qab mus txog thaum kuv muaj lub sensor ua haujlwm tag nrho. Txhua qhov ntsuas yav dhau los muaj qee qhov ntawm lub ntsuas cua tsis ua haujlwm zoo lossis tsis yog txhua qhov. Kuv siv qee qhov piv txwv sau ntawv los ntsuas qhov pib ua ntej teeb nws hauv neeg hlau.

Lub cim IMU sensor yuav tsum tau ntsuas ua ntej siv nws. Qee lub teeb liab sensor nyob ntawm lub kaum sab xis thiab txoj haujlwm.

Kev ntsuas nrawm thiab kev sib hloov ceev ntsuas

Qhov ntsuas tau yooj yim tshaj plaws yog rau qhov nrawm nrawm (A_x). Thaum sawv ntsug yuav tsum nyob ib puag ncig 0 m/s². Yog tias koj tig lub ntsuas kom raug, koj tuaj yeem ntsuas lub ntiajteb txawj nqus (ib puag ncig 9, 8 m/s²). Txhawm rau ntsuas a_x, koj tsuas yog yuav tsum txhim kho nws kom raug thiab tom qab ntawv txiav txim siab kom tau 0 m/s² ntawm qhov chaw nres. Tam sim no A_x tau ntsuas qhov tseeb. Koj tuaj yeem tau txais cov offsets rau kev sib hloov nrawm hauv ib txoj hauv kev zoo ib yam ntawm qhov chaw nres.

Kev ntsuas qhov ntsuas hluav taws xob rau lub ntsuas hluav taws xob

Kev ntsuas ntsuas ntau dua yog qhov tsim nyog rau cov ntsuas hluav taws xob sib nqus. Peb yuav siv m_x thiab m_y kom tau txais cov khoom sib nqus hauv qib kab rov tav. Muaj m_x thiab m_y yuav muab sijhawm rau peb los laij cov kab lus kab lus.

Rau peb lub hom phiaj yooj yim peb tsuas yog ntsuas qhov sib txawv ntawm cov hlau hnyav. Qhov no yuav tsum tau ua raws li lub ntsuas hluav taws xob nyob hauv txoj haujlwm zaum kawg vim nws nyob ntawm qhov cuam tshuam ntawm cov khoom sib nqus.

Peb sau m_x thiab m_y thaum peb tig lub neeg hlau nyob ib ncig ntawm z-axis. Peb npaj m_x vs m_y hauv daim duab XY. Qhov tshwm sim hauv ellipsis raws li qhia hauv daim duab. Lub ellipsis yuav tsum yog nyob nruab nrab ntawm keeb kwm. Ntawm no peb xav txog qhov siab tshaj plaws thiab yam tsawg kawg nkaus ntawm m_x thiab m_y kom tau txais cov offsets ntawm ob qho kev qhia. Thaum kawg peb tshawb xyuas qhov ntsuas thiab pom tias lub ellipsis yog tam sim no nyob hauv nruab nrab.

Kev ntsuas cov hlau mos yuav txhais tau tias peb hloov daim duab los ntawm ellipsis mus rau hauv lub voj voog. Qhov no tuaj yeem ua los ntawm kev ntxiv ib qho tseem ceeb ntawm txhua tus neeg laus.

Ib qho kev sim niaj hnub tam sim no tuaj yeem raug ntsuas kom rov ntsuas dua lossis tsawg kawg los tshuaj xyuas tias cov ntsuas ntsuas tseem ntsuas tau.

Lub ntsiab lus taw qhia

Tam sim no cov ntaub ntawv ntsuas hluav taws xob yuav raug siv los laij cov kab lus taw qhia. Txog qhov no, peb yuav tsum hloov pauv m_x thiab m_y cov cim rau hauv kaum sab xis. Nab hab sej ncaj qha muab lej.atan2 ua haujlwm uas muaj lub hom phiaj no. Kev suav ua tiav tau piav qhia hauv mpu9250_i2c.py cov ntaub ntawv ("calcHeading (mx, kuv, mz)").

Kauj Ruam 7: Lwm Yam Qauv

Lwm Yam Kev Tsim
Lwm Yam Kev Tsim
Lwm Yam Kev Tsim
Lwm Yam Kev Tsim
Lwm Yam Kev Tsim
Lwm Yam Kev Tsim

Txoj haujlwm tau siv sijhawm ntau vim tias kev tsim qauv tau qhib tas li. Rau txhua qhov tivthaiv kuv tau ua qee qhov qauv siv thiab tau ntsib qhov txwv ntawm qhov system.

Cov ntsiab lus nyuaj tshaj plaws yog lub log log. Kuv sim 3 qhov kev xaiv sib txawv ua ntej pom qhov tam sim no siv kho qhov muag encoder. Kuv xav tias cov kev daws teeb meem rho menyuam tawm kuj tseem nthuav heev hauv qhov haujlwm no. Nws txhawj xeeb txog ntu uas kuv kawm feem ntau.

Kev sib hloov txuas txuas txuas txuas txuas mus rau pca 9695

Txhawm rau zam qhov H-choj ntxiv rau DC lub cev muaj zog, kuv xub pib nrog kev hloov pauv tas li. Cov no tau tsav los ntawm tam sim no pca 9695 servo tsav. Txhua qhov kev siv tshuab thiab cov tshuab hluav taws xob tau yooj yim dua. Qhov kev tsim no muaj ob qhov tsis zoo:

  • Kev tswj tsis zoo ntawm cov servos.
  • Qhov uas ploj lawm encoder tuav qhov chaw

Cov servos pib txav nrog 50% pwm thiab muaj lub zog nrawm ntawm kwv yees li 55%. Nov yog thaj tsam tswj tsis zoo heev.

Tsis muaj tus tuav tus lej nkag mus, nws nyuaj heev kom nrhiav tau npaj mus rau tus lej nkag. Kuv sim 3 qhov sib txawv ntawm qhov ntsuas qhov sib txawv uas tau teeb tsa ntawm lub chassis. Kuv tau kaw tus kheej ua lub log log sab nraud ntawm lub log nrog ntu dub thiab dawb. Kuv siv QTR-1RC cov cim uas xav tau ntau lub teeb liab ua kom tau txais lub teeb liab raug. Raspberry Pi tsis muaj peev xwm ua tau qhov zoo ntawm lub sijhawm ua tiav. Yog li kuv txiav txim siab ntxiv NodeMCU D1 mini ua tus tswj lub sijhawm tiag tiag rau cov neeg hlau. Nws tau txuas nrog raspberry Pi los ntawm cov ntawv UART kom xa cov ntaub ntawv ua tiav cov ntaub ntawv. Lub NodeMCU tseem tab tom tswj hwm HC-SR04 lub tshuab. Qhov haujlwm tsis yooj yim thiab tsis muaj zog, cov kab ntawv tau txais suab nrov los ntawm I2C kab thiab lub cev muaj zog, yog li thaum kawg kuv tsim qhov thib ob ntawm lub chassis nrog cov iav yooj yim DC motors uas tau tsav los ntawm ib H-bridge. Cov motors no muaj lub zog tso zis thib ob los tso qhov kho qhov muag nkag.

Kauj Ruam 8: Ua Duab

Ua Duab
Ua Duab
Ua Duab
Ua Duab
Ua Duab
Ua Duab
Ua Duab
Ua Duab

Txhawm rau txhim kho kev tsav tsheb tus kheej, peb tuaj yeem ua qee cov duab ua.

Lub tsev qiv ntawv opencv yog qhov siv rau qhov ntawd. Nws tuaj yeem siv los ntawm Python txhawm rau ua kom nrawm nrawm pom.

Peb ntes cov duab thiab siv qee cov haujlwm ua duab:

Thawj qhov kev sim tau ua nrog Canny thiab Sobel hloov pauv. Canny tuaj yeem yog tus neeg sib tw zoo tab sis tsis nkag siab txaus. Sobel paub zoo heev (pom ntau yam khoom pom).

Thaum kawg kuv tau ua kuv tus kheej lim kom sib tov tag nrho cov kab rov tav thiab ntsug ntsug (kuaj cov rooj tog zaum):

  • Hloov cov duab xim mus rau qib duab grey
  • Plooj cov duab kom tshem tau cov suab nrov me
  • Threshold cov duab rau cov duab dub thiab dawb
  • Tam sim no peb tshawb pom kab rov tav thiab ntsug kom pom cov khoom ua phab ntsa thiab rooj tog zaum
  • Peb lim tsuas yog cov ntawv loj loj ntxiv (saib cov xim sib luag hauv daim duab)

Tam sim no peb tuaj yeem siv cov ntaub ntawv tshiab no txhawm rau txheeb xyuas cov teeb meem…

Kauj Ruam 9: Cov kauj ruam tom ntej…

Cov kauj ruam tom ntej…
Cov kauj ruam tom ntej…
Cov kauj ruam tom ntej…
Cov kauj ruam tom ntej…

Tam sim no, peb muaj lub platform neeg hlau yooj yim nrog cov ntsuas, tus ua haujlwm thiab lub koob yees duab. Kuv lub hom phiaj yog txav mus los ntawm tus kheej thiab rov qab mus rau qhov chaw nres tsheb yam tsis ntxiv qhov ntsuas ntxiv. Rau qhov no kuv yuav xav tau cov hauv qab no:

  • Sensor fusion ntawm yaw thiab sib nqus cov cim taw qhia
  • Lub koob yees duab ua duab (tsuas yog CPU qis rau qhov ntawd)
  • Kev sib tsoo pom (ultrasonic nrug thiab lub koob yees duab)
  • Daim ntawv qhia tsev lossis kev taw qhia

Tam sim no mus thiab tsim koj tus kheej cov nyom lossis cov hom phiaj…

Pom zoo: