C-BISCUIT: Jūsu robotu veselības uzraudzība

Esoteric Agenda - Best Quality with Subtitles in 13 Languages (Jūnijs 2019).

$config[ads_text] not found
Anonim

C-BISCUIT: Jūsu robotu veselības uzraudzība


Pēdējā rakstā mēs noskaidrojām, kā panākt Ubuntu un ROS instalēšanu Wandboard pamatā. Šoreiz mums ir jāturpina sistēmas iestatīšana un jāiestata tā, lai mēs to varētu viegli mainīt un izmantot, jo no sistēmas mums vajag precīzāku informāciju.

C-BISCUIT sērija

  1. C-BISCUIT: robotu platforma hacker un hobbyist
  2. C-BISCUIT: dizaina izvēle un pamatojums
  3. C-BISCUIT Jauda: 5V 3A Buck regulators Wandboard
  4. C-BISCUIT Jauda: Crowbar aizsardzības kontūra 5V regulatoram
  5. C-BISCUIT: operācijas smadzenes
  6. C-BISCUIT jauda: Regulatora un cilindrisko shēmu montāža un testēšana
  7. C-BISCUIT: Jūsu robotu veselības uzraudzība
  8. C-BISCUIT: robotu sistēmas arhitektūra
  9. C-BISCUIT: RCB-mikrokontrolleru, motoru kontrollera shematisks dizains
  10. C-BISCUIT: shematisks dizains RCB-Power, Stepper
  11. C-BISCUIT: Robotu vadības padomes izkārtojums un montāža
  12. C-BISCUIT: sistēmas integrācija un testēšana

Obligātā lasīšana

Atšķirībā no operācijas raksta smadzītes, kur daļa satura bija Ubuntu un ROS instalēšanas instrukciju saīsināta un pielāgota versija, būtu negodīgi (un ļoti nevajadzīgi) atjaunot plašas ROS pamācības, kas pieejamas viņu wiki. Tas būtu ideāli piemērots, ja jūs varētu aplūkot šos aspektus kā daļu no turpināšanas šeit, turpinot darbu vismaz pēc Publisher / abonenta Pitonā. Kad tas būs izdarīts, jūs būsiet gatavs nākamajiem dažiem rakstiem par programmatūras kaudzi.

Visbeidzot, tā kā šajā rakstā liela uzmanība tiks pievērsta dažiem bash skriptiem, ieteicams iegūt īsu pārskatu, ja neesat pazīstams ar komandrindu - es iesaku LinuxCommand.

Piezīme par Wi-Fi problēmām un atjauninājumiem

Ja paskatās internetā, jūs redzēsiet, ka dažiem lietotājiem ir problēmas ar Wi-Fi savienojumu ar Wandboard.

Kamēr mēs līdz šim nav saskārušies ar šo precīzo situāciju, mūsu testēšanas laikā mēs redzējām dažas problēmas ar programmatūras atjaunināšanu uz tāfeles ar apt-get, kur dažreiz sistēma iesaldējas noteiktas pakotnes instalēšanas laikā. Šķiet, ka vienkāršākais risinājums ir sistēmas restartēšana un šīs pakotnes instalēšana atsevišķi pirms atkārtotas atjaunināšanas un jaunināšanas komandu mēģinājuma.

Ja jums rodas problēmas ar Wi-Fi vai jaunināšanu, noteikti izrakstiet komentārus un pastāstiet mums, ko jūs redzat, lai mēs varētu labāk izpētīt.

Informācija, ievadot caur SSH

Viena no pirmajām lietām, ko mēs darīsim nākamajā, ir panākt, lai Wandboard pastāstītu mums, kas ir un ko nedarbojas, kad mēs piesakāmies. Lai to panāktu, mums būs vēlreiz jārediģē .bashrc fails, izveidojot pilnīgi jaunu sadaļu, kur mēs iegūstam jaunu skriptu, ko izveidosim, sauktu .ros_status_script .

Ir svarīgi, lai šīs izmaiņas tiktu veiktas tieši Wandboard, jo, lai gan jūs varētu rediģēt savus ssh konfigurācijas failus, lai to paveiktu, tas būtu kļuvis par problēmu, ja mēģinātu pieteikties no dažādām mašīnām un / vai vidēm. Pēc izmaiņu veikšanas katrs pieteikums nodrošinās jūs ar šo pamata informācijas komplektu. Pilnu skripta kopiju teksta formā var atrast mūsu GitHub lapā.

Zemāk es esmu iekļāvis pirmo kontrolteksta skripta atkārtojuma attēlu. Apskatiet to un pēc tam turpiniet tālāk, lai iegūtu īsu paskaidrojumu par notiekošo:

Patiesībā nav tik daudz tā, kas notiek šajā. Divas lietas, ko esmu teicis, ko mēs darām ar šo raksta daļu, var būt saistītas ar daudzkārtēju atkārtošanos, tādēļ ir ieteicams uzrakstīt dažas īsas funkcijas, lai būtu viegli to darīt vairāk un vairāk. Pirmajā sadaļā ir mainīgie lielumi, kas satur komandas tputa izeju, kurai diemžēl ir diezgan neskaidra rokasgrāmatas lapa. Mēs to izmantojam, lai krāsotu noteiktas skripta izvades daļas zaļā vai sarkanā krāsā, lai būtu vieglāk lasīt un atrast kādu svarīgu informāciju.

Pirmā no funkcijām, kuras mēs saskaramies ar prog_check, ir šī skripta galvenā daļa, tā izmanto izvadi no ps cax, kurā tiek parādīts aktīvo programmu un PID saraksts, un tiek meklēta tā izlaide ar grep atslēgvārdam, kuru mēs norādām (tātad $ 1, kas nozīmē veikt pirmo argumentu pēc funkcijas nosaukuma, kad to saucam). Ja zvans uz grep atrod kaut ko, tas aktivizē šādu, ja-else daļu, lai izvadītu līniju, kurā ir programmas nosaukums, ar blakus esošo zaļo krāsu "Online"; pretējā gadījumā tas izdrukā "Bezsaistē" sarkanā krāsā.

Otrā funkcija, ssh_check, ir vienkāršāka funkcija, kas palīdzēs aprobežoties ar to, ka vienlaicīgi darbojas pārāk daudz attālināto pieteikumvārdu (kaut kas, par ko esmu noteikti vainīgs). Mainīgais sshlist izmanto, kas mums pastāstīt, kādas sesijas ir aktīvās, un pipe-to grep -v localhost nodrošina, ka mainīgajā tiek iekļauti tikai rezultāti, kas neatbilst lokālajam serverim. Nākamie divi mainīgie izmanto wc-l, lai iegūtu atgriezto līniju skaitu (un tādējādi arī sesiju skaitu), kā arī dažus pamata čaulas aritmētiskos līdzekļus, lai nodrošinātu citu sesiju skaitu, un pēc tam mēs izdrukām to visu kā iepriekš.

Visbeidzot, ir palaist sadaļa. Jūs varat redzēt, ka šobrīd es to iestatīju, lai pārbaudītu turtlesim mezglus, kas bija daļa no iepriekšējām ROS apmācībām. Varat to izdarīt vairākiem svarīgākiem atslēgvārdiem, lai jūs varētu darboties, piemēram, šeit atrodamos Listener un Talker mezglos.

Izveidojot šo failu savā Wandboard failā un pievienojot līniju, kas sastāv no "source.ros_status_script", lai jūsu Wandboard mājas direktorijā izveidotu failu .bashrc, šis skripts tiks palaists katru reizi, kad jūs sākat. Zemāk ir redzams vēl viens ekrānuzņēmums, kurā tiek rādīts kāda cita termināla izlaide, kad jums ir rockore, turtlesim_node un turtle_teleop_key visi darbojas (kopā ar 7 kopējiem SSH sesijas!).

SSH skaitīšana var šķist nedaudz dīvaini, īpaši, ja atzīmējat, ka skripts teiks tikai par citām sesijām, bet uzskaitītas visas no tām (ieskaitot to, kuru jūs tikko esat pieteicies). Es to uzrakstīju ar pieņēmumu, ka tad, kad jūs turpināsiet, jūsu attālinātie pieteikšanās dati var nākties no dažādām vietām (un tādējādi arī no dažādām IP vietām), kas padara to skaidrāku un vieglāk noteikt, kurš no tiem ir jūsu.

Papildu informācija par sistēmu (un prettying it up)

Tas ir labs sākums, bet tas, iespējams, palīdzēs, ja mēs arī ieguva mazliet informāciju par sistēmas brīvo vietu, atmiņas izmantošanu un CPU slodzi, kad mēs pieteicāmies. Arī es aizmirsu krāsot ssh_check funkcijas izvadi, kas isn ' t nepieciešams, bet tas noteikti būtu jauks pieskāriens. Darīsim to tagad.

Vispirms pievienosim sshcheck funkcijai kādu krāsu. Šoreiz mēs padarīsim numerāciju zilganu. Jūs vēlaties pievienot līniju cyan = "tput setaf 6" blakus mainīgajiem lielumiem sarkanā un zaļā krāsā, kā arī zilos krāsu indikatorus drukas paziņojumos ssh_check, kā jūs varat redzēt zemāk:

Ja jūs tagad saglabājat un aizverat failu, tad ierakstiet avotu .ros_status_script, redzēsit mainīto izvadi ar krāsu ssh savienojumu skaitu.

Mēs izmantosim awk, lai palīdzētu mums formēt kādu izeju no brīvās komandas (atmiņa), df (diska vieta) un augšējā (dažādi statistikas dati, bet rāda CPU slodzi). Ir lieliska atbilde Stack Exchange, kurai ir laba formatēšana par to, ko mēs vēlamies darīt, tāpēc mēs izmantosim piemērus no turienes (ar nelielām izmaiņām zvanā uz DF, lai mēs varētu redzēt lielāku precizitātes izvadi). Pievienosim tos funkcijai, lai, ja mēs vēlamies veikt izmaiņas, mums ir tikai jāpadara tie vienā vietā.

Zemāk varat redzēt jaunu izveidoto funkciju, ko sauc par system_check :

Kad jūs to saglabājat, varat atkal izmantot avotu .ros_status_script, lai to pārbaudītu, vai arī mēģiniet vēlreiz pierakstīties caur ssh.

Saistītās ierīces

Kā pēdējais mūsu uzraudzības skripta papildinājums, laba ideja būtu pateikt, kas ir saistīts ar robotu - neatkarīgi no tā, vai tā ir reāla ierīce vai ne. Tas nebūs tik lietderīgs, kā tas ir tagad, bet, kad tas ir saistīts ar savienojumu ar Wi-Fi, tas būs ērts, lai uzzinātu, kā darbojas arī visas pievienotās papildierīces.

Ir vairāki veidi, kā veikt ierīces pārbaudi. Tā kā ls / dev produkcija ir salīdzinoši maza, mēs izmantosim grep vēlreiz, salīdzinot ls sākotnējo izvadi, kad to lieto / dev direktorijā, ar tādu pašu izvadi, kad lietas būtu jāpievieno.

Pirmais, kas mums jādara, ir doties uz mūsu mājas direktoriju (ja tas vēl nav). No turienes ierakstiet ls / dev> default_devices.txt, un jūs redzēsit, ka esat izveidojis failu ar / dev direktorija saturu. Tagad mums jādefinē mūsu failu .ros_status_script vēlreiz. Zemāk es esmu iekļāvis funkciju ekrānuzņēmumu, kuru esmu pievienojis sauc par devices_check :

Tas, visticamāk, ir vissarežģītākais no visām funkcijām, ko esam paveikuši. Tajā mēs (īslaicīgi) pārbaudām pašreizējo failu / dev failu sarakstu, novirzot ls produkciju uz to. Ls ir grūts rīks, kas nedarīsies labi, ja jūs tieši izliksiet to mainīgā, tāpēc, lai varētu ģenerēt minēto izvadu, mēs to vispirms ievietosim kā fails kā teksts. Galu galā jūs varat redzēt, ka šis teksta fails tiek dzēsts.

Newdevs mainīgais saglabā zvana rezultātus grep, kas pārbauda visas līnijas, kas atrodas currentdevs.txt, bet nav default_devices.txt.

Devcount ir tikai rezultātu skaits (ņemiet vērā, ka tad, kad runa ir par failu sistēmu montāžu, mēs bieži vien no vienas un tās pašas ierīces sagādāsim vairākus nodalījumus).

Visbeidzot, mēs drukājam skaitli ar kādu viegli redzamu krāsojumu, un pēc tam, ja bija kādi rezultāti, mēs tos uzskaitām. Mēģiniet savienot USB stick vai spēļu kontrolieri un redzēt, kas notiek, kad jūs to palaižat!

Noslēguma komentāri

Tas diezgan daudz aptver šī skripta pamatus, lai pateiktu, kas notiek, pieslēdzoties robotam. Kad mēs iekļūsim sarežģītākajās programmatūras pusēs, mēs turpināsim to uzlabot un uzlabot, bet, ja jums ir savi ideju varianti, tad pievienojiet tos visiem.

Nākamajos dažos rakstos mēs veiksim virkni aparatūras un programmatūras, tostarp ievietosim Digikey's Scheme-It rīku, lai pārbaudītu I / O paneli, ko mēs izveidosim.

Priekā!

Nākamais raksts sērijā: C-BISCUIT: robotu sistēmas arhitektūra