Роботтарды бағдарламалау
«Робототехника» пәні бойынша оқу материалдары
Роботтарды бағдарламалау: «Темірді» ойлауға қалай үйретуге болады
1. Роботтарды бағдарламалау деген не?
Егер роботтың құрылымы — оның «денесі» (моторлар, датчиктер, корпус) болса, онда бағдарлама — оның «миы» мен «жүйке жүйесі».
Роботтарды бағдарламалау — бұл роботқа не істеу керектігін, оны қашан істеу керектігін және қоршаған ортаға қалай жауап беру керектігін айтатын нұсқауларды жазу процесі.
Жансыз механика мен электроника жиынтығын дербес жүйеге айналдыратын да — осы бағдарлама.
- Бағдарламасыз: Робот — жай ғана күрделі «қуыршақ».
- Бағдарламамен: Робот-шаңсорғыш орындықтың аяғын қалай айналып өтуді біледі; өнеркәсіптік манипулятор қай бөлшекті алу керектігін түсінеді; ал марсоход тастардың арасынан қауіпсіз жолды есептейді.
2. Роботтар қандай тілдерде «сөйлейді»?
Бірыңғай «роботтар тілі» жоқ. Тілді таңдау тапсырмаға байланысты:
- C++ (Си-плюс-плюс): Өнімділік патшасы. Бұл тіл жылдамдық және «темірді» тікелей басқару маңызды жерде қолданылады. Ол моторларды басқаруға және датчиктерден деректерді ең аз кідіріспен оқуға мүмкіндік береді. Оны «төменгі деңгейлі» басқару — яғни қозғалыстың өзі үшін пайдаланады.
- Python (Питон): «Ми» мен жылдам әзірлеу патшасы. Python-ды үйрену әлдеқайда оңай және оның күрделі тапсырмаларға арналған үлкен кітапханалары бар. Оны «жоғары деңгейлі» басқару үшін пайдаланады: Жасанды интеллект (ЖИ), компьютерлік көру (камера «көріп» тұрған нәрсені талдау) және шешім қабылдау.
- Визуалды бағдарламалау (Scratch, Blockly, LEGO Mindstorms): Жаңадан бастаушылар үшін тамаша бастау нүктесі. Код жазудың орнына, сіз бағдарламаны дайын логикалық блоктардан LEGO конструкторы сияқты «жинастырасыз». Бұл ең басты нәрсеге — алгоритмдік ойлауға үйретеді.
- Java: Ірі өнеркәсіптік жүйелерде және логистикаға арналған роботтар сияқты кейбір салаларда жиі қолданылады.
Көбінесе робот екі тілді бірден пайдаланады: оның «жұлыны» (жылдам рефлекстер, моторларды басқару) C++ тілінде, ал «миы» (көру, шешім қабылдау) Python тілінде жазылады.
3. Бағдарлама нақты не істейді? («Сезіну-Ойлау-Әрекет» циклі)
Роботтың бағдарламасы әрқашан дерлік «Қабылдау → Ойлау → Әрекет» шексіз циклінде жұмыс істейді:
- Қабылдау (Sense): Бағдарлама үнемі датчиктерден «сұрау салады».
- «Камерадан қандай деректер келіп жатыр?», «Лазер қабырғаға дейінгі қандай қашықтықты көрсетті?», «Бампер-түймесі басылды ма?»
- Ойлау (Think): Бұл бағдарламаның «миы», мұнда деректер өңделеді және шешімдер қабылданады.
- «Аһа, лазер қабырғаға дейін 10 см қалғанын көрсетіп тұр. ЕГЕР қашықтық < 15 см болса, ОНДА «Тоқта» және «Солға бұрыл» пәрмендерін іске қосу керек».
- Әрекет (Act): Бағдарлама атқарушы механизмдерге (моторларға) пәрмендер жібереді.
- «Сол жақ моторға кернеу жіберу (артқа айналдыру), оң жақ моторға кернеу жіберу (алға айналдыру)».
Бұл цикл секундына жүздеген рет қайталанады.
4. Ең маңызды құрал: ROS
Роботтар күрделене бастағанда, инженерлер бір мәселеге тап болды: әр жолы «велосипедті қайта ойлап табуға» тура келді. Мұны болдырмау үшін ROS (Robot Operating System) құрылды.
Маңызды: ROS — бұл Windows немесе iOS сияқты операциялық жүйе емес.
Бұл — инженерлерге робот жасау үшін дайын «текшелер» беретін фреймворк (қаңқа, құралдар жиынтығы):
- Драйверлер: Көптеген камераларды, лазерлерді (лидарларды) және моторларды қосуға арналған дайын бағдарламалар.
- Кітапханалар: Күрделі тапсырмаларға арналған дайын шешімдер (мысалы, навигация — бөлменің картасын қалай салуға және А нүктесінен Б нүктесіне дейінгі жолды қалай табуға болады).
- Байланыс: «Мидың» («Python»-дағы) «бұлшықеттермен» («C++»-тағы) байланысуының стандартты тәсілі.
Дрондардан бастап ғылыми прототиптерге дейінгі барлық дерлік заманауи күрделі роботтар ROS-ты пайдаланады.
Қорытынды: Бағдарламалау — бұл роботқа «жан» беретін нәрсе. Бұл робототехниканың ең шығармашылық және маңызды бөлігі, ол механиканы мінез-құлыққа айналдырады.