رباتیک و هوش مصنوعی دو حوزه علمی و فنی هستند که با ترکیب یکدیگر، دنیای ما را به سمت آیندهای هوشمند و خودکار هدایت میکنند. این مقاله به بررسی مفاهیم اساسی، کاربردها و چالشهای این دو حوزه میپردازد.
هوش مصنوعی چیست؟
هوش مصنوعی (AI) شاخهای از علم کامپیوتر است که به بررسی و ایجاد سیستمهایی میپردازد که قادر به انجام وظایف هوشمندانه هستند. این وظایف میتوانند شامل یادگیری، استدلال، حل مسئله، درک زبان طبیعی و حتی شناخت الگوها باشند. هوش مصنوعی به دو دسته اصلی تقسیم میشود:
- هوش مصنوعی ضعیف (Narrow AI): سیستمهایی که برای انجام یک وظیفه خاص طراحی شدهاند، مانند تشخیص چهره یا ترجمه زبان.
- هوش مصنوعی قوی (General AI): سیستمهایی که قادر به انجام هر وظیفهای هستند که یک انسان میتواند انجام دهد. این نوع هوش مصنوعی هنوز در مراحل تحقیق و توسعه قرار دارد.
رباتیک چیست؟
رباتیک شاخهای میانرشتهای از مهندسی و علم است که شامل مهندسی مکانیک، مهندسی برق و علوم رایانه میشود. این حوزه به طراحی، ساخت، راهاندازی و کاربرد رباتها میپردازد. همچنین سامانههای رایانهای، کنترل، بازخورد حسگرها و پردازش اطلاعات نیز در این گروه قرار میگیرند.
تعریف رباتیک
رباتیک به علم و فناوری طراحی، ساخت و استفاده از رباتها اشاره دارد. رباتها ماشینهایی هستند که میتوانند وظایف مشخصی را به صورت خودکار انجام دهند. این ماشینها ممکن است به شکل انساننما یا به شکلهای دیگر طراحی شوند و در محیطهای مختلفی به کار گرفته شوند.
تاریخچه رباتیک
ایده ایجاد ماشینهایی که بتوانند به شکل خودکار کار کنند، به دوران قدیم بازمیگردد. اما تحقیق اساسی در مورد استفاده از رباتها تا قرن بیستم انجام نشده بود. کلمه “ربات” برای اولین بار توسط نویسندهای از اهالی چکسلواکی به نام کارل چاپک در نمایشنامهای به اسم “کارخانه رباتسازی روسوم” در سال ۱۹۲۰ معرفی شد. این کلمه از واژه اسلاوی “روبوتا” به دست آمده است که به معنی کارگر است.
در سال ۱۹۴۸، نوربرت وینر اصول سایبرنتیک را که اساس رباتیک عملی است تدوین کرد. جوزف انگلبرگر را به علت تأسیس اولین شرکت رباتیک دنیا در سال ۱۹۵۶ و اختراع اولین ربات صنعتی آمریکا، پدر علم رباتیک لقب دادهاند.
تکنولوژیهای رباتیک
رباتیک شامل مجموعهای از تکنولوژیها و علوم مختلف است که به طراحی و ساخت رباتها کمک میکنند. این تکنولوژیها شامل موارد زیر میشوند:
۱. مهندسی مکانیک
مهندسی مکانیک به طراحی و ساخت اجزای فیزیکی رباتها میپردازد. این شامل طراحی سازهها، موتورها، و سیستمهای حرکتی است.
۲. مهندسی برق
مهندسی برق به طراحی و ساخت سیستمهای الکتریکی و الکترونیکی رباتها میپردازد. این شامل مدارهای الکتریکی، سنسورها و سیستمهای کنترل است.
۳. علوم رایانه
علوم رایانه به طراحی و پیادهسازی نرمافزارهای کنترل رباتها میپردازد. این شامل الگوریتمهای هوش مصنوعی، پردازش تصویر و سیستمهای تصمیمگیری است.
کاربردهای رباتیک
رباتها میتوانند در هر موقعیت و برای هر منظوری به کار بروند، اما امروزه بسیاری از آنها در محیطهای خطرناک، فرایندهای تولید یا مکانهایی که انسان قادر به حیات نیست، استفاده میشوند. برخی از کاربردهای مهم رباتیک عبارتند از:
۱. صنعت
رباتها در صنایع مختلفی مانند خودروسازی، الکترونیک و تولید مواد غذایی به کار گرفته میشوند. آنها میتوانند وظایفی مانند جوشکاری، مونتاژ و بستهبندی را انجام دهند.
۲. پزشکی
رباتهای پزشکی میتوانند در جراحیهای دقیق، تشخیص بیماریها و توانبخشی بیماران به کار گرفته شوند. این رباتها میتوانند دقت و کارایی بیشتری نسبت به انسانها داشته باشند.
۳. نظامی
رباتها در عملیات نظامی مانند شناسایی، مینروبی و حمل و نقل تجهیزات به کار گرفته میشوند. این رباتها میتوانند در محیطهای خطرناک و غیرقابل دسترس برای انسانها عمل کنند.
۴. خانگی
رباتهای خانگی میتوانند وظایفی مانند تمیز کردن، پخت و پز و مراقبت از کودکان و سالمندان را انجام دهند. این رباتها میتوانند زندگی روزمره را آسانتر کنند.
ترکیب هوش مصنوعی و رباتیک
در دهههای اخیر، پیشرفتهای چشمگیری در زمینههای هوش مصنوعی و رباتیک صورت گرفته است. این دو حوزه، هرچند که به صورت مستقل نیز کاربردهای فراوانی دارند، اما ترکیب آنها میتواند به خلق شگفتیهای جدید و بهبود کارایی سیستمهای مختلف منجر شود. در این مقاله، به بررسی ترکیب هوش مصنوعی و رباتیک، کاربردهای آن و تاثیرات این ترکیب بر صنایع مختلف میپردازیم.
ترکیب هوش مصنوعی و رباتیک به معنای ادغام قابلیتهای شناختی هوش مصنوعی با تواناییهای فیزیکی رباتها است. این ترکیب میتواند به رباتها امکان دهد تا وظایف پیچیدهتری را انجام دهند و به طور مستقل تصمیمگیری کنند.
کاربردهای ترکیب هوش مصنوعی و رباتیک
رباتهای خانگی هوشمند: رباتهای خانگی مانند Amazon Astro و جاروبرقیهای روباتی مجهز به هوش مصنوعی میتوانند به طور مستقل در خانهها حرکت کنند و وظایفی مانند نظافت و نظارت را انجام دهند.
رباتهای صنعتی: در صنعت، رباتهای مجهز به هوش مصنوعی میتوانند وظایف پیچیدهتری را انجام دهند که از اتوماسیون برنامهریزیشده فراتر میروند. به عنوان مثال، رباتهای توسعهیافته توسط Vicarious میتوانند فعالیتهای پیچیدهای را که نیاز به دقت و انعطافپذیری دارند، انجام دهند.
رباتهای پزشکی: رباتهای جراحی مجهز به هوش مصنوعی میتوانند با دقت بیشتری عملهای جراحی را انجام دهند و به پزشکان در تشخیص و درمان بیماریها کمک کنند.
رباتهای خودران: خودروهای خودران مجهز به هوش مصنوعی میتوانند به طور مستقل در جادهها حرکت کنند و تصمیمگیریهای پیچیدهای مانند تشخیص موانع و انتخاب مسیر را انجام دهند.
تاثیرات ترکیب هوش مصنوعی و رباتیک
ترکیب هوش مصنوعی و رباتیک میتواند تاثیرات گستردهای بر صنایع مختلف داشته باشد. این تاثیرات شامل افزایش کارایی، کاهش هزینهها، بهبود کیفیت و افزایش ایمنی میباشد. به عنوان مثال، در صنعت تولید، رباتهای مجهز به هوش مصنوعی میتوانند به کاهش خطاها و افزایش سرعت تولید کمک کنند.
چالشها و آینده روباتیک و هوش مصنوعی
هرچند ترکیب هوش مصنوعی و رباتیک دارای مزایای فراوانی است، اما چالشهایی نیز وجود دارد. این چالشها شامل مسائل اخلاقی، امنیتی و نیاز به توسعه زیرساختهای مناسب میباشد. با این حال، با پیشرفتهای بیشتر در این زمینه، انتظار میرود که ترکیب هوش مصنوعی و رباتیک به یکی از مهمترین عوامل تحول در فناوریهای مدرن تبدیل شود.
چالشها و فرصتهای رباتیک و هوش مصنوعی
ترکیب هوش مصنوعی و رباتیک با چالشها و فرصتهای فراوانی همراه است. برخی از چالشها عبارتند از:
- امنیت: اطمینان از اینکه رباتها و سیستمهای هوش مصنوعی به طور ایمن عمل میکنند.
- اخلاق: مسائل اخلاقی مرتبط با استفاده از هوش مصنوعی و رباتها.
- اشتغال: تأثیرات احتمالی بر بازار کار و اشتغال.
اما فرصتهای بسیاری نیز وجود دارد، از جمله:
- افزایش بهرهوری: رباتها و سیستمهای هوش مصنوعی میتوانند بهرهوری را در صنایع مختلف افزایش دهند.
- بهبود کیفیت زندگی: رباتهای خانگی و پزشکی میتوانند کیفیت زندگی افراد را بهبود بخشند.
- پیشرفت علمی: تحقیقات در زمینه هوش مصنوعی و رباتیک میتواند به پیشرفتهای علمی جدید منجر شود.
تاثیرات ترکیب هوش مصنوعی و رباتیک
ترکیب هوش مصنوعی و رباتیک میتواند تاثیرات گستردهای بر صنایع مختلف داشته باشد. این تاثیرات شامل افزایش کارایی، کاهش هزینهها، بهبود کیفیت و افزایش ایمنی میباشد. به عنوان مثال، در صنعت تولید، رباتهای مجهز به هوش مصنوعی میتوانند به کاهش خطاها و افزایش سرعت تولید کمک کنند.
هوش مصنوعی در رباتیک با Gemini Robotics-ER
مدل Gemini Robotics-ER 1.5 گوگل یکی از پیشرفتهترین ابزارها برای ادغام هوش مصنوعی در سیستمهای رباتیک است. این مدل بینایی-زبانی به طور خاص برای کاربردهای رباتیک طراحی شده و قابلیتهای پیشرفته استدلال فضایی، هماهنگی وظایف زبان طبیعی و قابلیتهای عاملیت را به سیستمهای رباتیک فیزیکی میآورد.
مزایای استفاده از Gemini Robotics-ER :
- خودمختاری پیشرفته در محیطهای باز و پویا
- تعامل زبان طبیعی برای تخصیص وظایف پیچیده بدون نیاز به برنامهنویسی پیچیده
- بودجه تفکر قابل تنظیم برای توازن بین تاخیر و دقت
- پشتیبانی از SDKهای مختلف برای انعطافپذیری در توسعه
کاربردهای عملی
یافتن و شناسایی اشیاء: مدل میتواند اشیاء روی میز کار را شناسایی کرده و مختصات دقیق آنها را ارائه دهد. این قابلیت برای رباتهای صنعتی که باید قطعات مختلف را تشخیص دهند، بسیار مفید است.
ردیابی اشیاء در ویدیو: قابلیت ردیابی اشیاء در فریمهای ویدیو برای کاربردهای رباتیک پویا، مانند نظارت بر خطوط تولید یا ردیابی حرکت اشیاء در انبارها.
برنامهریزی مسیر: تولید مسیرهای حرکتی برای دستکاریکنندههای رباتیک تا اشیاء را به طور ایمن جابجا کنند، با در نظر گرفتن موانع و نقاط میانی.
استدلال فضایی پیشرفته: درک روابط فضایی برای وظایف پیچیده مانند تعیین اینکه کدام شیء باید جابجا شود تا فضای کافی برای شیء دیگری ایجاد گردد.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:
- کلید API AvalAI: برای دریافت کلید API خود در AvalAI ثبتنام کنید
- محیط Python: Python 3.8+ با pip نصب شده
- کتابخانههای مورد نیاز:
<span class="token comment"># نصب Google GenAI SDK (توصیه شده برای رباتیک)</span>
pip <span class="token function">install</span> <span class="token parameter variable">-U</span> google-genai
<span class="token comment"># یا نصب OpenAI SDK برای فرمت سازگار با OpenAI</span>
pip <span class="token function">install</span> <span class="token parameter variable">-U</span> openai- فایلهای تصویری/ویدیویی: نمونه تصاویر یا ویدیوهای صحنههای رباتیک برای تست
شروع کار: یافتن اشیاء
ابتداییترین مورد استفاده رباتیک شناسایی اشیاء در یک صحنه است. مدل مختصات دوبعدی نرمال شده (محدوده 0-1000) را برای اشیاء تشخیص داده شده برمیگرداند.
مثال: تشخیص اشیاء روی میز
<span class="token comment"># رمزگذاری تصویر به base64</span>
<span class="token assign-left variable">IMAGE_BASE64</span><span class="token operator">=</span><span class="token variable">$(base64 <span class="token parameter variable">-w</span> <span class="token number">0</span> workspace.jpg)</span>
<span class="token function">curl</span> <span class="token parameter variable">-X</span> POST <span class="token punctuation">\</span>
<span class="token string">"https://api.avalai.ir/v1beta/models/gemini-robotics-er-1.5-preview:generateContent"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">-H</span> <span class="token string">"Authorization: Bearer <span class="token variable">$AVALAI_API_KEY</span>"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">-H</span> <span class="token string">"Content-Type: application/json"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">-d</span> <span class="token string">'{
"contents": [{
"parts": [
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "'</span>"<span class="token variable">${IMAGE_BASE64}</span><span class="token string">"'"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>,
<span class="token punctuation">{</span>
<span class="token string">"text"</span><span class="token builtin class-name">:</span> <span class="token string">"Point to no more than 10 items in the image. Return JSON: [{<span class="token entity" title="\"">\"</span>point<span class="token entity" title="\"">\"</span>: [y, x], <span class="token entity" title="\"">\"</span>label<span class="token entity" title="\"">\"</span>: <label>}, ...]. Points in [y, x] format normalized to 0-1000."</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">]</span>,
<span class="token string">"generationConfig"</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span>
<span class="token string">"temperature"</span><span class="token builtin class-name">:</span> <span class="token number">0.5</span>,
<span class="token string">"thinkingConfig"</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span><span class="token string">"thinkingBudget"</span><span class="token builtin class-name">:</span> <span class="token number">0</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>'خروجی مورد انتظار:
<span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">"point"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">376</span><span class="token punctuation">,</span>
<span class="token number">508</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"آچار"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">"point"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">287</span><span class="token punctuation">,</span>
<span class="token number">609</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"پیچگوشتی"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">"point"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">223</span><span class="token punctuation">,</span>
<span class="token number">303</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"انبردست"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">"point"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">435</span><span class="token punctuation">,</span>
<span class="token number">172</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"جعبه ابزار"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">"point"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">270</span><span class="token punctuation">,</span>
<span class="token number">786</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"چکش"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
شکل 1: تشخیص اشیاء با نقاط دوبعدی که مختصات نرمال شده برای هر شیء شناسایی شده را نشان میدهد
تشخیص اشیاء با کادرهای محدودکننده
برای موقعیتیابی دقیقتر اشیاء، به جای نقاط منفرد، کادرهای محدودکننده دوبعدی درخواست کنید.
prompt <span class="token operator">=</span> <span class="token triple-quoted-string string">"""
Return bounding boxes as a JSON array with labels. Never return masks
or code fencing. Limit to 25 objects. Include as many objects as you
can identify on the table.
If an object is present multiple times, name them according to their
unique characteristic (colors, size, position, etc.).
The format should be: [{"box_2d": [ymin, xmin, ymax, xmax],
"label": <label>}] normalized to 0-1000. Values must be integers.
"""</span>
response <span class="token operator">=</span> client<span class="token punctuation">.</span>models<span class="token punctuation">.</span>generate_content<span class="token punctuation">(</span>
model<span class="token operator">=</span>MODEL_ID<span class="token punctuation">,</span>
contents<span class="token operator">=</span><span class="token punctuation">[</span>types<span class="token punctuation">.</span>Part<span class="token punctuation">.</span>from_bytes<span class="token punctuation">(</span>data<span class="token operator">=</span>image_bytes<span class="token punctuation">,</span> mime_type<span class="token operator">=</span><span class="token string">"image/jpeg"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> prompt<span class="token punctuation">]</span><span class="token punctuation">,</span>
config<span class="token operator">=</span>types<span class="token punctuation">.</span>GenerateContentConfig<span class="token punctuation">(</span>
temperature<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">,</span> thinking_config<span class="token operator">=</span>types<span class="token punctuation">.</span>ThinkingConfig<span class="token punctuation">(</span>thinking_budget<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
<span class="token keyword">import</span> json
boxes <span class="token operator">=</span> json<span class="token punctuation">.</span>loads<span class="token punctuation">(</span>response<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"تشخیص </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">len</span><span class="token punctuation">(</span>boxes<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string"> شیء"</span></span><span class="token punctuation">)</span>مثال خروجی:
<span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">"box_2d"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">100</span><span class="token punctuation">,</span>
<span class="token number">200</span><span class="token punctuation">,</span>
<span class="token number">300</span><span class="token punctuation">,</span>
<span class="token number">400</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"بلوک قرمز"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">"box_2d"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">150</span><span class="token punctuation">,</span>
<span class="token number">500</span><span class="token punctuation">,</span>
<span class="token number">350</span><span class="token punctuation">,</span>
<span class="token number">700</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"سیلندر آبی"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">"box_2d"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">200</span><span class="token punctuation">,</span>
<span class="token number">100</span><span class="token punctuation">,</span>
<span class="token number">400</span><span class="token punctuation">,</span>
<span class="token number">300</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"کره سبز"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
شکل 2: تشخیص اشیاء با کادرهای محدودکننده دوبعدی که مناطق مستطیلی دقیق برای هر شیء فراهم میکند
ردیابی اشیاء در ویدیو
اشیاء را در فریمهای ویدیو برای کاربردهای رباتیک پویا ردیابی کنید.
<span class="token keyword">import</span> cv2
<span class="token comment"># تعریف اشیاء برای ردیابی</span>
queries <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string">"بلوک قرمز (روی میز)"</span><span class="token punctuation">,</span>
<span class="token string">"بلوک قرمز (در گیره)"</span><span class="token punctuation">,</span>
<span class="token string">"سیلندر آبی"</span><span class="token punctuation">,</span>
<span class="token punctuation">]</span>
base_prompt <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"""
Point to the following objects: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token string">', '</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>queries<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">.
Return JSON: [{{"point": [y, x], "label": <label>}}, ...].
Points in [y, x] format normalized to 0-1000.
If no objects found, return empty list [].
"""</span></span>
<span class="token comment"># بارگذاری ویدیو</span>
video <span class="token operator">=</span> cv2<span class="token punctuation">.</span>VideoCapture<span class="token punctuation">(</span><span class="token string">"robot_manipulation.mp4"</span><span class="token punctuation">)</span>
frame_count <span class="token operator">=</span> <span class="token number">0</span>
tracking_data <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
<span class="token keyword">while</span> video<span class="token punctuation">.</span>isOpened<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
ret<span class="token punctuation">,</span> frame <span class="token operator">=</span> video<span class="token punctuation">.</span>read<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> ret<span class="token punctuation">:</span>
<span class="token keyword">break</span>
<span class="token comment"># پردازش هر 5 فریم</span>
<span class="token keyword">if</span> frame_count <span class="token operator">%</span> <span class="token number">5</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">:</span>
<span class="token comment"># رمزگذاری فریم</span>
_<span class="token punctuation">,</span> <span class="token builtin">buffer</span> <span class="token operator">=</span> cv2<span class="token punctuation">.</span>imencode<span class="token punctuation">(</span><span class="token string">".jpg"</span><span class="token punctuation">,</span> frame<span class="token punctuation">)</span>
frame_bytes <span class="token operator">=</span> <span class="token builtin">buffer</span><span class="token punctuation">.</span>tobytes<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># تشخیص اشیاء</span>
response <span class="token operator">=</span> client<span class="token punctuation">.</span>models<span class="token punctuation">.</span>generate_content<span class="token punctuation">(</span>
model<span class="token operator">=</span>MODEL_ID<span class="token punctuation">,</span>
contents<span class="token operator">=</span><span class="token punctuation">[</span>
types<span class="token punctuation">.</span>Part<span class="token punctuation">.</span>from_bytes<span class="token punctuation">(</span>data<span class="token operator">=</span>frame_bytes<span class="token punctuation">,</span> mime_type<span class="token operator">=</span><span class="token string">"image/jpeg"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
base_prompt<span class="token punctuation">,</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
config<span class="token operator">=</span>types<span class="token punctuation">.</span>GenerateContentConfig<span class="token punctuation">(</span>
temperature<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">,</span> thinking_config<span class="token operator">=</span>types<span class="token punctuation">.</span>ThinkingConfig<span class="token punctuation">(</span>thinking_budget<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
frame_data <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"frame"</span><span class="token punctuation">:</span> frame_count<span class="token punctuation">,</span> <span class="token string">"objects"</span><span class="token punctuation">:</span> json<span class="token punctuation">.</span>loads<span class="token punctuation">(</span>response<span class="token punctuation">.</span>text<span class="token punctuation">)</span><span class="token punctuation">}</span>
tracking_data<span class="token punctuation">.</span>append<span class="token punctuation">(</span>frame_data<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"فریم </span><span class="token interpolation"><span class="token punctuation">{</span>frame_count<span class="token punctuation">}</span></span><span class="token string">: </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">len</span><span class="token punctuation">(</span>frame_data<span class="token punctuation">[</span><span class="token string">'objects'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string"> شیء تشخیص داده شد"</span></span><span class="token punctuation">)</span>
frame_count <span class="token operator">+=</span> <span class="token number">1</span>
video<span class="token punctuation">.</span>release<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"پردازش </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">len</span><span class="token punctuation">(</span>tracking_data<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string"> فریم"</span></span><span class="token punctuation">)</span>
![]()
شکل 3: ردیابی اشیاء در فریمهای ویدیو که تحلیل زمانی حرکت اشیاء را نشان میدهد
برنامهریزی مسیر
مسیرهای حرکتی را برای دستکاریکنندههای رباتیک تولید کنید تا اشیاء را به طور ایمن جابجا کنند.
prompt <span class="token operator">=</span> <span class="token triple-quoted-string string">"""
Place a point on the red block, then 15 points for the trajectory of
moving the red block to the top of the container on the left.
The points should be labeled by order of the trajectory, from '0'
(start point) to '15' (final point).
Return JSON: [{"point": [y, x], "label": <label>}, ...].
Points in [y, x] format normalized to 0-1000.
"""</span>
response <span class="token operator">=</span> client<span class="token punctuation">.</span>models<span class="token punctuation">.</span>generate_content<span class="token punctuation">(</span>
model<span class="token operator">=</span>MODEL_ID<span class="token punctuation">,</span>
contents<span class="token operator">=</span><span class="token punctuation">[</span>types<span class="token punctuation">.</span>Part<span class="token punctuation">.</span>from_bytes<span class="token punctuation">(</span>data<span class="token operator">=</span>image_bytes<span class="token punctuation">,</span> mime_type<span class="token operator">=</span><span class="token string">"image/jpeg"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> prompt<span class="token punctuation">]</span><span class="token punctuation">,</span>
config<span class="token operator">=</span>types<span class="token punctuation">.</span>GenerateContentConfig<span class="token punctuation">(</span>temperature<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
trajectory <span class="token operator">=</span> json<span class="token punctuation">.</span>loads<span class="token punctuation">(</span>response<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"مسیر تولید شده با </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">len</span><span class="token punctuation">(</span>trajectory<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string"> نقطه میانی"</span></span><span class="token punctuation">)</span>
<span class="token comment"># تبدیل مختصات نرمال شده به مختصات فضای کاری ربات</span>
<span class="token keyword">def</span> <span class="token function">normalize_to_robot_coords</span><span class="token punctuation">(</span>point<span class="token punctuation">,</span> workspace_dims<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">"""تبدیل مختصات نرمال (0-1000) به مختصات فضای کاری ربات"""</span>
y_norm<span class="token punctuation">,</span> x_norm <span class="token operator">=</span> point
x_robot <span class="token operator">=</span> <span class="token punctuation">(</span>x_norm <span class="token operator">/</span> <span class="token number">1000.0</span><span class="token punctuation">)</span> <span class="token operator">*</span> workspace_dims<span class="token punctuation">[</span><span class="token string">"width"</span><span class="token punctuation">]</span> <span class="token operator">+</span> workspace_dims<span class="token punctuation">[</span><span class="token string">"x_min"</span><span class="token punctuation">]</span>
y_robot <span class="token operator">=</span> <span class="token punctuation">(</span>y_norm <span class="token operator">/</span> <span class="token number">1000.0</span><span class="token punctuation">)</span> <span class="token operator">*</span> workspace_dims<span class="token punctuation">[</span><span class="token string">"height"</span><span class="token punctuation">]</span> <span class="token operator">+</span> workspace_dims<span class="token punctuation">[</span><span class="token string">"y_min"</span><span class="token punctuation">]</span>
<span class="token keyword">return</span> <span class="token punctuation">(</span>x_robot<span class="token punctuation">,</span> y_robot<span class="token punctuation">)</span>
workspace <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"x_min"</span><span class="token punctuation">:</span> <span class="token operator">-</span><span class="token number">0.5</span><span class="token punctuation">,</span> <span class="token string">"width"</span><span class="token punctuation">:</span> <span class="token number">1.0</span><span class="token punctuation">,</span> <span class="token string">"y_min"</span><span class="token punctuation">:</span> <span class="token operator">-</span><span class="token number">0.5</span><span class="token punctuation">,</span> <span class="token string">"height"</span><span class="token punctuation">:</span> <span class="token number">1.0</span><span class="token punctuation">}</span>
robot_trajectory <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
<span class="token keyword">for</span> waypoint <span class="token keyword">in</span> trajectory<span class="token punctuation">:</span>
robot_coords <span class="token operator">=</span> normalize_to_robot_coords<span class="token punctuation">(</span>waypoint<span class="token punctuation">[</span><span class="token string">"point"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> workspace<span class="token punctuation">)</span>
robot_trajectory<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token string">"label"</span><span class="token punctuation">:</span> waypoint<span class="token punctuation">[</span><span class="token string">"label"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token string">"coords"</span><span class="token punctuation">:</span> robot_coords<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"نقطه میانی </span><span class="token interpolation"><span class="token punctuation">{</span>waypoint<span class="token punctuation">[</span><span class="token string">'label'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">: </span><span class="token interpolation"><span class="token punctuation">{</span>robot_coords<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>

شکل 4: برنامهریزی مسیر با 15 نقطه میانی که مسیر حرکت ربات را تعریف میکند
استدلال فضایی
از درک مدل در مورد روابط فضایی برای وظایف پیچیده استفاده کنید.
مثال: ایجاد فضا برای یک شیء
prompt <span class="token operator">=</span> <span class="token triple-quoted-string string">"""
Point to the object that I need to remove to make room for my laptop.
Return JSON: [{"point": [y, x], "label": <label>}, ...].
Points in [y, x] format normalized to 0-1000.
"""</span>
response <span class="token operator">=</span> client<span class="token punctuation">.</span>models<span class="token punctuation">.</span>generate_content<span class="token punctuation">(</span>
model<span class="token operator">=</span>MODEL_ID<span class="token punctuation">,</span>
contents<span class="token operator">=</span><span class="token punctuation">[</span>types<span class="token punctuation">.</span>Part<span class="token punctuation">.</span>from_bytes<span class="token punctuation">(</span>data<span class="token operator">=</span>desk_image<span class="token punctuation">,</span> mime_type<span class="token operator">=</span><span class="token string">"image/jpeg"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> prompt<span class="token punctuation">]</span><span class="token punctuation">,</span>
config<span class="token operator">=</span>types<span class="token punctuation">.</span>GenerateContentConfig<span class="token punctuation">(</span>
temperature<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">,</span> thinking_config<span class="token operator">=</span>types<span class="token punctuation">.</span>ThinkingConfig<span class="token punctuation">(</span>thinking_budget<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
result <span class="token operator">=</span> json<span class="token punctuation">.</span>loads<span class="token punctuation">(</span>response<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"شیء برای حذف: </span><span class="token interpolation"><span class="token punctuation">{</span>result<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">'label'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"موقعیت: </span><span class="token interpolation"><span class="token punctuation">{</span>result<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">'point'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>

شکل 5: استدلال فضایی برای شناسایی شیئی که باید جابجا شود تا فضا برای لپتاپ ایجاد گردد
مثال: برنامهریزی وظایف چند مرحلهای
prompt <span class="token operator">=</span> <span class="token triple-quoted-string string">"""
Explain how to pack the lunch box and lunch bag. Point to each
object you refer to. Each point format:
[{"point": [y, x], "label": <object_name>}]
Coordinates normalized to 0-1000.
"""</span>
response <span class="token operator">=</span> client<span class="token punctuation">.</span>models<span class="token punctuation">.</span>generate_content<span class="token punctuation">(</span>
model<span class="token operator">=</span>MODEL_ID<span class="token punctuation">,</span>
contents<span class="token operator">=</span><span class="token punctuation">[</span>types<span class="token punctuation">.</span>Part<span class="token punctuation">.</span>from_bytes<span class="token punctuation">(</span>data<span class="token operator">=</span>lunch_image<span class="token punctuation">,</span> mime_type<span class="token operator">=</span><span class="token string">"image/jpeg"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> prompt<span class="token punctuation">]</span><span class="token punctuation">,</span>
config<span class="token operator">=</span>types<span class="token punctuation">.</span>GenerateContentConfig<span class="token punctuation">(</span>
temperature<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">,</span> thinking_config<span class="token operator">=</span>types<span class="token punctuation">.</span>ThinkingConfig<span class="token punctuation">(</span>thinking_budget<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>response<span class="token punctuation">.</span>text<span class="token punctuation">)</span>

شکل 6: برنامهریزی وظایف چند مرحلهای برای بستهبندی جعبه ناهار با دستورالعملهای گام به گام
هماهنگی وظایف
از فراخوانی تابع برای هماهنگی وظایف رباتیک پیچیده با APIهای سفارشی استفاده کنید.
مثال: عملیات برداشتن و قرار دادن
<span class="token comment"># تعریف API ربات شبیهسازی شده</span>
<span class="token keyword">def</span> <span class="token function">move</span><span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">,</span> high<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">"""حرکت بازو به مختصات. high=True بازو را بالای صحنه بلند میکند."""</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"حرکت به: x=</span><span class="token interpolation"><span class="token punctuation">{</span>x<span class="token punctuation">}</span></span><span class="token string">, y=</span><span class="token interpolation"><span class="token punctuation">{</span>y<span class="token punctuation">}</span></span><span class="token string">, z=</span><span class="token interpolation"><span class="token punctuation">{</span><span class="token string">'بالا'</span> <span class="token keyword">if</span> high <span class="token keyword">else</span> <span class="token string">'پایین'</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
<span class="token keyword">def</span> <span class="token function">setGripperState</span><span class="token punctuation">(</span>opened<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">"""باز یا بسته کردن گیره."""</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"باز کردن گیره"</span> <span class="token keyword">if</span> opened <span class="token keyword">else</span> <span class="token string">"بستن گیره"</span><span class="token punctuation">)</span>
<span class="token keyword">def</span> <span class="token function">returnToOrigin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">"""بازگشت به حالت اولیه."""</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"بازگشت به مبدا"</span><span class="token punctuation">)</span>
<span class="token comment"># ابتدا، مکان اشیاء را پیدا کنید</span>
locate_prompt <span class="token operator">=</span> <span class="token triple-quoted-string string">"""
Locate and point to the blue block and the orange bowl.
Return JSON: [{"point": [y, x], "label": <label>}, ...].
Points in [y, x] format normalized to 0-1000.
"""</span>
locate_response <span class="token operator">=</span> client<span class="token punctuation">.</span>models<span class="token punctuation">.</span>generate_content<span class="token punctuation">(</span>
model<span class="token operator">=</span>MODEL_ID<span class="token punctuation">,</span>
contents<span class="token operator">=</span><span class="token punctuation">[</span>
types<span class="token punctuation">.</span>Part<span class="token punctuation">.</span>from_bytes<span class="token punctuation">(</span>data<span class="token operator">=</span>scene_image<span class="token punctuation">,</span> mime_type<span class="token operator">=</span><span class="token string">"image/jpeg"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
locate_prompt<span class="token punctuation">,</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
config<span class="token operator">=</span>types<span class="token punctuation">.</span>GenerateContentConfig<span class="token punctuation">(</span>temperature<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
objects <span class="token operator">=</span> json<span class="token punctuation">.</span>loads<span class="token punctuation">(</span>locate_response<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
block <span class="token operator">=</span> <span class="token builtin">next</span><span class="token punctuation">(</span>obj <span class="token keyword">for</span> obj <span class="token keyword">in</span> objects <span class="token keyword">if</span> <span class="token string">"block"</span> <span class="token keyword">in</span> obj<span class="token punctuation">[</span><span class="token string">"label"</span><span class="token punctuation">]</span><span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
bowl <span class="token operator">=</span> <span class="token builtin">next</span><span class="token punctuation">(</span>obj <span class="token keyword">for</span> obj <span class="token keyword">in</span> objects <span class="token keyword">if</span> <span class="token string">"bowl"</span> <span class="token keyword">in</span> obj<span class="token punctuation">[</span><span class="token string">"label"</span><span class="token punctuation">]</span><span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"بلوک در: </span><span class="token interpolation"><span class="token punctuation">{</span>block<span class="token punctuation">[</span><span class="token string">'point'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"کاسه در: </span><span class="token interpolation"><span class="token punctuation">{</span>bowl<span class="token punctuation">[</span><span class="token string">'point'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
<span class="token comment"># حالا عملیات برداشتن و قرار دادن را هماهنگ کنید</span>
robot_origin <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">500</span><span class="token punctuation">,</span> <span class="token number">500</span><span class="token punctuation">]</span> <span class="token comment"># مختصات نرمال شده</span>
block_relative <span class="token operator">=</span> <span class="token punctuation">[</span>
block<span class="token punctuation">[</span><span class="token string">"point"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">-</span> robot_origin<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
block<span class="token punctuation">[</span><span class="token string">"point"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">-</span> robot_origin<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token punctuation">]</span>
bowl_relative <span class="token operator">=</span> <span class="token punctuation">[</span>bowl<span class="token punctuation">[</span><span class="token string">"point"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">-</span> robot_origin<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span> bowl<span class="token punctuation">[</span><span class="token string">"point"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">-</span> robot_origin<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
orchestrate_prompt <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"""
You are a robotic arm with six degrees-of-freedom. You have these functions:
def move(x, y, high):
# Moves arm to coordinates. high=True lifts arm above scene.
def setGripperState(opened):
# Opens gripper if opened=True, closes if False
def returnToOrigin():
# Returns robot to initial state
Origin point is at normalized </span><span class="token interpolation"><span class="token punctuation">{</span>robot_origin<span class="token punctuation">}</span></span><span class="token string">.
Perform pick and place: pick up blue block at </span><span class="token interpolation"><span class="token punctuation">{</span>block<span class="token punctuation">[</span><span class="token string">'point'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">
(relative: </span><span class="token interpolation"><span class="token punctuation">{</span>block_relative<span class="token punctuation">}</span></span><span class="token string">) and place in orange bowl at </span><span class="token interpolation"><span class="token punctuation">{</span>bowl<span class="token punctuation">[</span><span class="token string">'point'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">
(relative: </span><span class="token interpolation"><span class="token punctuation">{</span>bowl_relative<span class="token punctuation">}</span></span><span class="token string">).
Provide sequence of function calls as JSON list:
[{{"function": <name>, "args": [<args>]}}, ...]
Include your reasoning before the JSON.
"""</span></span>
orchestrate_response <span class="token operator">=</span> client<span class="token punctuation">.</span>models<span class="token punctuation">.</span>generate_content<span class="token punctuation">(</span>
model<span class="token operator">=</span>MODEL_ID<span class="token punctuation">,</span>
contents<span class="token operator">=</span><span class="token punctuation">[</span>orchestrate_prompt<span class="token punctuation">]</span><span class="token punctuation">,</span>
config<span class="token operator">=</span>types<span class="token punctuation">.</span>GenerateContentConfig<span class="token punctuation">(</span>temperature<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"برنامه مدل:"</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>orchestrate_response<span class="token punctuation">.</span>text<span class="token punctuation">)</span>
<span class="token comment"># تجزیه و اجرای فراخوانیهای تابع</span>
<span class="token keyword">import</span> re
json_match <span class="token operator">=</span> re<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">r"\[.*\]"</span><span class="token punctuation">,</span> orchestrate_response<span class="token punctuation">.</span>text<span class="token punctuation">,</span> re<span class="token punctuation">.</span>DOTALL<span class="token punctuation">)</span>
<span class="token keyword">if</span> json_match<span class="token punctuation">:</span>
function_calls <span class="token operator">=</span> json<span class="token punctuation">.</span>loads<span class="token punctuation">(</span>json_match<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"\nدر حال اجرا:"</span><span class="token punctuation">)</span>
<span class="token keyword">for</span> call <span class="token keyword">in</span> function_calls<span class="token punctuation">:</span>
func_name <span class="token operator">=</span> call<span class="token punctuation">[</span><span class="token string">"function"</span><span class="token punctuation">]</span>
args <span class="token operator">=</span> call<span class="token punctuation">[</span><span class="token string">"args"</span><span class="token punctuation">]</span>
<span class="token keyword">if</span> func_name <span class="token operator">==</span> <span class="token string">"move"</span><span class="token punctuation">:</span>
move<span class="token punctuation">(</span><span class="token operator">*</span>args<span class="token punctuation">)</span>
<span class="token keyword">elif</span> func_name <span class="token operator">==</span> <span class="token string">"setGripperState"</span><span class="token punctuation">:</span>
setGripperState<span class="token punctuation">(</span><span class="token operator">*</span>args<span class="token punctuation">)</span>
<span class="token keyword">elif</span> func_name <span class="token operator">==</span> <span class="token string">"returnToOrigin"</span><span class="token punctuation">:</span>
returnToOrigin<span class="token punctuation">(</span><span class="token punctuation">)</span>

شکل 7: سناریوی وظیفه برداشتن و قرار دادن با بلوک آبی و کاسه نارنجی
راهنمای کامل استفاده هوش مصنوعی در رباتیک با Gemini Robotics-ER
نتیجه گیری
رباتیک و هوش مصنوعی دو حوزه علمی و فنی هستند که با ترکیب یکدیگر، میتوانند به ایجاد دنیایی هوشمند و خودکار کمک کنند. پیشرفتهای اخیر در مدلهای هوش مصنوعی مانند Gemini Robotics-ER نشان میدهد که تعامل طبیعیتر و انعطافپذیرتر بین انسان و ربات در حال تحقق است.
با وجود چالشهای موجود در زمینه امنیت، اخلاق و اشتغال، فرصتهای بسیاری نیز در این زمینه وجود دارد که میتواند به بهبود کیفیت زندگی، افزایش بهرهوری و پیشرفت علمی منجر شود. آیندهای که در آن رباتها و سیستمهای هوش مصنوعی به طور گسترده در زندگی روزمره ما حضور داشته باشند، دیگر دور از دسترس نیست.
برای موفقیت در این حوزه، باید از بهترین شیوهها استفاده کرد، به چالشهای اخلاقی و ایمنی توجه نمود و به طور مداوم در جهت بهبود و توسعه این فناوریها تلاش کرد. ترکیب هوش مصنوعی و رباتیک نه تنها صنایع را متحول میکند، بلکه شیوه زندگی ما را نیز به طور بنیادین تغییر خواهد داد.


