Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Kupata Usanidi wa Kila kitu
- Hatua ya 2: Kuelewa Jinsi Mdhibiti Anavyofanya Kazi
- Hatua ya 3: Kuunda kiolesura cha ROS-MATLAB
- Hatua ya 4: Kupata Anwani ya IP
- Hatua ya 5: Unda GUI kwa Mdhibiti
- Hatua ya 6: Kupanga Vifungo Vinavyoweza Kubadilishwa kwa GUI
- Hatua ya 7: Kupangilia vifungo vya kushinikiza vya GUI
- Hatua ya 8: Kuweka Usanidi wa Mtandao kwenye ROS PC (Linux)
- Hatua ya 9: Endesha Mdhibiti
Video: Mdhibiti wa Roboti ya msingi wa Matlab: Hatua 9
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Tangu nilipokuwa mtoto, nimekuwa na ndoto ya kuwa Iron Man na bado ninafanya hivyo. Iron Man ni mmoja wa wahusika ambao kwa kweli inawezekana na kuweka tu ninatamani kuwa Iron Man siku moja hata kama watu watanicheka au wanasema haiwezekani kwa sababu "haiwezekani mpaka mtu afanye hivyo" -Arnold Schwarzenegger.
ROS ni mfumo unaoibuka ambao hutumiwa kutengeneza mifumo tata ya roboti. Matumizi yake ni pamoja na: Mfumo wa Bunge wa Kujiendesha, Ushirikiano, Silaha za bandia na Mashine nzito ya tasnia ya viwanda.
Watafiti na wahandisi huinua ROS kwa kuunda prototypes, wakati wauzaji tofauti hutumia kuunda bidhaa zao. Ina usanifu tata ambao hufanya iwe ngumu kusimamiwa na mtu aliye kilema. Kutumia MATLAB kuunda kiunga cha kiunga na ROS ni njia mpya ambayo inaweza kusaidia watafiti, wahandisi na wachuuzi katika kutengeneza suluhisho kali zaidi.
Kwa hivyo hii inayoweza kufundishwa ni juu ya jinsi ya kutengeneza Mdhibiti wa Roboti wa makao ya Matlab, hii itakuwa moja ya mafunzo machache sana hapa na kati ya mafundisho machache ya ROS. Lengo la mradi huu ni kubuni kidhibiti ambacho kinaweza kudhibiti roboti yoyote ya ROS iliyounganishwa na mtandao wako. Basi wacha tuanze!
mikopo ya kuhariri video: Ammar Akher, kwa [email protected]
Vifaa
Vipengele vifuatavyo vinahitajika kwa mradi huo:
(1) ROS PC / Robot
(2) Router
(3) PC iliyo na MATLAB (toleo: 2014 au hapo juu)
Hatua ya 1: Kupata Usanidi wa Kila kitu
Kwa hili kufundisha, ninatumia Ubuntu 16.04 kwa pc yangu ya linux na ros-kinetic, kwa hivyo ili kuepuka mkanganyiko napendekeza kutumia ros kinetic na ubuntu 16.04 kwani ina msaada bora kwa ros-kinetic. Kwa habari zaidi juu ya jinsi ya kusanikisha ros kinetic nenda kwa https://wiki.ros.org/kinetic/Installation/Ubuntu. Kwa MATLAB unaweza kununua leseni au kupakua toleo la uchaguzi kutoka hapa.
Hatua ya 2: Kuelewa Jinsi Mdhibiti Anavyofanya Kazi
Pc inaendesha mdhibiti wa roboti kwenye MATLAB. Mdhibiti huchukua anwani ya IP na bandari ya ros pc / robot.
Mada ya ros hutumiwa kuwasiliana kati ya mtawala na rc pc / robot, ambayo pia inachukuliwa kama pembejeo na mtawala. Modem inahitajika kuunda LAN (mtandao wa eneo la karibu) na ndio inapeana anwani za Ip kwa vifaa vyote vilivyounganishwa kwenye mtandao wake. Kwa hivyo rc pc / robot na pc inayoendesha mdhibiti lazima zote ziunganishwe kwenye mtandao huo (kwa mfano mtandao wa modem). Kwa hivyo sasa kwa kuwa unajua "inavyofanya kazi", wacha tuende kwa "jinsi imejengwa"…
Hatua ya 3: Kuunda kiolesura cha ROS-MATLAB
Kiolesura cha ROS-MATLAB ni kielelezo muhimu kwa watafiti na wanafunzi kwa kuiga algorithms zao za roboti katika MATLAB na kuijaribu kwenye roboti zinazoendana na ROS. Kiunga hiki kinaweza kuundwa na kisanduku cha mfumo wa roboti kwenye matlab na tunaweza kuonyesha algorithm yetu na kuipima roboti inayowezeshwa na ROS au katika simulators za roboti kama vile Gazebo na V-REP.
Ili kusanikisha kisanduku cha zana cha mfumo wa roboti kwenye MATLAB yako, nenda tu kwenye chaguo la Ongeza kwenye upau wa zana na utafute sanduku la vifaa vya roboti katika kigunduzi cha nyongeza. Kutumia kisanduku cha zana cha roboti tunaweza kuchapisha au kujiandikisha kwa mada, kama node ya ROS, na tunaweza kuifanya kuwa bwana wa ROS. Muunganisho wa MATLAB-ROS una kazi nyingi za ROS ambazo unaweza kuhitaji kwa miradi yako.
Hatua ya 4: Kupata Anwani ya IP
Ili mtawala afanye kazi ni muhimu ujue anwani ya ip ya robot / pc yako ya ROS na pc inayoendesha mtawala kwenye MATLAB.
Ili kupata ip ya pc yako:
Kwenye Windows:
Fungua haraka ya amri na andika amri ya ipconfig na andika anwani ya IPv4
Kwa Linux:
Andika amri ya ifconfig na uangalie anwani ya inet. Sasa kwa kuwa una anwani ya ip, ni wakati wa kujenga GUI…
Hatua ya 5: Unda GUI kwa Mdhibiti
Ili kuunda GUI, fungua MATLAB na andika mwongozo kwenye dirisha la amri. Hii itafungua programu ya mwongozo ingawa ambayo tutatengeneza GUI yetu. Unaweza pia kutumia mbuni wa programu kwenye MATLAB kuunda GUI yako.
Tutatengeneza vifungo 9 kwa jumla (kama inavyoonyeshwa kwenye mtini):
Vifungo 6 vya kushinikiza: Foward, Backward, kushoto, kulia, Unganisha kwa Robot, Tenganisha
Vifungo vinavyoweza kubadilika: Ros pc ip, bandari na jina la Mada.
Vifungo vinavyobadilika ni vifungo ambavyo vitachukua ip ya ROS pc, ni bandari na jina la Mada kama pembejeo. Jina la Mada ni kile mtawala wa MATLAB na ROS robot / pc wanavyowasiliana kupitia. Ili kuhariri kamba kwenye kitufe kinachoweza kuhaririwa, bonyeza-bonyeza kitufe >> nenda kwa mali ya Mkaguzi >> Kamba na uhariri maandishi ya kitufe.
Mara tu GUI yako imekamilika, unaweza kupanga vifungo. Hapa ndipo furaha ya kweli inapoanza…
Hatua ya 6: Kupanga Vifungo Vinavyoweza Kubadilishwa kwa GUI
GUI imehifadhiwa kama faili ya.fig lakini kazi za msimbo / upigaji simu zinahifadhiwa katika fomati ya.m. Faili ya.m ina nambari ya vifungo vyako vyote. Ili kuongeza kazi za kurudi nyuma kwa vifungo vyako, bonyeza kitufe cha kulia> > Angalia kurudi nyuma >> kupigwa tena. Hii itafungua faili ya.m kwa GUI yako hadi ambapo kitufe fulani kimefafanuliwa.
Upigaji simu wa kwanza ambao tutafanya nambari ni kwa kitufe cha kuhaririwa cha ROS IP. Chini ya kazi edit1_Callback andika nambari ifuatayo:
kazi edit1_Callback (hObject, eventdata, vipini)
ros_master_ip wa kimataifa
ros_master_ip = pata (hObject, 'String')
Hapa kazi hufafanuliwa kama edit1_Callback, ambayo inahusu kitufe cha kwanza kinachoweza kuhaririwa. Tunapoingiza anwani ya IP kutoka kwa mtandao wa ROS kwenye kitufe hiki kinachoweza kuhaririwa, itahifadhi anwani ya IP kama kamba katika anuwai ya ulimwengu inayoitwa ros_master_ip.
Halafu tu chini ya _OpeningFcn (hObject, eventdata, vipini, varargin) fafanua zifuatazo (tazama mtini):
ros_master_ip wa kimataifa
kimataifa ros_master_port
jina la teleop_topic_name
ros_master_ip = '192.168.1.102';
ros_master_port = '11311';
teleop_topic_name = '/ cmd_vel_mux / pembejeo / teleop';
Umeweka tu nambari ngumu ulimwenguni ros-pc ip (ros_master_ip), bandari (ros_master_port) na jina la Mada ya Teleop. Kinachofanya ni kwamba ukiacha vitufe vinavyoweza kuhaririwa kuwa tupu, maadili haya yaliyotanguliwa hapo awali yatatumika wakati unganisha.
Upigaji simu unaofuata tutakaa nambari ni kwa kitufe kinachoweza kuhaririwa Port.
Chini ya kazi edit2_Callback andika nambari ifuatayo:
kazi edit2_Callback (hObject, eventdata, vipini)
kimataifa ros_master_port
ros_master_port = pata (hObject, 'String')
Hapa kazi hufafanuliwa kama edit2_Callback, ambayo inahusu kitufe cha pili kinachoweza kuhaririwa. Tunapoingiza bandari ya ros pc / robot hapa kutoka kwa mtandao wa ROS kwenye kitufe hiki kinachoweza kuhaririwa, itahifadhi bandari kama kamba katika anuwai ya ulimwengu inayoitwa ros_master_port.
Vivyo hivyo upigaji simu unaofuata tutakao nambari ni kwa kitufe cha kuhariri jina la Mada.
Chini ya kazi edit3_Callback andika nambari ifuatayo:
kazi edit3_Callback (hObject, eventdata, vipini)
jina la teleop_topic_name
teleop_topic_name = pata (hObject, 'String')
Sawa na ros_master_port, hii pia imehifadhiwa kama kamba katika utofauti wa ulimwengu.
Ifuatayo tutaangalia kazi za kurudi nyuma kwa vifungo vya kushinikiza…
Hatua ya 7: Kupangilia vifungo vya kushinikiza vya GUI
Vifungo vya kushinikiza ambavyo tumeunda hapo awali ndio tutakavyotumia kusonga, kuunganisha na kukata roboti kutoka kwa kidhibiti. Vifungo vya kushinikiza vifungo hufafanuliwa kama ifuatavyo:
km. kazi pushbutton6_Callback (hObject, eventdata, vipini)
Kumbuka: kulingana na mpangilio ambao uliunda vifungo vyako vya kushinikiza, zingehesabiwa ipasavyo. Kwa hivyo kazi pushbutton6 katika faili yangu ya.m inaweza kuwa ya Mbele ilhali katika faili yako ya.m inaweza kuwa ya Nyuma kwa hivyo endelea kuzingatia. Ili kujua ni kazi gani inayofaa kwa kitufe chako cha kushinikiza, bonyeza-kulia tu >> Tazama vizuizi >> vizuizi na itafungua kazi kwa kitufe chako cha kushinikiza lakini kwa hii inayofahamika nadhani ni sawa na yangu.
Kwa kitufe cha Unganisha kwa roboti:
Chini ya kazi pushbutton6_Callback (hObject, eventdata, vipini):
kazi pushbutton6_Callback (hObject, eventdata, Hushughulikia) global ros_master_ip
kimataifa ros_master_port
jina la teleop_topic_name
roboti ya ulimwengu
velmsg ya ulimwengu
ros_master_uri = strcat ('https://', ros_master_ip, ':', ros_master_port)
setenv ('ROS_MASTER_URI', ros_master_uri)
siki
robot = rospublisher (teleop_topic_name, 'jiometri_msgs / Twist');
velmsg = rosmessage (roboti);
Upigaji simu huu utaweka ubadilishaji wa ROS_MASTER_URI kwa kushirikisha ros_master_ip na bandari. Kisha amri ya rosinit itaanzisha unganisho. Baada ya kuunganisha, itaunda mchapishaji wa jiometri_msgs / Twist, ambayo itatumika kwa kutuma kasi ya amri. Jina la mada ni jina ambalo tunatoa kwenye kisanduku cha kuhariri. Uunganisho utakapofanikiwa, tutaweza kutumia vifungo vya mbele, nyuma, kushoto, kulia.
Kabla ya kuongeza kurudi nyuma kwa vifungo vya mbele, vya nyuma vya kushinikiza, tunahitaji kuanzisha kasi ya kasi ya mstari na angular.
Kwa hivyo hapa chini _OpeningFcn (hObject, eventdata, vipini, varargin) fafanua zifuatazo (tazama mtini):
ulimwengu kushoto_spinVelocity kimataifa haki_spinVelocity
mbele mbeleVelocity
kurudi nyuma kimataifaVelocity
kushoto_spinVelocity = 2;
kulia_spinVelocity = -2;
mbeleVelocity = 3;
Mzunguko wa nyuma = -3;
Kumbuka: kasi zote ziko kwenye rad / s
Sasa kwa kuwa anuwai za ulimwengu zimefafanuliwa wacha tupange vifungo vya mwendo.
Kwa kifungo cha mbele:
kazi pushbutton4_Callback (hObject, eventdata, Hushughulikia) global velmsg
roboti ya ulimwengu
jina la teleop_topic_name
mbele mbeleVelocity
velmsg. Angular. Z = 0;
velmsg. Linear. X = mbeleVelocity;
tuma (robot, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', kweli);
Vivyo hivyo kwa kifungo cha nyuma:
kazi pushbutton5_Callback (hObject, eventdata, vipini)
velmsg ya ulimwengu
roboti ya ulimwengu
kurudi nyuma kimataifaVelocity
jina la teleop_topic_name
velmsg. Angular. Z = 0;
velmsg. Linear. X = Mzunguko wa nyuma;
tuma (robot, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', kweli);
Vivyo hivyo kwa kifungo cha kushoto cha kushoto: kazi pushbutton3_Callback (hObject, eventdata, vipini)
velmsgglobal robot kimataifa global left_spinVelocity
jina la teleop_topic_name
velmsg. Angular. Z = kushoto_spinVelocity;
velmsg. Linear. X = 0;
tuma (robot, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', kweli);
Vivyo hivyo kwa kifungo cha kulia cha kushinikiza:
velmsgglobal robot ya ulimwengu
kimataifa_spinVelocity
jina la teleop_topic_name
velmsg. Angular. Z = kulia_spinVelocity;
velmsg. Linear. X = 0;
tuma (robot, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', kweli);
Mara tu kazi zote za kupiga simu zimeongezwa na faili zimehifadhiwa, tunaweza kujaribu kidhibiti chetu.
Hatua ya 8: Kuweka Usanidi wa Mtandao kwenye ROS PC (Linux)
Tutakuwa tukijaribu mtawala kwenye ros pc (Linux), ambayo itahitaji kuanzisha usanidi wa mtandao. Kama pia unaendesha mdhibiti kwenye pc ya linux, itabidi usanidi usanidi wa mtandao pia.
Usanidi wa Mtandao:
Fungua dirisha la terminal yako na andika gedit.bashrc
Mara faili iko wazi ongeza yafuatayo:
Usanidi wa Mashine ya #Robot
kuuza nje ROS_MASTER_URI = https:// localhost: 11311
Anwani ya #IP ya node kuu ya ROS
kuuza nje ROS_HOSTNAME =
kuuza nje ROS_IP =
unganisha "ROS_HOSTNAME:" $ ROS_HOSTNAME
unganisha "ROS_IP:" $ ROS_IP
unganisha "ROS_MASTER_URI:" $ ROS_MASTER_URI
Lazima ufuate hatua hii kila wakati kwa sababu ya ugawaji wa nguvu wa IP.
Hatua ya 9: Endesha Mdhibiti
Tutajaribu mtawala wetu kwenye bot ya Turtle huko Gazebo.
Ili kusanikisha Gazebo, tafadhali rejelea
Kufunga Turtle bot, tafadhali rejea
Fungua folda ambapo umehifadhi faili zako za.fig na.m kwenye MATLAB na bonyeza Run (kama inavyoonekana kwenye picha). Hii itafungua kidhibiti kwenye PC. Kabla ya kubonyeza unganisha, hakikisha simulator yako ya turtle bot inafanya kazi.
Ili kujaribu uigaji wako wa TurtleBot:
Fungua Kituo kwenye Ros pc na andika: uzinduzi wa turtlebot_gazebo turtlebot_world. $. Hii itafungua masimulizi ya Turtlebot kwenye PC hiyo. Jina la mada ya TurtleBot ni / cmd_vel_mux / input / teleop, ambayo tayari tumetoa katika programu hiyo. Andika kwenye anwani ya ros pc Ip, bandari na jina la mada kwenye vifungo vinavyoweza kuhaririwa na bonyeza kitufe cha Unganisha kwenye Robot. Turtle bot yako inapaswa kuanza kusonga wakati bonyeza mbele, Nyuma nk.
Kuangalia kasi na mstari wa angular:
Fungua kituo kipya na andika amri: $ rostopic echo / cmd_vel_mux / input / teleop
Na hapo unayo, Mdhibiti wako wa Robot wa msingi wa Matlab. Ikiwa ulipenda kufundishwa kwangu tafadhali mpe kura kwenye Mashindano ya Mwandishi wa Mara ya Kwanza na uwashiriki na watu wengi iwezekanavyo. Asante.
Ilipendekeza:
Mdhibiti wa Deepcool AIO RGB Arduino Mdhibiti: 6 Hatua
Mdhibiti wa Deepcool Castle AIO RGB Arduino: Niligundua kuchelewa sana kuwa ubao wangu wa mama haukuwa na kichwa cha kichwa cha rgb kinachoweza kushughulikiwa kwa hivyo niliboresha kutumia mafunzo kama hayo. Mafunzo haya ni ya mtu aliye na Deepcool Castle AIOs lakini inaweza kutumika kwa vifaa vingine vya rgb pc. KANUSHO: Ninajaribu
Intro kwa Mdhibiti Mdhibiti wa CloudX: Hatua 3
Intro kwa Microcontroller ya CloudX: Mdhibiti mdogo wa CloudX ni vifaa vya kufungua na programu-kompyuta ndogo ambayo hukuruhusu kuunda miradi yako ya maingiliano. CloudX ni bodi ndogo ya chip ambayo inaruhusu watumiaji kuiambia nini cha kufanya kabla ya kuchukua hatua yoyote, inakubali k tofauti
Mdhibiti wa Mchezo bila waya na Arduino na NRF24L01 + (msaada kwa Mdhibiti mmoja au Wawili): Hatua 3
Mdhibiti wa Mchezo bila waya na Arduino na NRF24L01 + (msaada kwa Mdhibiti mmoja au Wawili): Unaweza kupata mradi kamili kutoka kwa wavuti yangu (iko katika Kifini): https://teukka.webnode.com/l/langaton-ohjain-atmega-lla- ja-nrf24l01-radiomoduulilla / Huu ni mkutano mfupi sana kuhusu mradi huo. Nilitaka tu kuishiriki ikiwa mtu angesema
Mdhibiti mdogo wa AVR. Pulse Modulation Upana. Mdhibiti wa DC Motor na Mwangaza wa Mwanga wa LED.: 6 Hatua
Mdhibiti mdogo wa AVR. Pulse Modulation Upana. Mdhibiti wa DC Motor na Uzito wa Mwanga wa LED. Halo kila mtu! Pulse Modding Width (PWM) ni mbinu ya kawaida sana katika mawasiliano ya simu na udhibiti wa nguvu. ni kawaida kutumika kudhibiti nguvu inayolishwa kwa kifaa cha umeme, iwe ni motor, LED, spika, n.k kimsingi ni modu
Arduino Msingi Servo Mdhibiti: 6 Hatua
Mdhibiti wa Servo ya Msingi ya Arduino: Huyu ni mdhibiti rahisi wa serial kwa servos nyingi kulingana na Arduino. (yangu wa kwanza kufundishwa pia :)) Kazi nyingi katika hii zilitokana na kupata programu ya kuzungumza na arduino na kutengeneza itifaki ya data kupitishwa. Kama f