Роботтарды бағдарламалау

«Робототехника» пәні бойынша оқу материалдары

Роботтарды бағдарламалау: «Темірді» ойлауға қалай үйретуге болады

1. Роботтарды бағдарламалау деген не?

Егер роботтың құрылымы — оның «денесі» (моторлар, датчиктер, корпус) болса, онда бағдарлама — оның «миы» мен «жүйке жүйесі».

Роботтарды бағдарламалау — бұл роботқа не істеу керектігін, оны қашан істеу керектігін және қоршаған ортаға қалай жауап беру керектігін айтатын нұсқауларды жазу процесі.

Жансыз механика мен электроника жиынтығын дербес жүйеге айналдыратын да — осы бағдарлама.

  • Бағдарламасыз: Робот — жай ғана күрделі «қуыршақ».
  • Бағдарламамен: Робот-шаңсорғыш орындықтың аяғын қалай айналып өтуді біледі; өнеркәсіптік манипулятор қай бөлшекті алу керектігін түсінеді; ал марсоход тастардың арасынан қауіпсіз жолды есептейді.

2. Роботтар қандай тілдерде «сөйлейді»?

Бірыңғай «роботтар тілі» жоқ. Тілді таңдау тапсырмаға байланысты:

  • C++ (Си-плюс-плюс): Өнімділік патшасы. Бұл тіл жылдамдық және «темірді» тікелей басқару маңызды жерде қолданылады. Ол моторларды басқаруға және датчиктерден деректерді ең аз кідіріспен оқуға мүмкіндік береді. Оны «төменгі деңгейлі» басқару — яғни қозғалыстың өзі үшін пайдаланады.
  • Python (Питон): «Ми» мен жылдам әзірлеу патшасы. Python-ды үйрену әлдеқайда оңай және оның күрделі тапсырмаларға арналған үлкен кітапханалары бар. Оны «жоғары деңгейлі» басқару үшін пайдаланады: Жасанды интеллект (ЖИ), компьютерлік көру (камера «көріп» тұрған нәрсені талдау) және шешім қабылдау.
  • Визуалды бағдарламалау (Scratch, Blockly, LEGO Mindstorms): Жаңадан бастаушылар үшін тамаша бастау нүктесі. Код жазудың орнына, сіз бағдарламаны дайын логикалық блоктардан LEGO конструкторы сияқты «жинастырасыз». Бұл ең басты нәрсеге — алгоритмдік ойлауға үйретеді.
  • Java: Ірі өнеркәсіптік жүйелерде және логистикаға арналған роботтар сияқты кейбір салаларда жиі қолданылады.

Көбінесе робот екі тілді бірден пайдаланады: оның «жұлыны» (жылдам рефлекстер, моторларды басқару) C++ тілінде, ал «миы» (көру, шешім қабылдау) Python тілінде жазылады.

3. Бағдарлама нақты не істейді? («Сезіну-Ойлау-Әрекет» циклі)

Роботтың бағдарламасы әрқашан дерлік «Қабылдау → Ойлау → Әрекет» шексіз циклінде жұмыс істейді:

  1. Қабылдау (Sense): Бағдарлама үнемі датчиктерден «сұрау салады».
    • «Камерадан қандай деректер келіп жатыр?», «Лазер қабырғаға дейінгі қандай қашықтықты көрсетті?», «Бампер-түймесі басылды ма?»
  2. Ойлау (Think): Бұл бағдарламаның «миы», мұнда деректер өңделеді және шешімдер қабылданады.
    • «Аһа, лазер қабырғаға дейін 10 см қалғанын көрсетіп тұр. ЕГЕР қашықтық < 15 см болса, ОНДА «Тоқта» және «Солға бұрыл» пәрмендерін іске қосу керек».
  3. Әрекет (Act): Бағдарлама атқарушы механизмдерге (моторларға) пәрмендер жібереді.
    • «Сол жақ моторға кернеу жіберу (артқа айналдыру), оң жақ моторға кернеу жіберу (алға айналдыру)».

Бұл цикл секундына жүздеген рет қайталанады.

4. Ең маңызды құрал: ROS

Роботтар күрделене бастағанда, инженерлер бір мәселеге тап болды: әр жолы «велосипедті қайта ойлап табуға» тура келді. Мұны болдырмау үшін ROS (Robot Operating System) құрылды.

Маңызды: ROS — бұл Windows немесе iOS сияқты операциялық жүйе емес.

Бұл — инженерлерге робот жасау үшін дайын «текшелер» беретін фреймворк (қаңқа, құралдар жиынтығы):

  • Драйверлер: Көптеген камераларды, лазерлерді (лидарларды) және моторларды қосуға арналған дайын бағдарламалар.
  • Кітапханалар: Күрделі тапсырмаларға арналған дайын шешімдер (мысалы, навигация — бөлменің картасын қалай салуға және А нүктесінен Б нүктесіне дейінгі жолды қалай табуға болады).
  • Байланыс: «Мидың» («Python»-дағы) «бұлшықеттермен» («C++»-тағы) байланысуының стандартты тәсілі.

Дрондардан бастап ғылыми прототиптерге дейінгі барлық дерлік заманауи күрделі роботтар ROS-ты пайдаланады.

Қорытынды: Бағдарламалау — бұл роботқа «жан» беретін нәрсе. Бұл робототехниканың ең шығармашылық және маңызды бөлігі, ол механиканы мінез-құлыққа айналдырады.