portaldacalheta.pt
  • Põhiline
  • Planeerimine Ja Prognoosimine
  • Elustiil
  • Ux Disain
  • Finantsprotsessid
Tagumine Ots

Robotite operatsioonisüsteemi tutvustus: uusim robootika rakenduste raamistik



The Robotite operatsioonisüsteem (ROS) ei ole tegelikult opsüsteem, vaid raamistik ja tööriistakomplekt, mis pakuvad heterogeenses arvutis rühmas opsüsteemi funktsionaalsust. Selle kasulikkus ei piirdu robotitega, vaid enamik pakutavaid tööriistu keskendub välisseadmetega töötamisele.

ROS See on jagatud enam kui 2000 paketiks, igal paketil on spetsiaalne funktsionaalsus. Raamistikuga ühendatud tööriistade arv on ilmselt selle suurim jõud.



Miks peaksin kasutama SO Robotit?

ROS pakub funktsionaalsust riistvara abstraktsiooniks, seadmete draiverid, protsessidevaheline suhtlus mitmel masinal, tööriistad testimiseks ja visualiseerimiseks ning palju muud.



Sissejuhatus robootika operatsioonisüsteemi: uusim robootika rakenduste raamistik



ROS-i põhijooneks on tarkvara käitamine ja suhtlemine, mis võimaldab teil kujundada keerukat tarkvara teadmata, kuidas teatud riistvara töötab. ROS pakub viisi protsesside (sõlmede) põhivõrgu ühendamiseks. Sõlmed võivad töötada mitmes seadmes ja ühenduda selle jaoturiga mitmel viisil.

Peamised viisid võrgu loomiseks on nõutavate teenuste pakkumine või reklaamijate või abonentide ühenduste määramine teiste sõlmedega. Mõlemad meetodid suhtlevad teatud tüüpi sõnumite kaudu. Mõned tüübid pakuvad põhipaketid, kuid sõnumite tüüpe saab määratleda üksikute pakettide abil.



Arendajad saavad keeruka süsteemi kokku panna, ühendades olemasolevatele lahendustele väikestele probleemidele. Süsteemi rakendamise viis võimaldab meil:

  • Vahetage komponendid sarnaste liideste vastu käigu pealt, eemaldades vajaduse süsteemi erinevate muudatuste jaoks peatada.



  • Multipleksige mitme komponendi väljund teise komponendi sisendisse, võimaldades erinevate probleemide paralleelset lahendamist.

  • Ühendage erinevates programmeerimiskeeltes valmistatud komponendid, rakendades sõnumsüsteemile lihtsalt sobivad pistikud, muutes tarkvaraarenduse lihtsamaks, ühendades erinevate arendajate olemasolevad moodulid.



  • Looge seadmete võrgus sõlmed, muretsemata koodi täitmise koha pärast, ja juurutage protsessi (IPC) ja kaugprotseduurikõne (RPC) vahelised sidesüsteemid.

  • Kahe eelmise punkti abil saate otse riistvara tellitavate voogudega ühendada, lisakoodi kirjutamata.



Kavatseme lihtsa lahenduse iteratiivse väljatöötamise abil näidata, kui kasulik see on. Teiste lähenemisviisidega võrreldes on mitu peamist eelist. ROS-il on platvormidevaheline tugi ja see võimaldab ühendusi mitme seadme protsesside vahel kulisside taga hallatavate vastastikuste ühenduste kaudu. Kujundus võimaldab C ++ suhtlusklasside määramisel või keeleliidese jaoks klasside käsitsi väljatöötamisel toetada mis tahes keelt.

ROS-i teeb oma kogukond. Mitu aastat hiljem saadi sellest suur hulk korduvkasutatavaid pakette, mida on tänu süsteemi arhitektuurile lihtne integreerida.



Alternatiivsed lähenemised nagu MRPT , CARMEN , LCM , Mängija , Microsofti RDS ja teised pakuvad mõnda, kuid mitte kõiki neid funktsioone. Enamasti on disainivead keeletoe piirangud, halb suhtlus protsesside vahel või erinevate seadmete toe puudumine, mis on vaieldamatult kõige raskem lahendus.

Mida me ehitame?

Kuna meie fookus on raamistik, mitte algoritmid kui sellised, on konkreetsete probleemide jaoks antud probleem väga lihtne. Meie eesmärk on ehitada arvuti jaoks tarkvara, mis on osa protsessist ja võimaldab meil kaugjuhtida ja jälgida robotit, mis on meiega ühendatud Wi-Fi kaudu, kasutades arvutis olevat mängupulti ja robotile paigaldatud kaamera edastust .

kuidas värvid inimest mõjutavad

Kõigepealt ühendame lihtsa programmi lihtsa simulatsiooniga, lihtsalt selleks, et demonstreerida ROS-i põhiprintsiipe. Ühendame mängupuldi arvutiga ja proovime kujundada hea juhtimisskeemi, et juhtpuldi sisend suunataks roboti signaalide juhtimiseks.

ROS-koodi kirjutamise peamised keeled on C ++ ja Python, madalama jõudluse jaoks eelistatakse C ++. Selgitame oma näiteid Python kuna sellel on koodis vähem kvalifikaatorit ja pole vaja konkreetset konstruktsiooni teha.

Paigaldamine ja seadistamine

ROS-i versioonidele viidatakse nime järgi. Praeguseks on viimane väljaanne Jade Kilpkonn ja LTS-i versioon on Indigo iglu . Eelistatav on versioonilt liikumine ja tagurpidi ühilduvus pole ROS-is tagatud, seega kirjutatakse kõik näited Indigo .

ROS on saadaval erinevatel * NIX platvormidel. Ametlikult toetatud versioon on Ubuntu. Kogukond toetab OS X, Arch Linux, Debian, Raspbian ja Android versioone.

Näeme töölaual Ubuntu 14.04 installiprotsessi. Kõigi toetatud versioonide ja platvormide protsessid on saadaval ametlik koduleht . Saadaval on ka virtuaalsed masinad, millele on juba installitud ROS.

Installimine sõltub platvormist (ja enamikul platvormidel on komplekteeritud paketid), kuid tööruumi seaded on kõigi platvormide jaoks samad. .

Installimine Ubuntu

ROS pakub oma hoidlaid. Esimene samm on nende lisamine.

sudo sh -c 'echo 'deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main' > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116 sudo apt-get update

Pärast seda on Ubuntu versiooni jaoks saadaval kõik hostitud paketid kõigi ROS-versioonide jaoks. Näiteks toetab Ubuntu 14.04 indigo ja jade.

Põhipakettide installimisel töölauale on üks kolmest võimalusest:

äriotsuste tegemisel uurivad juhid tavaliselt kahte põhitegurit:
  • sudo apt-get install ros-indigo-ros-base minimaalseks paigaldamiseks

  • sudo apt-get install ros-indigo-desktop täiendava GUI tööriista olemasolu

  • sudo apt-get install ros-indigo-desktop-full omama kõiki ametlikke funktsioone, sealhulgas erinevaid simulaatoreid ja teeke navigeerimiseks ja tajumiseks.

Parema töökogemuse saamiseks on soovitatav täielik valik. Ainult sõlmede käitamiseks kasutatavatesse seadmetesse installimiseks piisab ase versioonist. Sõltumata valitud võimalusest võite installida mis tahes vajaliku paketi nimega package_name täitmisel:

sudo apt-get install ros-indigo-

Alajooned asendatakse lõplikus nimes sidekriipsudega, seega stage_ros see on pakendis kujul ros-indigo-stage-ros.

Järgmine samm on alustada rosdep. ROS-i paketid võivad deklareerida, millistest komponentidest nad sõltuvad. rosdep võimaldab teil need paketid kompileerida, tuginedes palju käsitsi töötlemisele. Selle alustamiseks helistage:

sudo rosdep init rosdep update

ROS-il on selle tööriistades palju keskkonnamuutujaid. Vaikimisi installimisel skript bash nende käivitamiseks asub see /opt/ros/indigo/setup.bash. Muutujaid tuleb käivitada igal seansil bash , seega on parim lahendus need lisada ~/.bashrc.

echo 'source /opt/ros/indigo/setup.bash' >> ~/.bashrc source ~/.bashrc

Mõni pakett installib väliseid sõltuvusi rosinstall kaudu, mis on saadaval paketina ja mida installitakse sudo apt-get install python-rosinstall

See on Ubuntu installi lõpp. Järgneb lühike sissejuhatus tööruumi seadistamisse.

Seadistamine

Kuna Groovy Galapagos , ROS-i tööruume on hallatud catkin kaudu. Kõigi hostitavate pakettide jaoks peame määratlema kataloogi. Kataloogi sees loome kausta src ja helistame catkin_init_workspace seestpoolt. See loob mitu sümboolset linki ROS-i praeguses lähtekoodiga versioonis. Järgmine samm on selle tööruumi lisamine ka keskkonnamuutujate hulka.

Kõigi nende tööruumi sätete täitmiseks valige tühi kataloog ja käivitage järgmised käsud:

mkdir src cd src catkin_init_workspace cd .. catkin_make echo 'source $(pwd)/devel/setup.bash' >> ~/.bashrc source ~/.bashrc

Nüüd olete loonud tööruumi, kus saate luua oma ROS-pakette.

Tutvuge tööriistadega

Mis tahes koodi loomine on tohutu hüpe. Kõigepealt tutvume mõne kulisside taga töötava süsteemiga. Meie esimene samm on käivitada põhiline GUI ja vaadata, milliseid sõnumeid see genereerib.

ROS-is mis tahes käivitamiseks peate käivitama põhiprotsessi. See on sama lihtne kui uue terminaliakna avamine ja tippimine:

roscore

Kogu ühendatud seadmevõrgus roscore see tuleb käivitada ainult üks kord seadmes, mis võõrustab keskset jaoturit side saatmiseks.

roscore Põhiroll see tähendab öelda sõlmedele, millega muud sõlmed peaksid ühenduse looma ja millisel viisil (kas võrgupordi või jagatud mälu kaudu). Eesmärk on võimaldada sõlmedel muretseda ainult selle pärast, milliseid andmeid nad tahavad teada saada, mitte selle, millise sõlmega nad tahavad ühendust luua, minimeerides kogu suhtlemiseks vajalikku aega või ribalaiust.

rqt

Pärast roscore käivitamist võime käivitada ROS-i peamise GUI-tööriista: rqt See, mida näeme, on väga pettumust valmistav - tühi aken. rqt Selles on palju erinevaid pistikprogramme, mida saab konfigureerida igas visuaalses konfiguratsioonis ja mis tahes arvus eelnevalt määratletud vaadetes.

Alustuseks käivitame pistikprogrammi Roboti juhtimine , valides selle Plugins > Robot Tools > Robot Steering. Saame kaks liugurit, mis tähistavad lineaarset ja pöörlevat liikumist, mis meie robotil on. Pistikprogrammi ülaosas näeme tekstikasti /cmd_vel temas. Me võime sellele teise nime anda. Esitab selle teema nime, millele väljaanne on suunatud. Terminalitööriistad on parim koht taustal toimuva nägemiseks.

Terminali tööriistad

ROS-il on süsteemis toimuva kontrollimiseks mitu võimsat tööriista. Esimene tööriist, mida juurutame, on rostopic, see võimaldab meil kontrollida teemasid, mida sõlmed saavad tellida ja avaldada. Käivita rostopic list andma:

/cmd_vel /rosout /rosout_agg

Kaks viimast teemat töötavad alati ja on seotud põhiliste ROS-süsteemidega. Teema /cmd_vel avaldatakse meie aadresside kaudu. Aadressi teema ümbernimetamine nimetab selle ka siin ümber. Nüüd oleme huvitatud sellest, mis toimub õppeaines. Käivita rostopic echo /cmd_vel see ei näita meile midagi (kui sa just liuguritega ei mängi). Protsess kestab seni, kuni selle tühistame. Nüüd liigutame vertikaalset liugurit kiirusega 20 m / s. Kajale vaadates näeme järgmist korduvalt:

kuidas teha raspberry pi serverit
linear: x: 0.2 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0

Kui tihti see kiri rämpspostiks läheb? rostopic hz /cmd_vel see ütleb keskmise kiirusega 10 Hz. Noh, kui palju selliseid laule saan oma aeglases WiFi-ühenduses esitada? rostopic bw /cmd_vel tuvastab keskmiselt 480 B / s.

See on kõik väga hästi, kuid me räägime sõnumitüüpidest. Need andmed on inimesele kasulikud, kuid rakendus vajab lähteandmeid ja peab andmete tõlgendamiseks teadma sõnumi tüüpi. Sõnumi tüüpi saab tõlgendada rostopic type /cmd_vel abil, öeldes meile, et see on geometry_msgs/Twist. Kõik ilma argumentideta kutsutud ROS-i terminalitööriistad tagastavad standardse abisõnumi.

ROS-wiki sobib selle stringitulemuse jaoks veebiotsingu tegemiseks Wiki-seletuses selle kohta, mida see sisaldab ja kuidas see on üles ehitatud. Kuid me ei pea teda usaldama. rosmsg on sõnumitüüpide üldine tööriist. Käivita rosmsg show geometry_msgs/Twist tagasi:

geometry_msgs/Vector3 linear float64 x float64 y float64 z geometry_msgs/Vector3 angular float64 x float64 y float64 z

Sõnum koosneb kahest 3D-vektorist, mis tähistavad lineaarset ja nurkkiirust 3D-ruumis.

Kui soovite teada, milliste teemadega sõlm ühendub, rosnode info See annab meile sõlme kohta üksikasjalikke andmeid. Tööriistad rostopic, rosmsg ja rosnode on peamised tööriistad lihvimata ROS-funktsioonide kontrollimiseks. ROS-il on palju rohkem GUI-sid ja terminalitööriistu, kuid need ei kuulu selle sissejuhatuse reguleerimisalasse.

Peamised tööriistad ROS-sõlme käitamiseks on rusrun ja roslaunch. rosrun saate sõlme käivitada rosrun ja roslaunch abil see käivitab käivitusfailide põhjal sõlmpunktid, millega saame vähe tuttavaks, kuna need on ROS-i automatiseerimise kõige keerulisem element.

Saame sulgeda kõik, mis meil jookseb, et hakata oma esimese koodiga tegelema. Tulevikus on ilmne, et mis tahes ROS-iga seotud käitamine nõuab aktiivset eksemplari roscore. Paljusid probleeme, millega kokku puutute, saab lahendada, kui sulgete terminaliakna roscore ja avage uus, et see uuesti käivitada. See värskendab kõiki sõltuvusi, mida oli vaja uuesti laadida, nii jaotises bash ja roscore

Teletoimega mängupuldi loomine

Meie esimene eesmärk on matkida Robot Steering funktsionaalsust sõlme loomine, mis avaldab andmeid geometry_msgs/Twist -st a /cmd_vel põhineb mängupuldi sisendil. Meie esimene peatus on joy pakett.

Pakett joy

Pakett joy pakub üldiseid ROS-draivereid juhtkangi ja mängupuldide jaoks. See ei kuulu vaikepaigaldusse, seega tuleb see installida:

sudo apt-get install ros-indigo-joy

Pärast installimist saame käivitada rosrun joy joy_node. See ühendab meid vaikimisi juhtnupu või mängupuldiga. Käivita rostopic list näitab meile, et meil on teema nimega /joy. Kuulake rostopic echo kaudu See näitab meile järgmise vorminguga sõnumeid (pange tähele, et sõnumite avaldamiseks peate suhtlema mängupuldi või juhtnupuga).

header: seq: 4156 stamp: secs: 1450707466 nsecs: 204517084 frame_id: '' axes: [0.0, 0.0, 0.0, -0.0, 0.0, 0.0, 0.0, 0.0] buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Praegu saate päiseid ignoreerida. Peale selle on meil axes ja buttons, mis selgitavad kenasti, mida nad esindavad. Liigutades kirved ja lükake nupud kontrolleris muudab see nende numbrite muutumise. Oma tööriistu kasutades saame tuvastada, et sõnumi tüüp on sensor_msgs/Joy ja vorming on:

std_msgs/Header header uint32 seq time stamp string frame_id float32[] axes int32[] buttons

Meie teleoperatsiooni loomine

Koodi kirjutamise esimene samm on paketi loomine. Kausta sees src tööruumist käivitage:

catkin_create_pkg toptal_tutorial rospy joy geometry_msgs sensor_msgs

Siinkohal ütleme loodava paketi nimi, millele järgnevad paketid, millest plaanime sõltuda. Ärge muretsege, sõltuvusi saab hiljem käsitsi värskendada.

Nüüd on meil kaust toptal_tutorial. Looge kausta sees kaust nimega scripts mis sisaldab kõiki meie Pythoni skripte.

Loome faili nimega teleop.py ja selle sees on meil:

#!/usr/bin/env python import rospy from sensor_msgs.msg import Joy def joy_callback(data): print data def main(): rospy.init_node('teleop') rospy.Subscriber('joy', Joy, joy_callback) while not rospy.is_shutdown(): pass if __name__ == '__main__': main()

Samuti peame määrama chmod +x teleop.py seega on skript käivitatav. Käivita rosrun joy joy_node terminalis ja rosrun toptal_tutorial teleop.py teises tulemuseks on, et terminaliväljund teleop.py täidetakse sõnumitega Rõõm .

Uurime, mida kood teeb.

Esiteks impordime ülemeelik , mis võõrustab raamatukogu ROS-i raamistikuga suhtlemiseks. Igal paketil, mis defineerib sõnumeid, on alampakett msg sõnumimääratlustega. Importime Joy sisendi käsitsemiseks. Manustatud sõnumitüüpe (nt Header kaustast std_msgs.msg kirjas Joy) pole vaja importida, kui me ei soovi neid eraldi mainida.

Meie esimene samm on konkreetse nimega sõlme initsialiseerimine (antud juhul nimetame seda 'teleopiks'). Pärast seda loome tellija, kes tellib teematüübi 'rõõm' sensor_msgs.msg.Joy ja kes tegeleb iga sõnumiga funktsiooni joy_callback kutsudes. Tagasihelistamised saavad parameetri, sõnumi andmed. Andmeliikmetele juurdepääs on lihtne. Kui tahtsime printida esimese oleku telg , kui me mäletame sõnumi tüüpi, helistaksime print data.axes[0] ja see oleks ujuk. Sõlm sõlmede lõpus, kuni ROS kustub.

Meie järgmine samm oleks oma andmete haldamine mingil viisil. Peaksime looma sõnumi Keerake see muutub, sõltuvalt sisendist ja siis avaldame selle teemas cmd_vel.

#!/usr/bin/env python import rospy from sensor_msgs.msg import Joy from geometry_msgs.msg import Twist # new from functools import partial # new def joy_callback(pub, data): # modified cmd_vel = Twist() # new cmd_vel.linear.x = data.axes[1] # new cmd_vel.angular.z = data.axes[0] # new pub.publish(cmd_vel) # new def main(): rospy.init_node('teleop') pub = rospy.Publisher('cmd_vel', Twist, queue_size=1000) # new rospy.Subscriber('joy', Joy, partial(joy_callback, pub)) # modified while not rospy.is_shutdown(): pass if __name__ == '__main__': main()

Esmalt lisame sõnumi Twist ja lisame tuge funktsionaalsetele argumentidele koos seondumisega functools.partial Loome reklaamija pub, kes avaldab cmd_vel sõnumi tüüp Twist. Seostame selle reklaamija tagasihelistamise juurde ja paneme ta sõnumit postitama Keerake igas sissekandes kaks esimest kiirust kirved . See kood teeb seda, mida temalt oodatakse, ja näeme tulemust rostopic echo /cmd_vel kaudu.

Meil on endiselt probleem. Teema /joy saab postitada suuri kiirusi. Kui me jälgime rostopic hz /cmd_vel ja liigutame analoogpulka ringides, näeme paljusid sõnumeid. Selle tulemuseks on mitte ainult suur hulk sidepidamist, vaid ka protsessid, mis neid sõnumeid vastu võtavad, peavad neid kõiki töötlema; pole vaja nii palju andmeid nii sageli postitada ja tegelikult on parem postitada stabiilse 10Hz kiirusega. Selle saame järgmise koodiga.

#!/usr/bin/env python import rospy from sensor_msgs.msg import Joy from geometry_msgs.msg import Twist from functools import partial def joy_callback(cmd_vel, data): # modified cmd_vel.linear.x = data.axes[1] cmd_vel.angular.z = data.axes[0] # moved pub.publish(cmd_vel) to main loop def main(): rospy.init_node('teleop') cmd_vel = Twist() # new pub = rospy.Publisher('cmd_vel', Twist, queue_size=1000) rospy.Subscriber('joy', Joy, partial(joy_callback, cmd_vel)) # modified rate = rospy.Rate(10) # new while not rospy.is_shutdown(): pub.publish(cmd_vel) # new rate.sleep() # new if __name__ == '__main__': main()

Muudame tagasihelistamist, et saada muudetav objekt Twist ja muutke seda silmuse sees. Funktsioon sleep kohta rospy.Rate säilitab stabiilse väljundsageduse.

Lõpliku koodi tulemuseks on teema /cmd_vel 10 Hz käsu kiiruse saamine, matkides seeläbi pistikprogrammi väljundit Roboti juhtimine rqt

Simuleeritud süsteemi käitamine

Maailma simuleerimine

Meie esimene eesmärk on luua keskkond, kus saaksime simuleerida stsenaariumi, mille soovime saavutada. Sõlm stageros pakendi sees stage_ros See võimaldab meil robotit käivitada 2D-etapis, mille määrab pilt. Selles on kirjeldatud kogu sünteesi pakk stage_ros maailma arhiivide ja nende genereerimise kohta. See on üsna lihtne, kuid käeulatusest väljas. Õnneks on pakiga kaasas mitu maailmademot. Kõigepealt läheme failide kataloogi käivitamise teel:

roscd stage_ros cd world

Kausta sees on mitu faili. Jookseme ühe.

rosrun stage_ros stageros willow-erratic.world

Loodi erinevaid teemasid. Igaühe tähendus on dokumenteeritud ka koos pakendiga. Oluline on see, et sellel on cmd_vel.

Näidatud lava sees on sinine kast, mis tähistab teie juhitavat robotit. Kasutades meie koodi või Roboti juhtimine saame seda robotit juhtida. Proovi seda!

Meie süsteemi konfigureerimine käivitusfailide abil

Kõigepealt loome kausta launch või lanzamiento meie paketis ja selle sees looge fail nimega teleop.launch. Kausta lõplik struktuur peaks välja nägema selline:

toptal_tutorial/ ├── CMakeLists.txt ├── launch │ └── teleop.launch ├── package.xml ├── scripts │ └── teleop.py └── src

Faili sees teleop.launch Määratleme mitu sõlme ja nende omavahelisi ühendusi.

robot_

Uus maailm koosneb neljast robotist ja igal nende teemal on eesliide robot_0/cmd_vel. Seega on robotil number 0 käsukiiruse teema nimega robot_0. Sellepärast panime oma kontrolli nimeruumi roscore ja nii kohandame nende nimed uuele vormile. Nii saate mõelda teemade nimedest kui kaustadest failisüsteemis.

Käivitamisfailide käivitamiseks pole vaja roscore Mõnes mõttes roscore see on lihtsalt stardifaili erijuhtum, mis ei tee midagi. Kui a roslaunch toptal_tutorial teleop.launch ainult esimene käivitatud käivitusfail käivitab kerneli, ülejäänud aga ühenduvad sellega. Nüüd täidame käivitamise järgmisega:

/robot_/base_pose_ground_truth /robot_/base_scan_0 /robot_/base_scan_1 /robot_/camera_info_0 /robot_/camera_info_1 /robot_/cmd_vel /robot_/depth_0 /robot_/depth_1 /robot_/image_0 /robot_/image_1 /robot_/odom

Kui kõik on korras, saadakse 4 robotiga simulaator, kus igaüks neist saab juhtida mängupuldi või juhtkangi abil. Selles maailmas on palju rohkem sisu kui eelmises. Igal neljal robotil on järgmine:

meediumiekraani suurused tundliku disaini jaoks
rqt

Asendame väärtusega 0, 1, 2 või 3. Ja sellega jõuamegi oma viimase teema juurde.

Meie andmete vaatamine rqt abil

Varem me ei süvenenud image_0 kuid see on ideaalne vahend keerukamate andmete visualiseerimiseks. Võite katsetada kõiki teemasid, kuid keskendume teemadele image_1, depth_0, depth_1 ja rqt

Jooksmine Plugins > Visualización > Vista Imagen eemaldame kõik avatud pistikprogrammid. Nüüd avame 4 pildivaaturit (robot_0) ja paneme need 2x2 võrku. Lõpuks valime iga vaate vasakus ülanurgas ühe neljast stage_ros/world jaoks loodud teemast.

Mida saame, on madala eraldusvõimega kaamerate sügav taju stereovisioon. Pange tähele, et selle tulemuse oleksime saanud ilma sisendsüsteemita. Kui me lihtsalt käivitame selle (kausta rosrun stage_ros stageros willow-four-erratics-multisensor.world seest):

/robot_0/cmd_vel

Ja lisame pistikprogrammi Roboti juhtimine teemaga export ROS_MASTER_URI=http://:11311/ Sama tulemus oleks meil olnud, kui juhtnupud oleksid ekraanil.

Tulemuste rakendamine reaalses süsteemis

Paljud riistvara toetavad täielikult ROS-i, sageli tänu kolmandatele osapooltele. Paljudel robotplatvormidel on draiverid, mis genereerivad seda tüüpi teateid, ja ROS-il on sõlmed, mis aktiveerivad veebikaamera ja avaldavad piltide voo.

Kuigi viimane tulemus oli simulatsioon sellest, mida me tahame saavutada; sama saab saavutada järgmiste muudatustega:

  • Installige ROS oma roboti pardaarvutisse
  • Loob pardakompuutri jaoks käivitusfaili, mis ühendab ROS-i alusplatvormi ja kõigi kõrgetasemeliste anduritega, nagu kaamerad, laseri ulatus ja muud. Vajalikud sõlmed võivad juba olemas olla või neid saab rakendada, luues ühelt poolt ROS-i jaoks kirjastaja / abonendi ja teiselt poolt jadakommunikatsiooni draiveri.
  • Laske käivitusfail käivitamisel käivitada
  • Lisage oma kaugarvutis rqt kui alustate Bashis, vaatab kaugarvuti seda hosti ja porti
  • Algus gazebo ja / või mis tahes skript roboti jälgimiseks ja juhtimiseks

Lõpuks tuleks kaugseadmes eksportida ainult sobiv muutuv keskkond ja kõik muu tehakse ise. ROS-i käivitamine arvutiklastris võtab igas masinas valmis saamiseks vaid ühe sammu.

järeldus

Oleme näidanud, kuidas iga koodiga, hoolimata sellest, kui väike, võib teil olla keeruline muutujate süsteem, mida saate manipuleerida, kui soovite. Lihtne kirjastaja / abonendi süsteem võimaldab kiiret tarkvaraarendust, mis töötleb andmeid arvutiklastris, jättes samas teile meelerahu, et te ei muretseks teatud elementide aluseks oleva rakenduse pärast.

Kuigi me kasutame lihtsat simulaatorit, on muud keerukamad simulaatorid nagu

|_+_|
(mis sisaldub töölaua täisversioonis) võimaldab teil luua 3D-maailmad koos keeruliste füüsiliste anduritega Ja see annab teile kogemuse lõpptulemustest ja tootest enne selle väljatöötamist.

See sissejuhatus oli mõnevõrra põhiline, kuid loodetavasti tunnete end rohkem huvitatud selle mitmekülgse raamistikuga töötamisest.

Kuidas kujundada teisendavaid sihtlehti

Ux Disain

Kuidas kujundada teisendavaid sihtlehti
Kümme Kotlini funktsiooni Androidi arendamise kiirendamiseks

Kümme Kotlini funktsiooni Androidi arendamise kiirendamiseks

Tagumine Ots

Lemmik Postitused
Serveripoolsete renderdatud Vue.js-rakenduste loomine Nuxt.js-i abil
Serveripoolsete renderdatud Vue.js-rakenduste loomine Nuxt.js-i abil
HTTP-päringute testimine: arendaja ellujäämisriist
HTTP-päringute testimine: arendaja ellujäämisriist
Bridgewateri Ray Dalio: Big Data, masinõppe ja Fintechi vaikne pioneer
Bridgewateri Ray Dalio: Big Data, masinõppe ja Fintechi vaikne pioneer
Magento 2 õpetus: kuidas moodustada terviklikku moodulit
Magento 2 õpetus: kuidas moodustada terviklikku moodulit
Välja tasemel rööbaste vahemälu valideerimine: DSL-i lahendus
Välja tasemel rööbaste vahemälu valideerimine: DSL-i lahendus
 
Sisuka UX-i disaini kunst
Juhend kasutajate tõhusaks kasutuselevõtuks parimate tavade kohta
Juhend kasutajate tõhusaks kasutuselevõtuks parimate tavade kohta
Disainilitsents pole lahendus
Disainilitsents pole lahendus
Liitreaalsuse vs. Virtuaalne reaalsus vs. Segareaalsus: sissejuhatav juhend
Liitreaalsuse vs. Virtuaalne reaalsus vs. Segareaalsus: sissejuhatav juhend
Mis on PMO? Juhend projektijuhtimise kontorisse
Mis on PMO? Juhend projektijuhtimise kontorisse
Lemmik Postitused
  • valige suvand, mis esindab kantavat tehnoloogiat.
  • c korporatsioon vs korporatsioon määratlus
  • c corp vs s corp taxation
  • visuaalstuudio ios rakenduste arendus
  • mis tüüpi keel on c
  • kuidas kasutada materjali disaini
  • sdr dongle talle raadio
Kategooriad
  • Planeerimine Ja Prognoosimine
  • Elustiil
  • Ux Disain
  • Finantsprotsessid
  • © 2022 | Kõik Õigused Kaitstud

    portaldacalheta.pt