ما هي اللغات البرمجية المناسبة لبرمجة الروبوت ؟ و ما هي خصائصها ؟


بواسطة التلميذ(ة):
ما هي اللغات البرمجية المناسبة لبرمجة الروبوت ؟ و ما هي خصائصها ؟

١ مقدمة

برنامج الروبوت هو مجموعة من الأوامر أو التعليمات المشفرة التي تخبر الجهاز الميكانيكي والنظام الإلكتروني، المعروفين معًا باسم الروبوت، بالمهام التي يجب القيام بها.
يستخدم برنامج الروبوت لأداء المهام المستقلة.
تم اقتراح العديد من أنظمة وأطر البرامج لجعل روبوتات البرمجة أسهل.
تهدف بعض برامج الروبوت إلى تطوير أجهزة ميكانيكية ذكية.
تشمل المهام الشائعة حلقات التغذية الراجعة، والتحكم، وتحديد المسار، وتصفية البيانات، وتحديد مواقع البيانات ومشاركتها.

٢ ما هي اللغات البرمجية المناسبة لبرمجة الروبوت ؟:

1_ لغة وصف المعدات:/

تستخدم هذه اللغة في برمجة وصف الإلكترونات، وتستخدم في برمجة مصفوفات البوابات القابلة للبرمجة، التي تُتيح للمبرمج العمل على تطوير الأجهزة الإلكترونية، بالإضافة إلي إنه  ينتج رقاقة السيلكون واحدة من طرق الحلول السهلة، في التطوير في حالة ليس لدية إمكانية في تطوير نماذج إلكترونية، ولا تسمح باستخدام وصف المعدات، فهي خاصة ببرمجة وصف الإلكترونيات فهي هامة جداً وينبغي تعلمها حيث أنها من لغة برمجة الروبوت .

2_ لغة الليسب:/

لغة الليسب من لغة برمجة الروبوت

هذه اللغة هي أقدم ثاني لغة من اللغات في برمجة الروبوت عالمياً، فهي غير منتشرة بين المبرمجين مثل غيرها من لغات البرمجة الأخري، وتعد من أبرز وأفضل اللغات في برمجة الذكاء الاصطناعي، حيث تقدم الشركات الروبوتات الصناعية بمختلف المجالات يتحدد لها روبوت اللغة الخاص بها، فعلي المبرمج في كل مرة عند استخدامه لروبوت يكون متمكن للغة التي يستخدمها له.

3_ لغة الجافا:/

هذه اللغة تلعب دور مهم في إخفاء وظائف الذكرة الأساسية التي يستخدمها المبرمج، وبالتحديد عند التعامل مع الروبوت من خلفية علوم الحاسب فهذا يجعل استخدامه سهل للكثير من المبرمجين، فهذا يوضح أن لديهم فهم بسي عن ما يفعله بالفعل مع شفرتك، علماً بأن الجافا لها شعبية واسعة في التعامل مع الروبوت، لذلك يستلزم الدقة والإتقان في التعامل معها.

4_ لغة الماتلاب:/

هذه اللغة مفتوحة المصدر مثل Octave وغيرها من اللغات التي شعبية واسعة مع المهندسين المتخصصين في التطوير لنظم التحكم، وتحليل البيانات، مع العلم إنها تحتوي على أدوات خاصة بها ومعروفة جداً بالتعامل معها وتتمثل في Robotics Toolbox.

5_ لغة الباسيك:/

لغة الباسيك من لغة برمجة الروبوت

هذه اللغة واحدة من أهم أساسيات اللغة البرمجية للروبوت، وأهم ما يميزها إنها سهلة للغاية بالتعامل بها، وكذلك تتميزن بجودة التعامل اليومي، فهي تحتاج لمعرفة م الترميز التي سوف تتعامل معه اللغة، وإلا يتعين تعلم الكثير نت اللغات معها،  وتُعرف هذه اللغة باسم آخر وهو “الباسكال”.

6_ لغة C / C ++:/

هي لغة لغة البرمجة رقم واحد بعلم الروبوتات، ويتفق عليها العديد من الأشخاص على أن تلك اللغة هي نقطة ممتازة لعلماء الروبوت الجدد، فيستخدمها العديد من مكتبات الأجهزة، وتتفاعل مع الأجهزة المنخفضة.

7_ لغة بايثون:/

اللغة هادة بشكل قوي لعالم الروبوت في الفترة الأخيرة، وهذا يرجع بفضل أن البايثون مع لغة ++c يعدوا لغتان مهمين في العثور على ROS ، كما تتميز اللغة بسهولة الاستخدام  ،وهذه النقطة تكون غير متوفر في التعامل مع لغة الجافا ،ولكنها لغة تفسيرية أكثر.

8_ لغة C#/ .NET:/

هي لغة برمجة للربوت من شركة مايكروسوفت، لإن تم تضمينها بسبب استخدامها لغة رئيسية مع مايكروسوفت روبوت  Developer Studio ،فيجب إتقانها ومع تطوير المهارات يتم إضافة لغة ++c /c  والسبب إنها تُعد أهم لغة من لغات الروبوت، والنقطة الأولي في تعلم برمجة الروبوت بسبب ضم مكتبات الأجهزة لها حاليا.

9_ لغة التجميع:/

هذه اللغة تعرف باسم assembly، حيث تمكنك من البرمجة في مستوى الأصفار، فهي أدنى مستوى في البرمجة، مع العلم أن معظم الالكترونيات المنخفضة المستوى تتعامل ببرمجة التجميع.

٣ أمثلة على لغات البرمجة للروبوتات الصناعية:

نظرًا لطبيعة الملكية العالية لبرامج الروبوت، فإن معظم الشركات المصنعة لأجهزة الروبوت توفر أيضًا برامجها الخاصة. في حين أن هذا ليس غريباً في أنظمة التحكم الآلي الأخرى، فإن الافتقار إلى توحيد أساليب البرمجة للروبوتات يشكل تحديات معينة. على سبيل المثال، هناك أكثر من 30 مصنعًا مختلفًا للروبوتات الصناعية، لذلك هناك أيضًا 30 لغة برمجة مختلفة للروبوتات المطلوبة. هناك أوجه تشابه كافية بين الروبوتات المختلفة بحيث يمكن اكتساب فهم واسع النطاق لبرمجة الروبوت دون الحاجة إلى تعلم لغة الملكية الخاصة بكل جهة تصنيع. 

تتمثل إحدى طرق التحكم في الروبوتات من العديد من الشركات المصنعة في استخدام معالج Post وبرنامج برمجة خارج الخط (الروبوتات). باستخدام هذه الطريقة، من الممكن التعامل مع لغة برمجة الروبوت الخاصة بالعلامة التجارية من لغة برمجة عالمية، مثل بايثون (لغة البرمجة).   ومع ذلك، فإن تجميع وتحميل التعليمات البرمجية الثابتة خارج الخط إلى وحدة تحكم الروبوت لا يسمح للنظام الآلي بأن يكون على دراية بالحالة، لذلك لا يمكنه تكييف حركته والتعافي مع تغير البيئة. أصبح التحكم التكيفي الموحد في الوقت الفعلي لأي روبوت ممكنًا حاليًا باستخدام عدد قليل من أدوات الطرف الثالث المختلفة.

بعض الأمثلة على لغات برمجة الروبوت المنشورة موضحة أدناه.

المهمة بلغة إنجليزية بسيطة:/

Move to P1 (a general safe position) Move to P2 (an approach to P3) Move to P3 (a position to pick the object) Close gripper Move to P4 (an approach to P5) Move to P5 (a position to place the object) Open gripper Move to P1 and finish

كانت VAL واحدة من أولى "لغات" الروبوتات وتم استخدامها في Unimate robots.   تم استخدام متغيرات VAL من قبل الشركات المصنعة الأخرى بما في ذلك Adept Technology. يستخدم Stäubli حاليًا VAL3.

برنامج مثال:/

PROGRAM PICKPLACE    1. MOVE P1    2. MOVE P2    3. MOVE P3    4. CLOSEI 0,00    5. MOVE P4    6. MOVE P5    7. OPENI 0,00    8. MOVE P1 .END

مثال على برنامج Stäubli VAL3:/

begin    movej(p1,tGripper,mNomSpeed)    movej(appro(p3,trAppro),tGripper,mNomSpeed)    movel(p3,tGripper,mNomSpeed)    close(tGripper)    movej(appro(p5,trAppro),tGripper,mNomSpeed)    movel(p5,tGripper,mNomSpeed)    open(tGripper)    movej(p1,tGripper,mNomSpeed) end

trAppro هو متغير تحول ديكارتي. إذا استخدمنا مع الأمر المناسب، فلن نحتاج إلى تعليم نقطة P2 land P4، لكننا نقوم بتحويل نهج ديناميكي إلى موضع الانتقاء والمكان لتوليد المسار.

Epson RC + (مثال على الالتقاط بالمكنسة الكهربائية)

Function PickPlace         Jump P1         Jump P2         Jump P3         On vacuum       Wait,1         Jump P4         Jump P5         Off vacuum         Wait,1         Jump P1 Fend

ROBOFORTH (لغة تعتمد على FORTH ).

:/ PICKPLACE
P1
P3 GRIP WITHDRAW
P5 UNGRIP WITHDRAW
P1
;

(باستخدام Roboforth، يمكنك تحديد مواضع الاقتراب للأماكن بحيث لا تحتاج إلى P2 و P4. )

من الواضح أن الروبوت لا ينبغي أن يواصل الحركة التالية حتى يتم إغلاق القابض تمامًا. التأكيد أو الوقت المسموح به ضمني في الأمثلة المذكورة أعلاه لـ CLOSEI و GRIP بينما يتطلب الأمر On Vacuum تأخيرًا زمنيًا لضمان الشفط المرضي.

٤ لغات برمجة الروبوت:

إن الروبوتات الصناعية الأولى هي عبارة عن آلات يتحكم بها بواسطة المحركات ، و عن طريق متحكمات منطقية مبرمجة . و قد برمجت الأوامر عموماً عن طريق المستخدم . إن لغة MHI كانت لغة برمجة الروبوتات الأولى ، و من ثم طورت إلى MIT خلال السنوات الأولى من الستينات من القرن الماضي . و هي التي كانت تستخدم في الحاسبات الأولى و من ثم طورت هذه اللغة في جامعة ستانفورد في بداية عام 1970 بحيث اعتمدت على لغتي برمجة هما الباسكال و ال (ALGOL) . و من ثم ظهرت لغة البرمجة (VAL) و (VALII) في عام 1984 و التي طورتها شركة يونيميشن المحدودة . كما ظهرت لغة AML(A Manfacturing Language) في عام 1982 ثم طورتها شركة IBM الأمريكية . و كما ظهرت لغة جديدة سميت ب AUTOMATIX طورها ماكدونيل دوغلاس في نهاية عام 1983 و التي كانت تدعم مجموعة كبيرة من تطبيقات الروبوت التي قد تطور خلال هذه الفترة . أما بالنسبة للغة (V+) فكانت تعتبر من لغات برمجة الروبوتات الحديثة و كانت لديها أكثر من مائة تعليمة في برمجة هذه الروبوتات لتنفيذ حركات متعددة و متتالية .

التحكم بالروبوت :/ إن أوامر البرنامج المطلوب للتحكم بالروبوت يجب أن تسيطر على حركة الروبوت و تحديد موقعه ، و المسير و السرعة و التسارع و تجنب أي عائق . فمثلاً في لغة (V+) أوامر التحكم بالروبوت هي كما يلي :/

MOVE :/ هي تحريك الروبوت إلى موقع جديد محدد بالرمز .
APPRO:/ هي تحريك الروبوت إلى موقع آخر من موقع مسمى أي أنها تحرك المؤثر النهائي أو الأداة إلى المكان المحدد بالرمز ، ولكنه يبدأ بالقياس اعتباراً من نقطة على المحور Z.
فالأمر APPRO A,50 هو أمر تحريك الأداة إلى مسافة 50 عن النقطة A باتجاه المحور Z للأداة .

APPRO :/ و هي مشابهة ل APPRO فيما عدا أن الحركة إلى جوار المكان المحدد تكون على مسار خطي.
DEPART :/ و هي تحريك الأداة بالمسافة المرادة وفق المحور و اعتباراً من الوضع الحالي للأداة . فمثلاً
DEPART 50 يتم فيها تحريك الأداة إلى الوراء اعتباراً من الموقع الحالي بمقدار 50 مم .

DELAY :/ و هي إيقاف الحركة و ذلك لفترة معينة من الوقت . فمثلاً DELAY 3 تعني إيقاف الحركة و ذلك لمدة 3 ثواني .
SPEED :/ و هي تعليمة يتم فيها تحديد السرعة للحركات .
ACCEL :/ و هي تحديد التسارع و التباطؤ في حركة الروبوت .
SINGLE :/ تحديد حركة الوصلة أو النهاية .
MULTIPLE :/ و هي السماح بحركة كاملة لنهاية الوصلة (المعصم) .
OPEN :/ و هي تعليمة لتحديد وضعية الماسك على الوضعية المفتوحة .
CLOSE :/ هي تعليمة لتحديد وضعية الماسك على الوضعية المغلقة .
التحكم بالنظام :/ بالإضافة إلى التحكم بحركة الروبوت ، يجب على النظام أن يدعم البرنامج من حيث تصميمه ، و يتضمن التحكم بالنظام برامج معالجة البيانات و برامج خزن البيانات و برامج التحكم و نظام التحكم بالحساسات الخارجية . و كمثال عن أوامر التحكم في لغة (V+) مايلي :/

EDIT :/ و هذا الأمر يحدد منطقة في البرنامج لإجراء تعديل فيه .
STORE :/ و هي تعليمة تخزين المعلومات من الذاكرة إلى ملف .
LOAD :/ و هي قراءة محتويات القرص إلى الذاكرة .
COPY :/ و هي نسخ ملف محفوظ على قرص إلى برنامج جديد .
SPEED :/ و هو الأمر الذي يحدد سرعة حركة الروبوت الإجمالية .
EXECUTE :/ و هي التنفيذ للبرنامج الموجود .
ABORT :/ و هي إيقاف تنفيذ البرنامج .
Do :/ و هي تنفيذ أمر وحيد في البرنامج .
WHERE :/ و هي تحديد مكان موقع الروبوت .
TEACH :/ و هي تعريف سلسلة من المواقع المحتملة .
TIME :/ عرض البيانات و الوقت .
ENABLE :/ و هي أمر تشغيل واحد أو أكثر من مفاتيح النظام .
قواعد المعطيات و البنية :/ إن أوامر البرنامج تحتاج إلى ترتيب و تحكم منطقي في تنفيذها ضمن برنامج يتحكم بالروبوت و الأمثلة تتضمن الأوامر التالية :/

FOR :/ لتنفيذ عدد من الأوامر و لعدة مرات .
WHILE :/ و هي الاستمرار بتنفيذ مجموعة الأوامر و حتى الوصول إلى الغرض المطلوب.
DO :/ و هي تنفيذ عدة أوامر و حتى الوصول إلى الهدف المرجو .
IF :/ مراقبة فيما إذا تم تنفيذ الأوامر أو لا .
PARAMETER :/ و هي وضع قيمة بارا متر النظام .

بعض الوظائف الخاصة :/ و هذه الوظائف تكون ضرورية من أجل تسهيل برمجة الروبوت ، و هذه الوظائف تتضمن تعابير رياضية و أوامر لتحويل البيانات و معالجتها كما يلي في بعض الأمثلة :/

ABS :/ قيمة مطلقة .
COS :/ و هو جيب التمام .
SQRT :/ و هو الجذر التربيعي .
BCD :/ و هو متحول من النظام الحقيقي إلى العشري إلى الثنائي .
DCB :/ متحول من الثنائي إلى الحقيقي .
تنفيذ البرنامج :/ إن تنظيم البرنامج في تسلسل الأوامر القابلة للتنفيذ تتطلب جدولة المهمات و كمثال على ذلك الأوامر التالية :/

PECEXECUTE :/ و هي القيام بتنفيذ معالجة لبرنامج التحكم .
PCABORT :/ و هي التوقف عن تنفيذ معالجة برنامج التحكم .
PCRETRY :/و هي الاستمرار أو الاستئناف بتنفيذ آخر خطوة بعد حدوث خطأ ما .
PCEND :/ و هي توقف تنفيذ البرنامج عند النهاية و من ثم إعادة دورة التنفيذ من جديد في حال تشابه العمليات .

مثال عن برنامج :/

1:/ PROGRAM 2:/ PICK UP:/ It is the lifting of parts from one location to another 3:/ PART = 100 and is the number of parts that will be run 4:/ HEIGHT = 25, and is the distance to be referred to the part of the required 5:/ OPEN instruction is made by the robot is open 6:/ MOVE START instruction to move a robot to the site to start work 7:/ FOR I = 1 TO PARTS is the operation of the parts 8:/ APPRO PICK 9:/ MOVE PICK 10:/ CLOSE namely the closure of the hand or the handle 11:/ DEPARTS HEIGHT1 and moving the tool is high-mentioned on the same axis, and as of the current status of the tool. 12:/ MOVES PLACE is to move the robot 13:/ OPENI of the liberalization of the piece 14:/ DEPARTS HEIGHT 2 is the instruction and return the handle to the high No. 2 15:/ END. Transition to the other part of the process. 16:/ STOP the termination of the program 17:/ END.

٥ برنامج الروبوت الصناعي:

يتكون برنامج الروبوتات الصناعية من كائنات البيانات وقوائم التعليمات، والمعروفة باسم تدفق البرنامج (قائمة التعليمات). فمثلا،

Go to Jig1

هي تعليمات للإنسان الآلي بالذهاب إلى البيانات الموضعية المسماة Jig1. بالطبع، يمكن أن تحتوي البرامج أيضًا على بيانات ضمنية على سبيل المثال

Tell axis 1 move 30 degrees.

عادةً ما توجد البيانات والبرنامج في أقسام منفصلة من ذاكرة وحدة تحكم الروبوت. يمكن للمرء تغيير البيانات دون تغيير البرنامج والعكس صحيح. على سبيل المثال، يمكن للمرء كتابة برنامج مختلف باستخدام نفس Jig1 أو يمكن تعديل موضع Jig1 دون تغيير البرامج التي تستخدمه.

المراجع التي إعتمد عليها التلميذ(ة)

    ١ Wikipedia