Բովանդակություն:
- Պարագաներ
- Քայլ 1: Ստացեք ամեն ինչ կարգաբերված
- Քայլ 2. Հասկանալ, թե ինչպես է աշխատում վերահսկիչը
- Քայլ 3. ROS-MATLAB ինտերֆեյսի ստեղծում
- Քայլ 4: IP հասցեի ստացում
- Քայլ 5: Ստեղծեք GUI վերահսկիչի համար
- Քայլ 6: GUI խմբագրելի կոճակների ծրագրավորում
- Քայլ 7: GUI կոճակների ծրագրավորում
- Քայլ 8: Networkանցի կոնֆիգուրացիայի տեղադրում ROS համակարգչի վրա (Linux)
- Քայլ 9: Գործարկեք վերահսկիչը
Video: Matlab- ի վրա հիմնված ROS Robotic Controller: 9 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Դեռ մանկուց ես միշտ երազել եմ լինել Երկաթե մարդ և դեռ դա անում եմ: Երկաթե մարդն այն կերպարներից է, որն իրատեսորեն հնարավոր է, և պարզապես ես ձգտում եմ մի օր դառնալ Երկաթե մարդ, նույնիսկ եթե մարդիկ ծիծաղեն ինձ վրա կամ ասեն, որ դա անհնար է, քանի որ «դա անհնար է, մինչև որ ինչ-որ մեկը դա չանի»: Առնոլդ Շվարցենեգեր
ROS- ը զարգացող շրջանակ է, որն օգտագործվում է ռոբոտաշինության բարդ համակարգերի մշակման համար: Նրա ծրագրերը ներառում են. Ավտոմատ հավաքման համակարգ, հեռագործողություն, պրոթեզավորման զենք և արդյունաբերական հատվածի ծանր տեխնիկա:
Հետազոտողները և ինժեներները ROS- ը օգտագործում են նախատիպերը մշակելու համար, մինչդեռ տարբեր վաճառողներ այն օգտագործում են իրենց արտադրանքը ստեղծելու համար: Այն ունի բարդ ճարտարապետություն, որը դժվարացնում է կաղ մարդու կառավարումը: RAT- ի հետ ինտերֆեյսի կապ ստեղծելու համար MATLAB- ի օգտագործումը նոր մոտեցում է, որը կարող է օգնել հետազոտողներին, ինժեներներին և վաճառողներին ավելի հզոր լուծումներ մշակելիս:
Այսպիսով, սա ուսանելի է այն մասին, թե ինչպես պատրաստել Matlab- ի վրա հիմնված ROS ռոբոտային վերահսկիչ, սա լինելու է դրա մասին շատ քիչ ձեռնարկներից մեկը և այն մի քանի ROS հրահանգների շարքում: Այս նախագծի նպատակն է մշակել վերահսկիչ, որը կարող է կառավարել ձեր ցանցին միացված ցանկացած ROS- ռոբոտ: Այսպիսով, եկեք սկսենք:
տեսամոնտաժի կրեդիտներ ՝ Ամմար Ախեր, [email protected] հասցեով
Պարագաներ
Նախագծի համար պահանջվում են հետևյալ բաղադրիչները.
(1) ROS համակարգիչ/ռոբոտ
(2) երթուղիչ
(3) համակարգիչ MATLAB- ով (տարբերակ ՝ 2014 կամ ավելի բարձր)
Քայլ 1: Ստացեք ամեն ինչ կարգաբերված
Այս ուսանելի համար ես օգտագործում եմ Ubuntu 16.04-ը իմ linux համակարգչի և ros-kinetic- ի համար, ուստի շփոթությունից խուսափելու համար խորհուրդ եմ տալիս օգտագործել ros kinetic և ubuntu 16.04, քանի որ այն ունի լավագույն աջակցությունը ros-kinetic- ի համար: Ros kinetic- ի տեղադրման վերաբերյալ լրացուցիչ տեղեկությունների համար այցելեք https://wiki.ros.org/kinetic/Installation/Ubuntu: MATLAB- ի համար դուք կամ լիցենզիա եք գնում, կամ այստեղից ներբեռնում եք հետքի տարբերակ:
Քայլ 2. Հասկանալ, թե ինչպես է աշխատում վերահսկիչը
Համակարգիչը գործարկում է ռոբոտային վերահսկիչը MATLAB- ով: Հսկիչը վերցնում է IP հասցեն և ros pc/robot- ի նավահանգիստը:
Ռոս-թեման օգտագործվում է վերահսկիչի և ros pc/robot- ի միջև հաղորդակցվելու համար, որը նույնպես որպես մուտքագրվում է վերահսկիչի կողմից: Մոդեմը պահանջվում է LAN (տեղական ցանց) ստեղծելու համար և այն է, ինչ Ip հասցեները վերագրում է իր ցանցին միացված բոլոր սարքերին: Հետևաբար, ros համակարգիչը/ռոբոտը և վերահսկիչը աշխատող համակարգիչը պետք է միացված լինեն միևնույն ցանցին (այսինքն `մոդեմի ցանցին): Այսպիսով, այժմ, երբ գիտեք «ինչպես է այն աշխատում», եկեք հասնենք «ինչպես է այն կառուցված» …
Քայլ 3. ROS-MATLAB ինտերֆեյսի ստեղծում
ROS-MATLABInterface- ը օգտակար միջերես է հետազոտողների և ուսանողների համար MATLAB- ում իրենց ռոբոտների ալգորիթմները նախատիպավորելու և ROS- ի հետ համատեղ ռոբոտների վրա փորձարկելու համար: Այս ինտերֆեյսը կարող է ստեղծվել matlab- ի ռոբոտաշինության համակարգի տուփի միջոցով, և մենք կարող ենք նախատիպավորել մեր ալգորիթմը և փորձարկել այն ROS- ով միացված ռոբոտ կամ ռոբոտների սիմուլյատորներում, ինչպիսիք են Gazebo- ն և V-REP- ը:
Ձեր MATLAB- ում ռոբոտաշինության համակարգի գործիքատուփ տեղադրելու համար պարզապես գնացեք Գործիքադարակի Լրացուցիչ տարբերակ և լրացուցիչ ռադիոտեղորոշիչ գործիքախցիկ փնտրեք հավելյալ հետազոտողի մեջ: Օգտագործելով ռոբոտային գործիքների տուփը, մենք կարող ենք հրապարակել կամ բաժանորդագրվել մի թեմայի, ինչպիսին է ROS հանգույցը, և այն կարող ենք դարձնել ROS վարպետ: MATLAB-ROS ինտերֆեյսը ունի ROS գործառույթների մեծ մասը, որոնք կարող եք պահանջել ձեր նախագծերի համար:
Քայլ 4: IP հասցեի ստացում
Որպեսզի վերահսկիչը աշխատի, անհրաժեշտ է իմանալ ձեր ROS ռոբոտի/համակարգչի ip հասցեն և համակարգիչը, որն աշխատում է վերահսկիչով MATLAB- ով:
Ձեր համակարգչի IP- ն ստանալու համար.
Windows- ում.
Բացեք հրամանի տողը և մուտքագրեք ipconfig հրամանը և նշեք IPv4 հասցեն
Linux- ի համար.
Մուտքագրեք ifconfig հրամանը և նշեք մուտքագրված հասցեն: Այժմ, երբ ունեք ip հասցեն, ժամանակն է կառուցել GUI…
Քայլ 5: Ստեղծեք GUI վերահսկիչի համար
GUI ստեղծելու համար բացեք MATLAB և հրամանի պատուհանում մուտքագրեք ուղեցույց: Սա կբացի ուղեցույցի ծրագիրը, չնայած որ մենք ստեղծելու ենք մեր GUI- ն: Դուք կարող եք նաև օգտագործել ծրագրի դիզայները MATLAB- ում ՝ ձեր GUI- ն նախագծելու համար:
Մենք կստեղծենք ընդհանուր առմամբ 9 կոճակ (ինչպես ցույց է տրված նկարում).
6 կոճակ ՝ հետընթաց, հետընթաց, ձախ, աջ, միացում ռոբոտին, անջատում
3 Խմբագրելի կոճակներ ՝ Ros pc ip, նավահանգիստ և թեմայի անվանում:
Խմբագրելի կոճակները այն կոճակներն են, որոնք ROS համակարգչի ip- ն, դրա նավահանգիստը և թեմայի անվանումը կներառեն: Թեմայի անունն այն է, ինչի միջոցով շփվում են MATLAB վերահսկիչն ու ROS ռոբոտը/համակարգիչը: Խմբագրելի կոճակի տողը խմբագրելու համար աջ սեղմեք կոճակի վրա >> գնացեք Տեսուչի հատկություններ >> Լար և խմբագրեք կոճակի տեքստը:
Երբ ձեր GUI- ն ավարտված է, կարող եք ծրագրավորել կոճակները: Այստեղից է սկսվում իսկական զվարճանքը…
Քայլ 6: GUI խմբագրելի կոճակների ծրագրավորում
GUI- ն պահվում է որպես.fig ֆայլ, բայց կոդը/հետադարձ գործառույթները պահվում են.m ձևաչափով:.m ֆայլը պարունակում է ձեր բոլոր կոճակների ծածկագիրը: Ձեր կոճակներին հետադարձ գործառույթներ ավելացնելու համար աջ սեղմեք կոճակի վրա> > Դիտել հետադարձ կապեր >> հետադարձ կապ: Սա կբացի.m ֆայլը ձեր GUI- ի համար, որտեղ սահմանված է տվյալ կոճակը:
Առաջին զանգը, որը մենք պատրաստվում ենք ծածկագրել, վերաբերում է ROS IP խմբագրելի կոճակին: Edit1_Callback գործառույթի ներքո գրեք հետևյալ ծածկագիրը.
գործառույթ edit1_Callback (hObject, eventdata, բռնակներ)
գլոբալ ros_master_ip
ros_master_ip = ստանալ (hObject, 'String')
Այստեղ գործառույթը սահմանվում է որպես edit1_Callback, որը վերաբերում է առաջին խմբագրելի կոճակին: Երբ այս խմբագրելի կոճակում մուտքագրենք IP հասցե ROS ցանցից, այն կպահի IP հասցեն որպես տող գլոբալ փոփոխականի մեջ, որը կոչվում է ros_master_ip:
Այնուհետև հենց _OpeningFcn (hObject, eventdata, handles, varargin) տակ սահմանեք հետևյալը (տես նկ.).
գլոբալ ros_master_ip
գլոբալ ros_master_port
գլոբալ teleop_topic_name
ros_master_ip = '192.168.1.102';
ros_master_port = '11311';
teleop_topic_name = '/cmd_vel_mux/input/teleop';
Դուք պարզապես գլոբալ առումով կոշտ կոդավորեցիք ros-pc ip (ros_master_ip), port (ros_master_port) և Teleop թեմայի անվանումը: Այն, ինչ անում է, այն է, որ եթե խմբագրելի կոճակները դատարկ եք թողնում, միանալիս կօգտագործվեն այս նախապես սահմանված արժեքները:
Հաջորդ հետադարձ կապը, որը մենք պատրաստվում ենք ծածկագրել, Port- ի խմբագրելի կոճակի համար է:
Edit2_Callback գործառույթի ներքո գրեք հետևյալ ծածկագիրը.
գործառույթ edit2_Callback (hObject, eventdata, բռնակներ)
գլոբալ ros_master_port
ros_master_port = ստանալ (hObject, 'String')
Այստեղ գործառույթը սահմանվում է որպես edit2_Callback, որը վերաբերում է երկրորդ խմբագրելի կոճակին: Երբ մենք մուտքագրում ենք ros pc/robot- ի նավահանգիստը ROS ցանցից այս խմբագրելի կոճակում, այն կպահի նավահանգիստը որպես տող գլոբալ փոփոխականի մեջ, որը կոչվում է ros_master_port:
Նմանապես, հաջորդ զանգը, որը մենք պատրաստվում ենք ծածկագրել, Թեմայի անվան խմբագրելի կոճակի համար է:
Edit3_Callback գործառույթի ներքո գրեք հետևյալ ծածկագիրը.
խմբագրել գործառույթը3_Callback (hObject, eventdata, բռնակներ)
գլոբալ teleop_topic_name
teleop_topic_name = ստանալ (hObject, 'String')
Նմանապես ros_master_port- ին, այն նույնպես պահվում է որպես տող գլոբալ փոփոխականի մեջ:
Հաջորդը մենք կանդրադառնանք սեղմման կոճակների հետ կանչման գործառույթներին…
Քայլ 7: GUI կոճակների ծրագրավորում
Նախկինում ստեղծած կոճակները այն կոճակներն են, որոնք մենք կօգտագործենք ռոբոտին վերահսկիչից տեղափոխելու, միացնելու և անջատելու համար: Կոճակի հետադարձ կապերը սահմանվում են հետևյալ կերպ.
օր. գործառույթ pushbutton6_Callback (hObject, eventdata, բռնակներ)
Նշում. Կախված այն կարգից, որով դուք ստեղծել եք ձեր կոճակները, դրանք համարակալվելու են համապատասխանաբար: Հետևաբար, իմ.m ֆայլում pushbutton6 գործառույթը կարող է լինել Forward- ի համար, մինչդեռ ձեր.m ֆայլում այն կարող է լինել Backwards- ի համար, ուստի դա նկատի ունեցեք: Ձեր կոճակի ճշգրիտ գործառույթը իմանալու համար պարզապես աջ սեղմեք >> Դիտել հետադարձ կապ >> հետադարձ կապը և այն կբացի գործառույթը ձեր կոճակի համար, բայց այս ուսանելիի համար ես ենթադրում եմ, որ դա նույնն է, ինչ իմը:
Ռոբոտին միանալու կոճակի համար.
Գործողության ներքո pushbutton6_Callback (hObject, eventdata, բռնակներ).
գործառույթ pushbutton6_Callback (hObject, eventdata, բռնակներ) գլոբալ ros_master_ip
գլոբալ ros_master_port
գլոբալ teleop_topic_name
գլոբալ ռոբոտ
գլոբալ velmsg
ros_master_uri = strcat ('https://', ros_master_ip, ':', ros_master_port)
setenv ('ROS_MASTER_URI', ros_master_uri)
ռոսինիտ
ռոբոտ = rospublisher (teleop_topic_name, 'geometry_msgs/Twist');
velmsg = rosmessage (ռոբոտ);
Այս հետադարձ կապը կկարգավորի ROS_MASTER_URI փոփոխականը `միացնելով ros_master_ip- ը և նավահանգիստը: Այնուհետև rosinit հրամանը կսկսի կապը: Միանալուց հետո այն կստեղծի geometry_msgs/Twist հրատարակիչ, որը կօգտագործվի հրամանի արագությունը ուղարկելու համար: Թեմայի անունն այն անունն է, որը տալիս ենք խմբագրման դաշտում: Երբ կապը հաջողվի, մենք կկարողանանք գործել առաջ, հետ, ձախ, աջ կոճակները:
Նախքան Forward, Backward push buttoins- ին հետադարձ կապ ավելացնելը, մենք պետք է նախաստորագրենք գծային և անկյունային արագության արագությունները:
Հետևաբար, ներքևի _OpeningFcn (hObject, eventdata, handles, varargin) սահմանեք հետևյալը (տես նկ.).
գլոբալ left_spinVelocity գլոբալ right_spinVelocity
գլոբալ առաջընթաց արագություն
գլոբալ հետամնաց արագություն
left_spinVelocity = 2;
right_spinVelocity = -2;
forwardVelocity = 3;
հետընթաց արագություն = -3;
Նշում. Բոլոր արագությունները գտնվում են ռադ/վ -ում
Այժմ, երբ սահմանվում են գլոբալ փոփոխականները, ծրագրավորենք շարժման կոճակները:
Forward կոճակի համար.
գործառույթը pushbutton4_Callback (hObject, eventdata, handles) գլոբալ velmsg
գլոբալ ռոբոտ
գլոբալ teleop_topic_name
գլոբալ առաջընթաց արագություն
velmsg. Angular. Z = 0;
velmsg. Linear. X = forwardVelocity;
ուղարկել (ռոբոտ, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', true);
Նմանապես Backward կոճակի համար.
գործառույթ pushbutton5_Callback (hObject, eventdata, բռնակներ)
գլոբալ velmsg
գլոբալ ռոբոտ
գլոբալ հետամնաց արագություն
գլոբալ teleop_topic_name
velmsg. Angular. Z = 0;
velmsg. Linear. X = հետընթաց արագություն;
ուղարկել (ռոբոտ, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', true);
Նմանապես Ձախ կոճակի համար. Գործառույթ pushbutton3_Callback (hObject, eventdata, բռնակներ)
գլոբալ velmsgglobal ռոբոտ գլոբալ left_spinVelocity
գլոբալ teleop_topic_name
velmsg. Angular. Z = left_spinVelocity;
velmsg. Linear. X = 0;
ուղարկել (ռոբոտ, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', true);
Նմանապես աջ կոճակի համար.
գլոբալ velmsgglobal ռոբոտ
գլոբալ right_spinVelocity
գլոբալ teleop_topic_name
velmsg. Angular. Z = right_spinVelocity;
velmsg. Linear. X = 0;
ուղարկել (ռոբոտ, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', true);
Հետադարձ կապի բոլոր գործառույթներն ավելացվելուց և ֆայլերը պահվելուց հետո մենք կարող ենք ստուգել մեր վերահսկիչը:
Քայլ 8: Networkանցի կոնֆիգուրացիայի տեղադրում ROS համակարգչի վրա (Linux)
Մենք փորձարկելու ենք վերահսկիչը ros pc (Linux) համակարգում, որը կպահանջի կարգավորել ցանցի կազմաձևումը: Եթե դուք նաև վերահսկիչն աշխատում եք linux համակարգչի վրա, ապա այնտեղ նույնպես պետք է կարգավորեք ցանցի կազմաձևը:
Networkանցի կազմաձևում
Բացեք ձեր տերմինալի պատուհանը և մուտքագրեք gedit.bashrc
Երբ ֆայլը բաց է, ավելացրեք հետևյալը.
#Robot մեքենայի կազմաձևում
արտահանել ROS_MASTER_URI = https:// localhost: 11311
ROS հիմնական հանգույցի #IP հասցե
արտահանել ROS_HOSTNAME =
արտահանել ROS_IP =
արձագանք "ROS_HOSTNAME:" $ ROS_HOSTNAME
արձագանք "ROS_IP:" $ ROS_IP
արձագանք "ROS_MASTER_URI:" $ ROS_MASTER_URI
Դուք պետք է ամեն անգամ հետևեք այս քայլին ՝ IP- ի դինամիկ նշանակման պատճառով:
Քայլ 9: Գործարկեք վերահսկիչը
Մենք պատրաստվում ենք մեր վերահսկիչը փորձարկել Gazebo- ի Turtle բոտի վրա:
Gazebo- ն տեղադրելու համար դիմեք
Turtle bot- ը տեղադրելու համար դիմեք
Բացեք այն թղթապանակը, որտեղ պահպանել եք ձեր.fig և.m ֆայլերը MATLAB- ում և սեղմել Run (ինչպես ցույց է տրված նկարում): Սա կբացի վերահսկիչը համակարգչում: Միացնելը սեղմելուց առաջ համոզվեք, որ կրիա բոտերի սիմուլյատորն աշխատում է:
Ձեր TurtleBot մոդելավորումը փորձարկելու համար
Բացեք տերմինալը Ros համակարգչի վրա և մուտքագրեք ՝ $ roslaunch turtlebot_gazebo turtlebot_world.launch: Սա կբացի Turtlebot- ի մոդելավորում այդ համակարգչի վրա: TurtleBot- ի թեմայի անունն է/cmd_vel_mux/input/teleop, որը մենք արդեն տրամադրել ենք դիմումում: Խմբագրելի կոճակներում մուտքագրեք ros pc Ip հասցեն, նավահանգիստը և թեմայի անունը և սեղմեք: Միացեք Robot կոճակին: Ձեր կրիա բոտը պետք է սկսի շարժվել, երբ սեղմեք Առաջ, Հետ և այլն:
Գծային և անկյունային արագությունները դիտելու համար
Բացեք նոր տերմինալ և մուտքագրեք հրամանը ՝ $ rostopic echo/cmd_vel_mux/input/teleop
Եվ ահա դուք ունեք ձեր սեփական Matlab- ի վրա հիմնված ROS Robotic Controller- ը: Եթե ձեզ դուր եկավ իմ հրահանգը, խնդրում եմ քվեարկեք Առաջին անգամ հեղինակային մրցույթում և կիսվեք այն հնարավորինս շատ մարդկանց հետ: Շնորհակալություն.
Խորհուրդ ենք տալիս:
Առանց էկրանի / ցուցադրման (առանց գլխի) աշխատելը Raspberry Pi- ի կամ Linux- ի վրա հիմնված այլ համակարգիչների վրա `6 քայլ
Առանց էկրանի / ցուցադրման (առանց գլխի) աշխատելը Raspberry Pi- ի կամ Linux- ի / unix- ի վրա հիմնված այլ համակարգիչների վրա. Երբ մարդկանց մեծ մասը գնում է Raspberry PI, նրանք կարծում են, որ իրենց անհրաժեշտ է համակարգչի էկրան: Մի վատնեք ձեր գումարը համակարգչի անհարկի մոնիտորների և ստեղնաշարերի վրա: Մի վատնեք ձեր ժամանակը համակարգիչների միջև ստեղնաշարեր և մոնիտորներ տեղափոխելով: Մի կապեք հեռուստացույց, երբ այն չկա
Arduino- ի վրա հիմնված ոչ կոնտակտային ինֆրակարմիր ջերմաչափ - IR- ով հիմնված ջերմաչափ Arduino- ի միջոցով. 4 քայլ
Arduino- ի վրա հիմնված ոչ կոնտակտային ինֆրակարմիր ջերմաչափ | IR- ով հիմնված ջերմաչափ Arduino- ի միջոցով. Բարև ձեզ, այս հրահանգների մեջ մենք կդարձնենք ոչ կոնտակտային ջերմաչափ arduino- ով: Քանի որ երբեմն հեղուկի/պինդի ջերմաստիճանը չափազանց բարձր է կամ ցածր, ապա դժվար է դրա հետ կապ հաստատել և կարդալ այդ դեպքում ջերմաստիճանը
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 վրա հիմնված միջինի գեներատոր). 4 քայլ (նկարներով)
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 Based Midi Generator). Բարև, այսօր ես կբացատրեմ, թե ինչպես պատրաստել ձեր սեփական եղանակի վրա հիմնված փոքր երաժշտության գեներատոր: Այն հիմնված է ESP8266- ի վրա, որը նման է Arduino- ին և արձագանքում է ջերմաստիճանին, անձրևին: և լույսի ուժգնություն: Մի ակնկալեք, որ այն ամբողջ երգեր կամ ակորդներ կհաղորդի
ESP32- ի վրա հիմնված M5Stack M5stick C Եղանակի մոնիտոր DHT11- ով - Վերահսկեք ջերմաստիճանի խոնավության և ջերմության ինդեքսը M5stick-C- ի վրա DHT11: 6 քայլով
ESP32- ի վրա հիմնված M5Stack M5stick C Եղանակի մոնիտոր DHT11- ով | Վերահսկեք ջերմաստիճանի խոնավության և ջերմության ինդեքսը M5stick-C- ի վրա DHT11- ով: Ողջույն, տղերք, այս հրահանգներում մենք կսովորենք, թե ինչպես միացնել DHT11 ջերմաստիճանի տվիչը m5stick-C- ի հետ (զարգացման տախտակ m5stack- ով) և ցուցադրել այն m5stick-C- ի ցուցադրման վրա: Այսպիսով, այս ձեռնարկում մենք կկարդանք ջերմաստիճանը, խոնավությունը & շոգ եմ
Ինչպես միացնել MicroPython- ի որոնվածը ESP8266- ի վրա հիմնված Sonoff խելացի անջատիչի վրա. 3 քայլ (նկարներով)
Ինչպե՞ս միացնել MicroPython- ի որոնվածը ESP8266- ի վրա հիմնված Sonoff խելացի անջատիչի վրա. Այդ գծից ամենաճկուն և էժան սարքերից են Sonoff Basic- ը և Sonoff Dual- ը: Սրանք Wi-Fi- ով միացված անջատիչներ են ՝ հիմնված հիանալի չիպի ՝ ESP8266- ի վրա: Մինչդեռ