دوربین مداربسته
دوربین های آنالوگ
سیستم های مداربسته در دو نوع آنالوگ و تحت شبکه می باشند .
- دوربین های آنالوگ :
از دوربین های آنالوگ می توان به عنوان نسل اول CCTV ها نام برد که کابل خروجی تمامی دوربین ها در دستگاه کنترل مرکزی (DVR) جمع می شوند و در آن دستگاه عملیات کنترل، نظارت، ضبط و سایر پردازش ها صورت می گیرد.
- · دوربین ثابت :
با وضوح تصویر بالا ، ضد نویز و سایه ، قابلیت کارکرد در نور بسیار کم، مجهز به منوی روی تصویر، قابلیت علامتگذاری روی تصویر Motion Detection
- · دوربین متحرک :
با قابلیت زوم بالا ، ضد نویز و سایه ، قابلیت دید در نورکم ، وضوح تصویر بالا ، قابلیت دید در شب ، چرخش 360 درجه افقی و 240 درجه عمودی ، مجهز به منو روی تصویر ، قابلیت علامتگذاری روی تصویر ((Motion Detection ، قابلیت اتصال به انواع شبکه، طراحی زیبا.
- · DVR :
ضبط تصاویر به صورت زنده، قابلیت فشرده سازی تصاویر برای کمتر شدن حجم تصاویر، کیفیت بالای تصویر، دارای هارد دیسک داخلی با ظرفیت بالا، مجهز به خشاب های داخلی اضافی هارددیسک، قابلیتBackup گیری از تصاویر ضبط شده به وسیله پورت USB و DVD-RW ، قابلیت اتصال به انواع شبکه، مجهز به Mouse ، قابلیت کنترل دوربین های متحرک (Speed Dome) ، مجهز به منو ، قابلیت اتصال به کامپیوتر از طریق پورت های RS232- RS485-RS422
- · لنز :
ü انواع لنز با قابلیت تنظیم خودکار و دستی فاصله کانونی و همچنین لته با قابلیت زوم دستی
ü لنزهای با قابلیت تنظیم خودکار فاصله کانونی (Varifocal) برای فاصله های مختلف
ü لنزهای با قابلیت زوم دستی از فاصله دور بوسیله کابل کشی .
- · مانیتور صنعتی :
مانیتورهای صنعتی LCD و CRT در اندازه های 21 ، 19، 17 و 14 اینچ ، با کیفیت تصاویر بالا، ورودی و خروجی ویدئو و صوت ، قابلیت کارکرد به مدت طولانی.
- دوربین های تحت شبکه :
دوربین های تحت شبکه را می توان به عنوان یک دوربین و یک کامپیوتر تعریف کرد که در یک سیستم هوشمند جمع شده اند. این دوربین ها تصاویر را بر روی شبکه های کامپیوتری منتقل می کنند تا کاربر بتواند از راه دور تصاویر را مدیریت ، ضبط و پخش نماید. به محض اینکه تصاویر روی شبکه ارسال شد ، کاربر از هر کامپیوتر متصل به LAN و یا اینترنت می تواند به آنها دسترسی داشته باشد.
دوربین های تحت شبکه بهترین و آسانترین راه برای مشاهده ، ثبت و ضبط با بهترین و مطلوبترین کیفیت تصویری بر روی هر نوع از شبکه های کامپیوتریمی باشند.تصاویر با استفاده از هر نوع مرورگر (تحت وب) بدون وابستگی به نوع سیستم عامل ، قابل دیدن و بر روی حافظه های کامپیوتر قابل ثبت و ضبط می باشند.دوربین های تحت شبکه ، کاملاً مستقل از کامپیوتر عمل کرده و در هر جایی قابل نصب هستند.این دوربین ها امکان مشاهده و ضبط تصاویر از هر جایی در دنیا برای کاربر بوجود می آورند.
| مزایا | مشخصات عمومی |
| ª کنترل از راه دور تصاویر زنده دوربین ها در هر زمان ، از هر مکان و از طریق هر کامپیوتر متصل به شبکه
ª بالاترين کیفیت تصاویر دیجیتالی ª دارای تصاویر واضح تر با تیرگی کمتر به دلیل استوار بودن بر اسکن پیشرفته تصاویر ª انعطاف پذیر بودن محل نصب در هر جایی که شبکه در دسترس باشد ª كاربردهاي متنوع و متعدد ª قابليت افزایش تعداد دوربین ها تا هر جایی که شبکه گسترش یابد ª پشتيباني شده از طرف بزرگترین شرکتهای سخت افزاری ª به علت داشتن مزيت Power Over Ethernet نيازي به كابل كشي جداگانه براي برق ندارند كه اين باعث ايجاد اطمينان بيشتر به سيستم مي شود |
ª اتصال مستقیم به شبکه های استاندارد کامپیوتری
ª كاركرد بر اساس شبکه های وب سرور بدون نیاز به هر گونه سخت افزار واسط و یا نرم افزار اضافی ª قابل نصب در هر محیط (مستقل از کامپیوتر) ª سه لایه امنیتی با استفاده از Username و Password جهت محدود کردن دسترسی غیر مجاز ª پشتيباني فرمتهای JPEG ، MPEG2 ، MPEG4 ª نرم افزار کاربردی داخلی قدرتمند ، حافظه داخلی جهت اضافه کردن تنظیمات مدیریتی و به روز رسانی سیستم ª در طول زمان هزينه پهناي كمتري (مثل هزينه جابجايي مركز كنترل و سيم كشي مجدد، هزينه خريد تجهيزات مركز كنترل، انتقال تصاوير و فشرده سازي آنها و …) براي مالك در بر خواهد داشت
|
نرم افزار دوربین های تحت شبکه :
بوسیله نرم افزار در آن واحد هم می توانید تصاویر دوربین ها را ببینید ، هم آنها را با کیفیت بالای دیجیتالی به صورت دائم و یا بر طبق برنامه ای خاص ضبط کنید :
- وجود حالتهای مختلف برای ضبط، از جمله به طور دائمی، بر طبق برنامه ای خاص، یا پس از ایجاد شدن حرکت روی تصویر (Motion Detection) و یا پس از برقراری ارتباط با سیستم های حسگر محیطی .
- تخصیص اتوماتیک IP با استفاده از پروتکل های استاندارد
- انجام تنظیمات لازم
- به روز رسانی سیستم عامل مرکزی دوربین ها
- نمایش و ضعیت ارتباط با دوربین ها
- مدیریت تعداد نامحدودی دوربین
کاربردهای سیستم های حفاظتی- نظارتی
ادارات و ارگان های دولتی :
سیستم های حفاظتی قابل نصب در ادارات و ارگان های دولتی برای حفظ و حراست پیرامونی و فیزیکی ، کنترل ورود و خروج و سایر موارد امنیتی به کار می روند . بدینوسیله با ایجاد محیطی امن از اموال دولتی و ارباب رجوع محافظت می شود.
اماکن صنعتی :
در محیط های صنعتی ، مانند کارخانه ها و امکان دسترسی به خطوط تولید و انبارها را در اختیار مدیران قرار می دهد.
امور بانکی :
به منظور حفاظت از باجه های خودپرداز (ATM) و دیگر نقاط حساس بانکها از خطر دزدی ، موسسات مالی شروع به نصب سیستم حفاظتی در این نقاط نموده اند و برای هر حرکتی تصویر جداگانه ای قابل ذخیره در یک پایگاه داده مرکزی است.
فروشگاه ها :
صندوق فروشگاه همواره در معرض خطر دزدی قرار دارد.سیستم های حفاظتی به طوری که با انتقال تصاویر زنده روی شبکه و ذخیره آنها روی سرور صاحبان فروشگاه و مدیران می توانند روند کار را از راه دور کنترل کنند.
پایانه های مسافربری :
می توان سیستم حفاظتی موجود را در جهت ایجاد امنیت بیشتر برای مسافران راه آهن ، فرودگاه و مترو مورد استفاده قرار داد.بدینوسیله مراکز نظارتی نیز به تصاویر این نقاط دسترسی خواهند داشت.
اماکن آموزشی :
سیستم های حفاظتی قابل استفاده در مدارس ، پارک ها ، کلاس های درس ، سالن های مطالعه و سایر محیط های فرهنگی نیز می باشد و این مکان ها را به محیط های امن و قابل کنترل تبدیل می کند.
تكامل طراحي ديجيتال به كمك كامپيوتر
طراحي مدارات ديجيتال از 25 سال گذشته تا كنون بسيار متحول گشته است، مدارهاي ديجيتال ابتدايي كه به سختي ميتوان نام سختافزار را بر روي آنها گذاشت، با لامپهاي خلا و تعداد اندكي ترانزيستور ساخته ميشدند.
با ظهور تكنولوژي مدار مجتمع، امكان پيادهسازي مدارات ديجيتال بر روي يك تراشه فراهم گرديد. اولين نسل مداراتمجتع يا IC ها، SSI سر نام Small Scale Integration نام دارد كه در اين نسل تراشهها با تعداد بسيار اندكي ترانزيستور و گيتهاي منطقي ساخته ميشدند، پس از آن حجم مجتمع سازي در نسلهاي MSI سر نام Medium Scale Integration و LSI سر نام Large Scale Integration به سرعت گسترش يافت و به طوري كه امكان مجتمع سازي هزاران گيت منطقي، در داخل يك تراشه براي طراحان سختافزار فراهم آمده بود.
در اين مرحله روند طراحي بسيار پيچيده و دشوار گرديده بود و طراحان نياز داشتند تا بخشي از مراحل طراحي را به كامپيوتر بسپارند. به كمك ابزارهاي طراحي ديجتال كامپيوتري يا CAD Toolها طراحان توانستند كامپيوتر را در فرايند طراحي اجزاي خود سهيم سازند.
نمايي از يك طراحي بسيار پيچيده
با پيشرفت نسل VLSI سر نام Very Large Scale Integration امكان طراحي مدارات مجتمع با ميليونها ترانزيستور فراهم گشته است(مانند تصوير بالا). به دليل پيچيدگي بسيار زياد اين مدارات ،طراحي و ارزيابي عملكرد آنها به روشهاي سنتي ديگر ميسر نيست، به همين خاطر ايدهاي جهت توصيف طرح به يك زبان قابل فهم براي كامپيوتر مطرح گرديد تا زمينه حضور كامپيوتر در پروسه طراحي يك مدار VLSI گستردهتر گشته و مسائل طراحي و ارزيابي در پروسه طراحي يك سختافزار جديد، با الگوريتمهاي از پيش تعريف شده، پردازش شوند.
زبان توصيف سختافزار چيست ؟
HDL سر نام Hardware Description Language ، به خانوادهاي از زبانهاي برنامهنويسي گفته ميشود كه جهت مدلسازي عملكرد بخشي از يك سختافزار به كار گرفته ميشوند. توصيف سختافزار به كمك HDLها به دو شكل كلي امكان پذير است:
روش اول: مدلسازي ساختاري سختافزار، كه با تشرح ارتباطات خارجي، اجزاي تشكيل دهنده داخلي و اتصالات ميانها، جهت توصيف ساختار و اجزاي تشكيل دهنده يك سختافزار به كار برده ميشود.
روش دوم: مدلسازي رفتاري سختافزار، جهت توصيف انتزاعي رفتار يك سختافزار بدون در نظر گرفتن جزئيات ساختار آن ميباشد كه بدون لحاظ كردن اجزاي تشكيل دهنده، به توصيف خروجيهاي مدل بر اساس تابعي از وروديهاي آن ميپردازد. مدلسازي رفتاري يك سختافزار در سطوح مختلفي از انتزاع صورت ميپذيرد كه سطوح بالاتر رفتار سختافزار را به صورت چكيدهتر با جزئيات كمتري نسبت به سطوح پايين تر انتزاع، توصيف ميكنند.
طراحي يك سختافزار بر اساس طرح شماتيك مداري كه در گذشته از آن به وفور استفاده ميشد، با اينكه شامل اطلاعات بسيار كاملي در مورد سختافزار و اجزاي تشكيل دهنده آن بود، اما در توصيف طرحهاي بزرگ به خاطر حجم بسيار زياد اجزاي تشكيل دهنده طرح بسيار پيچيده گشته و حجم مستندات آن خارج از كنترل ميگشت. همچنين در روش سنتي طراحي از ايدههاي مطرح شده در طرح هيچ گونه حفاظتي به عمل نميآمد و امكان سواستفاده از آنها توسط اشخاصي كه طرح به آنها فروخته ميشود، وجود داشت.
نمايي از يك سختافزار مدرن، طراحي شده به كمك زبانهاي توصيف سختافزار
در طراحي يك سختافزار با توصيف متني آن به كمك يك زبان برنامهنويسي، هم حجم مستندات طرح كاهش يافته و هم امكان حفاظت ايدههاي طرح به وجود آمده است. علاوه بر اين توصيف متني يك سختافزار به كمك HDLها براي كامپيوتر قابل فهمتر از طرح شماتيكي آن سختافزار با اطلاعات تصويري ميباشد.
مهمترين وجه تمايز يك زبان توصيف سختافزار با يك زبان برنامهنويسي متداول مانند C ، در نحوه اجراي خطكدها ميباشد، در زبانهاي برنامه نويسي متداول مانند C خط كدهاي نوشته شده به ترتيب از بالا به پايين اجرا شده تا در نهايت به اتمام برسند، در حالي كه در زبانهاي توصيف سختافزار اجراي دستورات ماهيت ترتيبي و سريال نداشته و تمام خطكدها به صورت موازي و همزمان اجرا ميشوند، در واقع براي توصيف سختافزاري كه ممكن است از چندين بخش ساخته شده باشد كه خروجي آنها به صورت همزمان تغيير ميكند، زبانهاي برنامهنويسي متداول با ماهيت اجراي ترتيبي خود كاربردي ندارند.
شبيه سازي سختافزار به كمك HDLها
به كمك زبانهاي توصيف سختافزار علاوه بر طراحي ميتوانيم يك سختافزار را شبيه سازي كرده تا قابليتها و عملكرد آن را قبل از پيادهسازي آزمايش كنيم. در دنياي واقعي تست كردن يك سختافزار، خود نيازمند يك سختافزار ديگر است كه مجموعهاي از وروديهاي مجاز را براي سختافزار زير تست توليد كرده و خروجي حاصله را با مقدار مورد انتظار مقايسه كند. در فضاي مجازي كه كامپيوتر در اختيار ما قرار داده است نيز ميتوانيم قبل از پياده سازي و ساختن سختافزار، عملكرد آنرا با طراحي يك سختافزار جانبي جهت تست، سختافزار اصلي را ارزيابي كنيم، به اين ترتيب كه به كمك زبان توصيف سختافزار، برنامهاي نوشته ميشود تا زنجيرهاي از وروديها را به سختافزار مورد آزمايش داده و خروجي آن را با مقادير مورد انتظار طراح مقايسه نمايد، به اين برنامه كه جهت آزمايش عملكرد سختافزار نوشته ميشود، Testbench گفته ميشود.
زبانهاي توصيفسختافزار Verilog و VHDL در ميان ساير HDLها محبوبيت بيشتري پيدا كردهاند كه در ادامه مقاله به بررسي و مقايسهآنها خواهيم پرداخت.
زبان توصيف سختافزار VHDL
زبان VHDL سر نام Very High Speed Integrated Circuit Hardware Description Language از جمله HDLهاي پرطرفداري است كه امروزه در طراحي تراشههاي با كاربرد خاص و تراشه FPGA به كار گرفته ميشود.
اين زبان در ابتدا به سفارش وزارت دفاع آمريكا جهت مستندسازي اطلاعات مدارات ديجيتال و تراشههاي به كار گرفته شده در ادوات نظامي، طراحي شد. اطلاعات بسيار زياد و پيچيده مدارات ديجيتال به كار گرفته شده در ادوات نظامي، مانع از توسعه سريع آنها ميشد و اطلاعات طراحي را فقط براي طراح قابل خواندن و پيگيري ميساخت به طوري كه توسعه همان طرح توسط شخصديگر دشوار بود، به همين خاطر در سال 1980 زباني طراحي شد كه توصيف يك مدار در سطوح مختلف انتزاع در آن ميسر باشد. پس از آن ابزارهايي جهت شبيهسازي مدارات طراحي شده با اين زبان ايجاد شد، سپس ابزارهاي كامپيوتري جهت سنتز كردن كدهاي VHDL عرضه شدند كه به كمك اين ابزار، توصيف سختافزاري يك مدار را ميتوان به راحتي به معادل فيزيكي آن جهت پياده سازي و ساخت مرتبط كرد.
در طراحي زبان توصيف سختافزاري VHDL از مفاهيم زبان برنامهنويسي Ada بهره برده شده به همين خاطر اين زبان در syntax بسيار مشابه Ada ميباشد. اين زبان به گونهاي طراحي شده كه مسائل همزماني و موازيسازي سختافزار را به خوبي پوشش دهد.
در سال 1983 دوشركت بزرگ IBM و Texas Instrument به همراه شركت Intermetrics قراردادي را جهت توسعه اين زبان براي كاربردهاي طراحي مدارات ديجيتال امضا كردند و چهار سال بعد اين زبان به توسط IEEE استاندارد سازي شد پس از آن وزارت دفاع آمريكا شركتهاي تابع خود را مقيد ساخت تا تمامي مدارات ديجيتال خود را به اين زبان توصيف كنند.
جگنده F-22 يكي از اولين پروژههايي بود كه تمامي مدارات و مستندات الكترونيكي آن به زبان VHDL نگاشته شده بود، موفقيت اين پروژه موجب شد تا زبان VHDL بيش از پيش توسعه يافته و مورد استفاده قرار گيرد.
در سال 1993 استاندارد IEEE-1076 ويرايش شد و در آن تمهيداتي جهت پوشش دادن به سيگنالهايي كه در آن واحد چند مقدار به آنها داده ميشود، انديشيده شد. در سال 1996 ابزارهاي شبيه سازي و سنتز مدارات ديجيتال توصيف شده توسط VHDL به صورت تجاري عرضه شدند تا مراحل طراحي تا پيادهسازي كامپيوتري يك سختافزار به كمك VHDL تكميل شود.
در سال 2006 كميته فني VHDL مستقر در كنسرسيوم Accellera كه توسط IEEE جهت به روزرساني استاندارد VHDL ايجاد شده است، نسخه سوم از پيش نويس استاندارد VHDL-2006 را ارائه كرد.
يك نمونه از برنامه VHDL كه به توصيف يك گيت AND ساده بدون ملاحظات زماني پرداخته است در زير آورده شده است :
– import std_logic from the IEEE library
library IEEE;
use IEEE.std_logic_1164.all;
– this is the entity
entity name_of_entity is
port (
IN1 : in std_logic;
IN2 : in std_logic;
OUT1: out std_logic);
end entity name_of_entity;
– here comes the architecture
architecture name_of_architecture of name_of_entity is
– Internal signals and components would be defined here
begin
OUT1 <= IN1 and IN2;
end architecture name_of_architecture;
زبان توصيف سختافزار Verilog
زبان توصيف سختافزاري Verilog سرنام Verifying Logic جهت مدلسازي سيستمهاي الكترونيكي ابداع شده است كه كليه مراحل طراحي، ارزيابي و پياده سازي يك مدار آنالوگ يا ديجيتال يا يك مدار تركيبي را در چند سطح انتزاع پوشش ميدهد.
Syntax اين زبان بسيار مشابه به زبان C ميباشد و در توسعه آن از ويژگيهاي زبان C الگو گرفته شده است. اين زبان در سال 1981 توسط Phil Moorby در شركت Gateway Design Automation ابداع شد و در سال 1985 نرمافزار شبيهساز اين زبان به نام Verilog-XL عرضه شد در سال 1989 اين شركت به همراه حقوق معنوي اين زبان توسط شركت Cadance خريداري و سپس مستندات آنرا براي استفاده عمومي، به صورت رايگان در اختيار مردم قرار گرفت.
در سال 1993 اين زبان توسط IEEE بازنگري و استانداردسازي شد در همين سال بر اساس آمار EE Times حدود 85 درصد از طراحيهاي مدارات مجتمعي كه به كارخانههاي توليدكننده ادوات نيمههادي سفارش داده شدند، به زبان Verilog توصيف شده بودند.
يك نمونه از برنامه Verilog كه به توصيف يك فليپفلاپ پرداخته است در زير آورده شده است :
module toplevel(clock,reset);
input clock;
input reset;
reg flop1;
reg flop2;
always @ (posedge reset or posedge clock)
if (reset)
begin
flop1 <= 0;
flop2 <= 1;
end
else
begin
flop1 <= flop2;
flop2 <= flop1;
end
endmodule
از جمله امكانات زبان Verilog محيط PLI آن سر نام Program Language Interface ميباشد كه به كمك آن ميتوان كنترل برنامه را از زبان Verilog بر عهده تابعي كه به زبان C نوشته شده است قرار داد، اين قابليت موجب شده تا زبان Verilog انعطاف پذير گشته و توسعه برنامه در آن توسط زبان C نيز امكان پذير باشد.
Verilogدر برابر VHDL
توصيف ساختاري يك سختافزار با زبان Verilog هيچ گونه برتري يا كاستي نسبت به توصيف آن با زبان VHDL ندارد و تفاوت ميان اين دو زبان بيشتر در توصيفهاي رفتاري يك سختافزار خود را نشان ميدهند. شكل زير نشاندهنده ميزان مقياس پذيري اين دو زبان در سطوح مختلف انتزاع در توصيف رفتاري ميباشد:
همانطور كه مشاهده ميكنيد، زبان Verilog توانايي مدلسازي سختافزار تا پايينترين سطح انتزاع يعني سطح ترانزيستور و سوييچ را دارا ميباشد در حالي كه زبان VHDL توانايي مدلسازي سختافزار در بالاترين سطوح انتزاع (تا سطح سيستم) را دارد. علارقم اينكه به كمك قابليت PLI زبان Verilog تا حدودي ميتوان به توصيف سيستمي يك سختافزار پرداخت، اما اصولا بهرهگيري از HDL ها جهت توصيف يك سيستم ناكارآمد است و براي اين منظور زبانهاي كارآمد ديگري مانند SystemC و System Verilog طراحي شده كه به كمك آنها ميتوان سختافزار را از بالاترين سطح انتزاع توصيف نمود. لذا قابليتهاي توصيف سيستمي VHDL را به سختي ميتوان در زمره برتريهاي آن نسبت به Verilog قلمداد كرد.
انواع داده در زبان Verilog نسبت به VHDL ساده تر و استفاده از آنها آسانتر ميباشد، ضمن اينكه اين انواع داده در Verilog به مدلسازي ساختاري نزديكتر هستند، در اين زبان برخلاف VHDL انواع داده مشخصي تعريف شده است و كاربر نميتواند انواع داده جديد به آن اضافه كند. به دليل سادگي استفاده از انواع دادهها زبان Verilog نسبت به VHDL ارجحيت دارد.
براي فردي كه پيشزمينهاي در مورد زبانهاي برنامه نويسي ندارد، يادگيري زبان Verilogسادهتر از VHDL است، چرا كه نوشتن كدهاي VHDL كمي پيچيده تر از Verilogميباشد و براي تسلط بر خط كد اين VHDL، زمان بيشتري نياز است، علاوه بر اينكه در زبان VHDL روشهاي متعددي براي مدل كردن يك مدار وجود دارد كه در ساختارهاي بزرگ ميتواند موجب سردرگمي افراد تازه كار شود.
انتخاب يك زبان توصيف سختافزار
براي انتخاب يك زبان جهت توصيف مدار ديجيتال، عوامل متعددي را بايد علاوه بر برتريهاي ذاتي يك زبان خاص مدنظر قرار داد. برخي از اين عوامل عبارتند از:
سليقه شخصي : اصولا چون اكثر مهندسين و طراحان مدارات ديجيتال به زبان C مسلط هستند، زبان Verilog را كه خط كد مشابه C دارند ترجيح ميدهند، ضمن اينكه خوانايي كدهاي اين زبان بهتر از VHDL است.
موجوديت ابزارهاي شبيهسازي و سنتز : در حال حاضر ابزارهاي شبيهساز رايگان متعددي براي زبان Verilog وجود دارند كه از ميانآنها ميتوان به كامپايلر Icarus Verilog اشاره كرد، در حالي كه ابزارهاي شبيهساز متنباز اندكي براي VHDL موجود هستند و اقلب ابزارهاي شبيهسازي اين زبان، به صورت تجاري به فروش ميرسند.
عوامل تجاري و بازاريابي : بر اساس آمارهاي منتشر شده در سال 1998بازار ابزارهاي شبيهسازي زبان Verilog حدود 150 ميليون دلار اعتبار داشت به طوري كه اعتبار اين بازار نسبت به سال 1994 دو برابر شده بود، در سال 2003 نيز شركت Synopses يكي از بزرگترين شركتهاي اين بازار چند صد ميليون دلاري، اعلام كرد كه تيم توسعه و تحقيقات اين شركت تنها بر روي Verilog متمركز شده اند و در ابزارهاي شبيهسازي اين شركت از VHDLپشتيباني نخواهد شد.
زبان توصيف سختافزاري Verilog مورد استقبال صنايع بزرگ قرار گرفته است به طوري كه امروزه اين زبان به عنوان يك زبان پركاربرد در صنعت طراحي و توليد مدارات ديجيتال شناخته شده است. در مقابل زبان VHDL از سوي جامعه آكادميك مورد استقبال قرار گرفته و بيشتر در پروژههاي دانشگاهي از آن بهره گرفته ميشود.
تمركز وبسايت تخصصي سختافزار ايران نيز با توجه به برتريهاي ذكر شده بر روي زبان توصيف سختافزاري Verilog ميباشد. به همين منظور جهت فراگيري اين زبان خودآموز زير را به خوانندگان گرامي اهدا ميكنيم.
خودآموز زبان Verilog نگاشته جناب آقاي دكتر صفري استاديار دانشگاه تهران در گروه مهندسي كامپيوتر-سختافزار:
جهت فراگيري زبان توصيف سختافزاري VHDL نيز مراجع و كتبهاي متعددي وجود دارد كه بر اساس مشورتهاي صورت گرفته Tutorial منتشر شده توسط سايت cic.org.tw به خوانندگان محترم پيشنهاد داده ميشود،نسخهPDF اين خودآموز را ميتوانيد از اين آدرس دانلود كنيد. منابع :
Wayne Wolf, “Modern VLSI Design” 3rd Edition, Prentice-Hall
Samir Palnitkar, “Verilog® HDL: A Guide to Digital Design and Synthesis”, Second Edition, Prentice-Hall
Douglas J.Smith, “HDL Chip Design”, Doone publications
جایگاه CPU در ساختمان کامپیوتر
کامپیوتر کار اصلی خود را در بخشی از دستگاه که توسط ما دیده نمیشود انجام میدهد. این بخش دادههای خام را به اطلاعات تبدیل میکند. این مرکز کنترل که واحد پردازش مرکزی (Central Processing Unit) یا اختصارا CPU نامیده میشود، مجموعهی گسترده و پیچیدهای از مدارهای الکترونیکی است که وظیفهی اجرای دستورهای برنامه های ذخیره شده را به عهده دارد. واحد پردازش مرکزی از دو بخش عمده تشکیل شده است که هر یک از آنها را به اختصار توضیح خواهیم داد.
واحد کنترل (Control Unit): این بخش از مدارهای الکترونیکی تشکیل شده است که به وسیلهی آنها سیستم کامپیوتر را در جهت اجرای دستورات هدایت میکند. مانند یک رهبر ارکستر. توجه به این نکته ضروری است که این واحد خود دستورات را اجرا نمیکند بلکه دیگر اعضای سیستم را وادار به انجام آنها میکند. به این منظور این واحد باید با حافظهی کامپیوتر و واحد محاسبه و منطق ارتباط داشته باشد.
واحد محاسبه و منطق (Arithmetic/ Logic Unit): این واحد مجموعهای از مدارهای الکترونیکی است که همان طور که از نامش بر میآید مسئول اجرای دستورات محاسباتی و منطقی است. دستورات محاسباتی این بخش به چهار عمل اصلی ضرب، تقسیم، جمع و تفریق محدود میشود. دستورات منطقی نیز معمولا شامل مقایسه است. این بخش می تواند اعداد، حروف یا کاراکترهای به خصوص را با هم مقایسه کند.
عملکرد CPU
مجموعهی عملکردهای CPU را میتوان به چهار بخش اصلی تقسیمبندی کرد که تقریبا در همهی ریزپزدازندههای امروزی یکسان است.
فراخوانی (Fetch): مرحلهی فراخوانی شامل دریافت یک دستورالعمل اجرایی از یک برنامهی ذخیره شده است که این دستورالعمل معمولا به صورت یک عدد یا مجموعهی مرتبی از اعداد است. بخشی از CPU به نام شمارندهی برنامه (Program Counter) یا PC، محلی را در قسمتی از حافظه که توسط برنامهی تحت اجرا اشغال شده است مشخص میکند. عددی که در PC ذخیره میشود مرحلهی فعلی فرآیند اجرای برنامه را مشخص میکند. بعد از این که دستور فراخوانی میشود، شمارنده افزایش مییابد. این افزایش متناسب با اندازهی حجمی از حافظهی کامپیوتر است که دستور تحت اجرا آن را اشغال کرده بود. به این ترتیب CPU هنگام اجرای دستور بعدی می داند که از کجای حافظه شروع کند.
رمزگشایی (decode): در این مرحله، واحد کنترل دستور فراخوانی شده را به بخشهایی که برای قسمتهای پردازنده قابل فهم هستند تفکیک میکند. همان طور که ذکر شد، هر دستور به صورت مجموعهی مرتبی از اعداد است. بخشی از این مجموعه اعداد که شناسنده (opcode) نام دارد، بیان میکنند که عمل اصلی مربوط به این دستور چیست. بخش باقیمانده معمولا حاوی دادههای مورد نیاز برای اجرای آن دستور است. مثلا برای دستور جمع دو عدد، opcode دستور جمع را معرفی میکند و باقی دستور نشان میدهد که متغیرهایی که باید با هم جمع شوند چه هستند یا باید از کدام قسمت حافظه برداشته شوند.
اجرا (execute): در این مرحله بخشهای مختلف اجرایی، ورودی و خروجی و حافظهای CPU در ارتباط با یکدیگر قرار میگیرند و سرانجام عملیات نهایی در بخش محاسبه و منطق روی دادهها انجام میگیرد.
بازگشت برای نوشتن مجدد (writeback): در این مرحله، نتایج مرحلهی اجرا به شکل نوعی از حافظه ذخیره میشوند. گاهی ممکن است لازم باشد که این نتیجه در دسترس سریع CPU قرار گیرد تا برای انجام فرآیندهای بعدی CPU از آن استفاده کند. برای این منظور نوعی حافظهی موقت در CPU وجود دارد که ثبّات (register) نام دارد که این گونه اطلاعات روی آن ذخیره میشوند.
نویسندگان :
محسن مهدوی
امید رضا نظری پویا
برنامه ريزي حرکت ربات (Motion Planning)
معرفي
بعضي از مهمترين چالش هايي كه در كنترل ربات مطرح مي شود، در زمينه motion planning قرار مي گيرند. هدف اصلي motion planning كامپايل كردن(تفسير) زبان هاي سطح بالا به يك سري از حركت هاي سطح پايين اوليه (اصلي) است.
اولين كار براي ربات يافتن مسير است چه ربات فقط يك بازوي ربات يا يك ربات متحرك يا رباتي كه آزادانه هنگام برخورد به موانع از يك وضعيت به وضعيت ديگر تغيير مي كند باشد.
با مساله piano mover’s ، motion planning براي اختصاص تعداد زيادي از متغيرها در مساله، اجراي نرم افزار ها در محيط هاي گوناگون ، طراحي هاي مربوط به جراحي ، بررسي اتوماتيك طرح هاي يك كارخانه ، نقشه برداري محيط هاي ناشناخته ، كنترل محيط هاي متغير و طراحي دارو به كار مي رود.نرم افزار هاي جديد ، بررسي هاي جديد را بوجود مي آورند كه بايد در طراحي الگوريتم هاي motion planning در نظر گرفته شوند.
از وقتي كه وقايع در دنياي فيزيكي بر مبناي قانون هاي فيزيكي ، وضعيت هاي نامعلوم و محدوديت هاي هندسي هستند، طراحي و آناليز motion planning مسائل جديدي در زمينه هاي مكانيكي، تئوري كنترل، هندسه محاسباتي و علوم كامپيوتر را به وجود مي آورند. تاثير motion planning فراتر از كاربردهاي آشكارش در نرم افزار است.
اين كتاب درباره تئوري ها و كارهاي عملي robot motion planning با يك ديد نرم افزاري و سيستمي بحث مي كند. براي تمركز بر روي بحث و نكات مهم در motion planning ، ابتدا نگاهي به چند مثال جالب مي اندازيم.
مساله piano mover’s
مساله piano mover’s يک مساله کلاسيک در طراحي مسير است.اين مساله شامل يک سري مانع مي باشد. فرض مي شود که موانع ساکن و کاملا شناخته شده اند و اجراي مسيرهاي طراحي شده دقيق است. به اين حالت طراحي offline مي گويند. زيرا طراحي قبل از اجرا به پايان رسيده است. گونه هاي مختلف اين مساله , مساله sofa mover’s است که در آن يک ربات روي يک سطح بين چندين مانع مسطح حرکت مي کند, مساله ديگر مساله generalized mover’s است که در آن ربات ممکن است شامل قطعات متصل به هم سخت در اتصالات مانند بازوي ربات باشد. مشکل کليدي اين است که مطمئن شويم هيچ نقطه اي روي ربات با مانع برخورد نمي کند بنابرايم ما بايد موقعيت تمام نقاط روي ربات را مشخص کنيم اين حالت يک configuration(پيکره بندي) ربات است و configuration space فضاي همه پيکره بندي هايي است که ربات مي تواند به آنها دست يابد. مجموعه زواياي اتصالات در بازوي ربات با جهتيابي روي فرش روي يک سطح نمونه اي از پيکره بندي ها هستند. فضاي پيکره بندي معمولا اقليدسي نيست به اين معني که شبيه فضاي ،n بعدي اقليدسي نيست. ابعاد يک فضاي پيکره بندي برابر است با تعداد متغير هاي مستقل آن پيکره بندي که با درجه آزادي عمل آن (degree of freedom=DOF) نيز نشان داده مي شود. DOF مساله Piano برابر 6 است: 3 تا براي نشان دادن موقعيت (x-y-z) و 3 تا براي نشان دادن جهتيابي ( roll-pitch-yaw). هدف مساله يافتن يک منحني در فضاي پيکره بندي است که نقاط شروع و پايان را به هم وصل مي کند و مانع همه configuration space obstacles مي شود که با وجود مانع در فضا افزايش مي يابد.
Mini AERcam
مرکز فضايي جانسون ناسا در حال توليد و توسعه Mini AERcam يا دوربين رباتيک خودگردان براي انجام وظايفي از قبيل بازرسي هاي فضايي است. اين وسيله يک ربات مجهز به 12 پشتيبان گاز سرد است که به آن اجازه فراهم کردن انرژي براي حرکت در هر جهتي را مي دهد. وقتي وسيله در حالت خودگردان ( اتوماتيک) قرار مي گيرد بايد توانايي هدايت در محيط هاي پيچيده ي 3بعدي را داشته باشد. به همين دليل اين مساله بسيار شبيه به مساله Piano mover’s است. ما نه تنها نياز به برنامه ريزي مسير حرکت براي ربات بلکه نياز به برنامه ريزي سرعت در طول مسير نيز داريم.اين موضوع trajectory (خط سير) ناميده مي شود و ورودي هاي پشتيبان به وسيله ي Dynamic ( حرکت) ربات تعيين مي
|
شوند. در مساله Piano mover’s نگراني ها فقط در مورد مسائل هندسه يا جنبش شناسي (Kinematic) بود.
Personal Transport Vehicle ( وسيله حمل و نقل شخصي(
يک وسيله حمل و نقل شخصي است که ممکن است به اصلي ترين وسيله براي حمل و نقل در محيط هاي شهري تبديل شود. جايي که اندازه , سرعت , آلودگي صوتي و آلودگي هوايي اتومبيل ها بسيار ناخوشايند است. يکي از اين وسيله ها CYCAB مي باشد. که يک وسيله حمل و نقل کوچک است که توسط کنسرسيوم موسسه ها در فرانسه براي حمل و نقل حداکثر 2 نفر و سرعت 30 کيلومتر در ساعت طراحي شده است.يکي ديگر از اين وسيله ها Segway HT است که براي حمل يک شخص در سرعت 20 کيلومتر در ساعت طراحي شده است.
|
يکي از مسائلي که درباره ساده سازي کنترل وسايل نقليه در محيط هاي شلوغ مورد مطالعه قرار گرفته Automatic parallel parking است. راننده فرآيند parallel parking را انجام مي دهد و کامپيوتر روي دستگاه را مي توان از اين طريق کنترل کرد. سيستم هاي مشابهي به زودي به طور اقتصادي در اتومبيل ها به کار خواهد رفت. در ظاهر اين مساله شبيه مساله Sofa mover’s است چون هر دو مساله شامل حرکت يک جسم روي يک سطح بين موانع است. تفاوت اين است که ماشين ها و وسايل نقليه بر خلاف Sofa (نيمکت) نمي توانند به طور لحظه اي از پهلو حرکت کنند.
(راهنماي موزه ها) Museum tour guides
|
در سال 1997 يک ربات متحرک به نام Rhino به طور کاملا خودکار به عنوان يک راهنما در deutsches museum bonn کار مي کرد. Rhino قابليت راهنمايي و هدايت بينندگان موزه را از يک غرفه به غرفه بعد با استفاده ار محاسبه مسير و با استفاده از نقشه ذخيره شده موزه فراهم مي نمود. چون يک مدل اجرايي دقيق در مساله piano movers با توجه به اين ويژگي ها غير واقعي است. Rhino مجبور بود مکان خود را با مقايسه
داده هاي دريافتي از حسگرها و نقشه ذخيره شده خود پيدا کند.
Planetary exploration(اکتشافات سياره اي)
|
يکي از موفق ترين و هيجان انگيز ترين دستاوردها در زمينه رباتيک, ربات متحرکي به نام sojourner بود که در 4 july 1997 در مريخ فرود آمد.sojouner مانند پسر عموهاي موفق خود spiri و opportunity بود که اين سيالات در ژانويه 2004 در مريخ فرود آمدند و تحول عظيمي را در علم داده ها به وجود آورده اند. در آينده ربات ها قادر خواهند بود مناطق وسيعي را زير پا گذاشته و بررسي کنند. از اين رو نياز به استقلال بيشتر خواهد داشت. علاوه بر قابليت جهت يابي بعضي ربات ها قادر خواهند بود که نقشه محيط را با استفاده از اطلاعاتي که از حسگرهاي خود به دست مي آورند توليد کنند.
بدون نقشه ربات نمي تواند موقعيت خود را تعيين کند و بدون اطلاع از موقعيت خود نمي تواند نقشه را تجزيه و تحليل کند.اين مساله اغلب با عنوان simultanecus localization & mappily يا به طور خلاصه SLAM شناخته مي شود.
خنثي سازي مين
مناطق مين گذاري شده توسعه هاي اقتصادي را کاهش داده و صدمه و مرگ را هر ساله به دنبال دارد. در سال 1994 , 25 ميليون مين در سرتاسر جهان کاشته شد در حالي که فقط 100000 تا از آنها خنثي شده اند.
ربات ها نقش کليدي در خنثي سازي سريع و امن محيط دارند. قدم اول و اصلي يافتن مين است. در بحث خنثي سازي, ربات بايد با استفاده از حسگر هاي تشخيص مين همه نقاطي را که احتمال وجود مين در آن هست را بررسي کند. براي تحقق اين عمل ربات بايد داراي يک سري مسير دقيق براي عبور از مناطق خطرناک باشد. ربات نيازمند يک مسير ياب پوشش دهنده همه جا باشد تا بتواند حرکتي را که براي جستجوي همه نقاط لازم است انجام دهد. اگر مسيرياب , يافتن مسيري که بتواند همه نقاط را پوشش دهد , وقتي که يک مسير وجود دارد را تضمين کند, مي گوييم اين مسير ياب(نقشه کش) complete (کامل) است.
عمل پوشش , کاربردهاي ديگري از قبيل پاک کردن کف اتاق , چمن زني و برداشت محصول را دارد. در همه اين کاربردها ربات بايد همزمان مکان خود را تعيين کند تا پوشش کامل منطقه اطمينان حاصل فرمايد.
Fixed base robot arms in industry (بازوهاي ثابت ربات در صنعت)
|
در محيط هاي سازمان يافته بازوهاي ثابت وظايف گوناگوني از قبل سر هم کردن , جوشکاري و نقاشي(رنگ کردن) را انجام مي دهند.اين مساله چالش هاي تازه اي را به وجود مي آورد زيرا هميشه سطح ما يک سطح صاف نيست و ربات بايد احتمالأ درجه آزادي عمل خود براي حرکت بازو هايش را هماهنگ کند تا بتواند بازوهاي خود را روي همه سطح حرکت دهد.
تأسيسات رباتيک صنعتي مشخصا توسط کارخانجات به کار مي روند بنابراين کمينه کردن زمان انجام يک کار از اهميت بالايي برخوردار است. نوع ديگر کارها ممکن است از نوع ديگري از کمينه سازي مانند کمينه سازي در مصرف سوخت و انرژي در ربات هاي سيار سود ببرند.
ربات هايي به شکل مار براي جستجوهاي شهري و عمليات نجات
وقتي ربات داراي آزادي عمل بيشتر در حرکات , بيش از نياز خود براي انجام يک کار باشد آن وقت ربات را redundant مي نامند. وقتي ربات داراي آزادي عمل خيلي بالا در انجام حرکات خود باشد آن وقت به آن hyper redundant مي گويند.اين گونه ربات ها داراي فضاي پيکره بندي چند بعدي غير اقليدسي هستند. مکانيزم هاي hyper redundant شبيه خرطوم فيل يا مار هستند و مي توانند از آزادي عمل خود براي حرکت در مکانهاي تنگ براي دستيابي به مکانهايي که براي انسان و ماشين هاي موجود غير قابل دسترس اند استفاده کنند. اين ربات ها مي توانند براي جستجوهاي شهري و عمليات نجات مناسب باشند. اين ربات ها مي توانند در جاهايي که پيدا کردن محل صدمه ديدگان در زير آوار با سرعت هر چه بيشتر و امنيت بالا از اهميت ويژه اي برخوردار است, به کار روند.
|
کاراکترهاي ديجيتال
الگوريتم هاي مربوط به برنامه ريزي حرکت يا تفسير حسگرها فقط براي ربات ها نيستند. در صنعت سرگرمي برنامه ريزي حرکتي کاربردهاي گوناگوني در توليد حرکت براي کاراکترهاي ديجيتال دارد و راه ها را براي بازي هاي ويديويي انيميشن و محيط هاي ديجيتال بازتر مي کند.
طراحي دارو
مساله مهم در طراحي دارو و مطاله بيماري ها , اين است که چگونه مي توان پروتيين ها را به پيکره بندي اوليه يا پايدار خود برد. با در نظر گرفتن اين موضوع که پروتيين مثل يک زنجير مصنوعي هستند. در طراحي داروهاي داروخانه اي پروتيين ها با مولکول هاي کوچکي ترکيب مي شوند تا مجموعه اي را بوجود آورند که براي جلوگيري و درمان بيماري ها بسيار حياتي است. روش هاي motion planning براي آناليز حرکت پيچشي مولکول ها مورد استفاده قرار مي گيرد و امکان آزمايش خودکار دارو را قبل از ترکيب آن در ازمايشگاه فراهم مي کنند.
مرور کلي مسائل مربوط به motion planning
مثال هاي قبلي راه هاي مشخص کردن مسايل motion planning و الگوريتم آدرس دهي آن را نشان مي داد. بعضي مفاهيم را در اينجا شرح مي دهيم.
اهداف و کارها
مهمترين مشخصه يک برنامه ريزي حرکت ربات نحوه حل مسايل است. 4عمل مسير يابي , پوشش , تمرکز در محلي خاص و نقشه کشي را توضيح مي دهيم. مسير يابي مساله يافتن يک حرکت بدون برخورد براي سيستم ربات از يک وضعيت به وضعيت ديگر است. ربات مي تواند يک بازوي ربات باشد يا حتي يک موبايل يا هر چيز ديگري.
پوشش , مساله فرستادن يک سنسور يا ابزار به سراسر همه نقاط در فضا است. تمرکز در محلي خاص مساله استفاده از يک نقشه جهت تفسير حسگر هاي داده براي تعيين وضعيت ربات است. نقشه کشي مساله کشف و تشخيص يک محيط ناشناخته براي ساختن يک مدل که براي مسيريابي پوشش و تمرکز در محل خاص نيز مفيد است.
تمرکز در محلي خاص و نقشه کشي مي توانند با هم ترکيب شوند مثلSLAM .
ويژگي هاي ربات
شکل يک طراح حرکت مؤثر , بستگي زيادي به چگونگي انجام کار توسط ربات دارد. براي مثال ربات و محيط آن به درجه آزادي کار سيستم و وضعيت فضا بستگي دارد. وقتي وضعيت فضاي ربات را درک کنيم مي توانيم حرکت سريع و آزادانه ربات در همه جهات را در وضعيت فضاي خودش (در حالت نبود موانع) پيش بيني کنيم.
در نتيجه ربات را به عنوان يک گيرنده يا فرستنده امواج در جهات مناسب فرض مي کنيم.
در آخر رباتي که مدل مي شود از معادلات حرکت همراه با شتاب استفاده مي کند يا از معادلات پويا که البته با کنترل استفاده مي کند .
ويژگي هاي الگوريتم
بعد از اينکه هدف و سيستم ربات تعريف شد , ما مي توانيم بين الگوريتم هايي که مساله را حل مي کنند يکي را انتخاب کنيم. براي مثال آيا طراح مي تواند حرکتي را پيدا کند که در مواردي از قبيل طول , زمان اجرا و انرژي بهينه باشد؟ يا آيا يافتن يک راه حل که محدوديت ها را ارضا کند آسان است؟ علاوه بر کيفيت خروجي يک طراح , ما مي توانيم سوالاتي درباره پيچيدگي محاسبات يک طرح نيز مطرح کنيم.
اندازه ورودي مي تواند درجه آزادي سيستم ربات , ميزان حافظه مورد نياز براي توصيف ربات , موانع در محيط و …. باشد و پيچيدگي آن مي تواند در بهترين حالت يا حالت ميانگين تعريف شود. وقتي يک الگوريتم در زمان چند جمله اي براي مساله اي پيدا شود که قبلا فقط در زمان هاي نمايي حل مي شد نکات تازه و کليدي را درباره مساله به دست مي آورد.
وقتي برنامه ريزي و نقشه کشي complete(کامل) باشد به اين معني است که حتما راه حلي براي مساله motion planning پيدا مي کند.براي مساله motion planning وقتي درجه آزادي عمل افزايش مي يابد راه کامل ممکن است خود سرانه باشد. بنابراين ما مي توانيم شکل هاي ضعيف تري از کامل بودن را جستجو کنيم. يکي از اين شکل ها resolution completances است. اين بدان معني است که اگر راه حلي در يک تحليل وجود داشته باشد طراحان آن را خواهند يافت. يکي ديگر از شکل هاي ضعيف کامل بودن probabilistic completeness است. اين بدان معنا است که احتمال يافتن يک راه حل (در صورتي که وجود داشته باشد) در بينهايت همگرا به 1 است.
کامل بودن و پيچيدگي محاسبات به طور طبيعي توسط يکديگر سبک و سنگين و مقايسه مي شوند. اگر ما خواستار motion plan بهينه يا کامل , از طراحان هستيم بايد از افزايش پيچيدگي محاسبات راضي باشيم.
ما مي گوييم يک طراح offline است اگر يک طرح را از قبل بر مبناي يک مدل شناخته شده در محيط طراحي کند و سپس اين طرح را به اجرا کننده بدهد. گوييم يک طراح online است اگر يک طرح را طراحي کند وقتي که ربات در حال اجرا است. تفاوت بين الگوريتم هاي offline و الگوريتم هاي بر مبناي سنسور online مي تواند قدري تيره باشد براي مثال اگر طراح offline بتواند به قدر کافي سريع اجرا شود مي تواند براي طراحي مداوم وقتي داده هاي جديد حسگر, مدل محيط را بروز کند استفاده شود.
فرق اساسي در زمان محاسبه است و اغلب الگوريتم ها با اين معيار طراحي مي شوند. در اين کتاب ما درباره کنترل کننده هاي بازخوردي سطح پايين که نياز به پياده سازي واقعي motion planningدارند بحث نخواهيم کرد اما فرض خواهيم کرد که آنها وجود دارند و در دسترسند.
مرور کلي اين کتاب
قسمت دوم به دسته اي از الگوريتم هاي Bug به صورت شهودي و ساده مي پردازد. كه به حداقل زمينه رياضي براي پياده سازي و آناليز احتياج دارد. هدف اين است كه ربات متحرك نقطه اي ، را به يك مكان مشخص در يك صفحه هدايت كنيم كه اين صفحه با موانع ايستاي نامشخص پر شده است. الگوريتم هاي Bug بر مبناي حسگر ها هستند. ربات ها از حسگر ارتباطي براي تشخيص زماني كه به مانع مي رسد استفاده مي كند. علاوه بر آن از حسگرهاي ديگري براي شناخت ناحيه دقيق خود در يك صفحه استفاده مي كند. ربات 2 تا حركت اوليه دارد: حركت در يك خط راست و يا حركت در حاشيه يك جسم.
اين الگوريتم هاي ساده تضمين مي كند كه ربات به هدف خواهد رسيد اگر آن هدف قابل دستيابي باشد.
براي اينكه فراتر از ربات هاي نقطه اي بحث كنيم ، در فصل 3 فضاي پيكره بندي سيستم هاي بسيار معمول ربات را كه شامل بدنه هاي سخت و بازوهاي ربات هستند ، شرح مي دهيم.
پايه هاي رياضي در اين فصل به ما اجازه مي دهد تا مسائل عمومي مسير يابي از قبيل يافتن يک مسيردر فضاي پيکره بندي را مرور کنيم و ببنيم. ما مواردي از قبيل بعد(درجه آزادي عمل) توپولوژي و پارامترهاي فضاي پيکره بندي غير اقليدسي را مطالعه مي کنيم.
فصل4 يک سري از الگوريتم ها را که بر مبنايartificial potential function ( توابع بالقوه مصنوعي) هستند توصيف مي کند. براي اين منظور ما يک منطقه بالقوه مصنوعي در فضاي پيکره بندي به وجود مي آوريم تا موانع را در آن دفع کنند و هدف را در آن , براي ربات , جذاب نشان دهيم. سپس ربات به سادگي شيب مربوط به پتانسيل مصنوعي را دنبال مي کند. براي برخي مسايل هدايت و راه يابي , اين امکان وجود دارد که يک محيط بالقوه طراحي کنيم تا مطمئن شويم که حرکت روي شيبها , ربات را هميشه به مقصد و هدف مي رساند.
اگر محاسبه برخي محيط هاي بالقوه سخت يا غير ممکن باشد مي توانيم به جاي آن از مواردي که محاسبه آن آسان تر است استفاده کنيم اما ممکن است اين مورد يک ويژگي نامطلوب داشته باشد مکان هايي که ربات در آن ها گير مي کند (به دام مي افتد).در اين مورد ما مي توانيم به سادگي از منطقه بالقوه به منظور هدايت و راهنمايي طراحي هايي که بر مبناي جستجو کار مي کنند استفاده کنيم.
شيوه رياضي
هدف ما ارائه عناويني است که به خواننده کمک کند تا مفاهيم رياضي را عميقا درک کند. ما اغلب از سختي هاي رياضي جلوگيري مي کنيم و مطالب سخت رياضي را مطرح نمي کنيم اما در جايي که مساله به طور شهودي قابل فهم باشد. در بيشتر مسايل , اثبات تئوري در نظر گرفته نشده است براي بيشتر قسمت ها مفاهيم رياضي به همان اندازه که لازمند ارائه شده اند. در همه اين کتاب فرض شده که ربات ها در محيط هاي دو وجهييا سه بعدي عمل مي کنند. بعضي اوقات محيط کاري را با W ذنشان مي دهيم. اين محيط کاري اغلب شامل موانعي است که با که i نشان دهنده iمين مانع است نشان مي دهيم.
Motion planning معمولا در محيط کاري اتفاق نمي افتد بلکه در در فضاي پيکره بندي Q (که فضاي C نيز ناميده ميشود) اتفاق مي افتد ما از R(q) براي نشان دادن نقاطي از فضاي محدود اشغال شده توسط ربات در پيکره بندي q استفاده مي کنيم.
در اين کتاب مابين path planning و motion planning تفاوت قائل هستيم. يکpath يک منحني پيوسته در فضاي پيکره بندي است.
فصل 2
در اين فصل راجع به الگوريتم هايي صحبت مي شود که ربات هنگام حرکت کردن و برخورد به موانع از آنها استفاده مي کند تا راهي به سمت هدف پيدا کند.
Bug1 و Bug2 از اولين و ساده ترين الگوريتم هايي هستند که بر پايه سنسور مي باشند. يعني در اين الگوريتم ها ربات به عنوان يک نقطه در نظر گرفته مي شود که در يک صفحه عمل مي کند و داراي يک سنسور تماسي ( سنسوري با برد صفر ) است تا موانع را تشخيص دهد. وقتي ربات يک سنسور با برد غير صفر دارد, مي توان از الگوريتم tangent bug براي پيدا کردن کوتاه ترين مسير به هدف استفاده مي کند. الگوريتم هاي bug يا شبيه به bug خيلي ساده پياده سازي مي شوند. علاوه بر اين مي توانيم با يک آناليز ساده نشان دهيم که اين الگوريتم ها موفق عمل مي کنند.
اين الگوريتم ها از دو رفتار تبعيت مي کنند: حرکت روي خط مستقيم و دنبال کردن موانع.
الگوريتم Bug1
در اين الگوريتم ربات به سمت هدف حرکت مي کند مگر اينکه به يک مانع برخورد کند. در اين حالت مانع را دور مي زند تا زماني که رسيدن به هدف دوباره جايز باشد. در واقع الگوريتم Bug1 ايده حرکت به سوي هدف و دور زدن را فرمول بندي مي کند.
در اين الگوريتم فرض مي شود که ربات به صورت نقطه اي در محيط با موقعيت کامل (بدون خطا) است و مي تواند با استفاده از سنسور مرز موانع را در صورت تماس با آنها کشف کند. همچنين ربات مي تواند فاصله بين هر دو نقطه x و y را محاسبه کند و فرض بر اين است که فضاي حرکت محدود است.
يک نقطه شروع و يک نقطه هدف داريم. ربات حرکت خود را از نقطه شروع آغاز مي کند و بطور مستقيم به سمت هدف حرکت مي کند. يا به مقصد مي رسد يا به مانع برخورد مي کند. اگر به مانع برخورد کرد (که به اين نقطه hit point يا نقطه برخورد مي گويند) , کل محيط مانع را طي مي کند تا به نقطه برخورد برسد. در واقع مانع را دور مي زند. در اين مسير نقطه اي را که کوتاهترين فاصله تا هدف را دارد, پيدا مي کند. به اين نقطه leave point (نقطه ترک) مي گويند. از نقطه برخورد يک بار ديگر دور مي زند تا به اين نقطه برسد و از اين نقطه دوباره خرکت مستقيم خود را به سمت هدف آغاز مي کند. ربات همين کار را تکرار مي کند تا به مقصد برسد يا اينکه تشخيص دهد رسيدن به مقصد غير ممکن است. اگر خطي که هدف و leave point را بهم وصل مي کند, مانع را تقسيم کند هيچ راهي به سمت هدف وجود ندارد.
|
الگوريتم Bug2
الگوريتم bug2 نيز مانند bug1 دو رفتار دارد: حرکت روي خط مستقيم و دنبال کردن موانع.
در اين الگوريتم نقطه شروع و هدف با خطي بهم متصلند و ربات روي اين خط حرکت مي کند. اگر به مانعي برخورد کرد, روي مرز مانع حرکت مي کند تا به نقطه اي برسد که روي خطي که نقاط شروع وهدف را بهم وصل کرده است قرار دارد و به هدف نزديک تر است. سپس حرکت خود را به سمت هدف ادامه مي دهد.
در اينجا ديگر ربات همه مانع را دور نمي زند.
در اين الگوريتم اگر ربات بعد از حرکت روي مرزمانع به نقطه برخورد رسيد, يعني راهي به سوي هدف وجود ندارد.
|
در نگاه اول به نظر مي رسد که الگوريتم bug2 از bug1 کارآمدتر است چون مسير کوتاه تري را طي مي کند ولي هميشه اينگونه نيست. با يک سري محاسبات رياضي, براي بدست آوردن مسيري که در هر يک از اين الگوريتم ربات طي مي کند, مي توان نشان داد که در برخي موارد مسافتي که براي رسيدن به هدف طي مي شود در bug2 بيشتر از bug1 است.
Bug1 يک جستجوي کامل را براي يافتن کوتاه ترين مسير انجام مي دهد ولي bug2 از يک جستجوي فرصت طلبانه يا در واقع از الگوريتم هاي حريصانه استفاده مي کند.
|
شکل 2.3 نشان مي دهد که در برخي موارد الگوريتم bug1 از الگوريتم bug2 بهتر عمل مي کند.
فصل 3 (فقط برای مطالعه)
فضاي وضعيت (Configuration Space)
يکي از مهمترين موارد مورد نياز در برنامه ريزي حرکت, تعيين موقعيت تمام نقاط عامل است, چرا که بايد مشخص گردد که آيا عامل با موانع برخورد دارد يا نه. اين موضوع باعث طرح سوالاتي مي گردد: به چه مقدار اطلاعات به منظور مشخص کردن کامل موقعيت تمام نقاط عامل نياز است؟ اين اطلاعات چگونه بايد نشان داده شود؟هنگام پيدا کردن مسيري براي عامل, موانع به چه صورت بابيد در نظر گرفته شوند؟ و… هدف ما در اين قسمت پاسخ دادن به چنين سوالاتي مي باشد.
مشخص کردن وضعيت يک عامل(Specifying a Robot`s Configuration)
محيط محصوري که عامل در آن حرکت مي کند را فضاي کار مي ناميم. براي مثال يک بازوي مکانيکي فضاي کار موقعيت تمام نقاطي در محيط بسته است که اثرکننده (End Effector) به آن دسترسي دارد.
وضعيت يک عامل توصيفي است از موقعيت تک تک آن عامل. فضاي وضعيت (C-Space) يک عامل نيز فضاي تمام وضعيت هاي ممکن آن عامل است. بنابراين يک وضعيت از يک عامل در فضاي وضعيت تنها يک نقطه در آن فضا است. در اين پايان نامه از q براي نشان دادن وضعيت و از Q براي نشان دادن فضاي وضعيت استفاده مي شود. بعد فضاي وضعيت برابر است با بعد درجه آزادي عامل که در بخش هاي بعدي بيشتر به اين موضوع خواهيم پرداخت.
اگر يک ربات دايره اي در فضاي2 R بدون چرخش (rotate) را نسبت به يک محور مختصات مرجع در نظر بگيريد, يک راه ساده براي مشخص کردن وضعيت ربات در نظر گرفتن مرکز آن است. اگر مرکز ربات (x,y) و شعاع دايره (r) را داشته باشيم, مي توانيم به راحتي از فرمول زير موقعيت تمام نقاط اشغال شده توسط ربات در محيط را بيابيم:
R(x,y)={(x‘,y‘)|(x-x‘)2+(y-y‘)2≤r2}
و به اين ترتيب تنها با دانستن مختصات مرکز ربات مي توان وضعيت آن را به طور کامل مشخص نمود.
فضاي کار و فضاي وضعيت دو مفهوم کاملا متفاوت هستند. براي واضح تر شدن اين دو مفهوم مثال زير را در نظر بگيريد :
يک بازوي مکانيکي دو مفصله همانند شکل 3.1 در نظر بگيريد.
|
فضاي کار اين ربات تمامي نقاطي است که توسط اثرکننده قابل دسترسي است. اين فضا در شکل 3.2 مشاهده مي شود. از آنجايي که هر نقطه در فضاي کار به دو صورت قابل دسترسي است (در حالت اول اثرکننده رو به پايين و در حالت دوم رو به بالا) بنابراين مختصات اثرکننده نشان دهنده وضعيت (Configuration) ربات نيست, چرا که از روي اين مختصات نمي توان به وضعيت کليه نقاط ربات پي برد.
اما براي تعريف فضاي وضعيت از زواياي مفصلي که در شکل 3.1 مشاهده مي شود مي توان استفاده کرد. هر زاويه را مي توان به نقطه اي بر روي دايره واحد مرتبط نمود.
وضعيت فضاي پيکربندي
اکنون که ما چگونگي تصميم گيري در باره ي اندازه گيري فضاي پيکر بندي را فهميديم, ما مي توانيم هندسه و وضعيت آن را که هر کدام نقش هاي اساسي در تحليل و توليد الگوريتم هاي طراحي حرکت بازي مي کنند, کشف کنيم.
شکل 10.3 سطح ليوان قهوه و جسم هلالي به لحاظ وضعيتي معادل هستند.
توپولوژي يکي از شاخه هاي رياضي است که ويژگي هاي اجسامي را بررسي مي کند که وقتي آن اجسام در معرض تغييرشکلهاي متصل از قبيل کشش و يا خميدگي قرار مي گيرند, تغيير نمي کنند. به همين خاطر گاهي اوقات توپولوژي به عنوان “هندسه ي صفحه ي لاستيکي” خوانده مي شود. وقتي صفحه در جهات مختلف کشيده مي شود, شکل چند ضلعي تغيير مي کند, در حالي که ويژگي هاي واقعي چند ضلعي تغيير نمي کنند. به عنوان مثال نقاطي که درون چندضلعي قرار دارند, به خاطر اينکه صفحه کشيده مي شود, به بيرون چند ضلعي حرکت نمي کنند. دو فضا از نظر توپولوژي با هم متفاوتند اگر براي تبديل يکي به ديگري نياز به copy و paste باشد. چون copy و paste تغيير شکل هاي متصلي نيستند. يکي از دلايلي که ما به توپولوژي فضاي پيکربندي توجه مي کنيم اين است که اين موضوع مي توانيد بر روي نمايش ما از فضا تاثير بگذارد. دليل ديگر اين است که اگر ما بتوانيم يک الگوريتم برنامه ريزي بر مبناي مسير را براي يکي از فضاهاي توپولوژيک استنتاج کنيم, سپس آن الگوريتم ممکن است که به فضاهايي که از نظر توپولوژيکي معادل هستند, انتقال يابد.
يک نگاشت قاعده اي است که اجزا S را با اجزا مشابه در T جايگذاري مي کند. ما به ترتيب image مربوط به S را تحت و preimage مربوط به T را با استفاده از تعيين مي کنيم.
شکل 11.3
اگر , آنگاه ما مي گوييم surjective و يا onto مي باشد. اگر هر جز مربوط به T را با جزء مشابه آن در S به ازاي هر که شامل جزء بشتري در S است قرار دهد, آنگاه مي گوييم , injective است. اگر , injective باشد آنگاه هنگامي که باشد براي خواهيم داشت : . نقشه هايي که هم surjective و هم injective باشند به آنها مي گوييم bijective هستند. شکل 11.3 اين تعاريف را نشان مي دهد.يک نگاشت , smooth خوانده مي شود اگر همه ي ماخوذات جزئي خوش تعريف باشند.
اتصالات قابل تغيير
براي همه ي فضاهاي پيکربندي که تابه حال ديده ايم توانسته ايم به طور خاص يک پيکربندي با n پارامتر مشخص کنيم که n اندازه ي فضاي پيکربندي را تعيين مي کند. دليل اين که توانستيم اين کار را انجام دهيم اين بود که اين فضاهاي پيکربندي همگي فضاهاي n-بعدي اقليدسي بودند. اين فضاها که manifold يا اتصالات نام دارند, يک موضوع مرکزي توپولوژي محسوب مي شوند.
مقاله ای جامع در باب رباتیک (6)
امواج Ultrasonic
امواج اولتراسونيك به دستهايي از امواج مكانيكي گفته ميشود كه فركانس نوسانشان بيش از محدوده شنوايي انسان 20KHz باشد. اين امواج بدليل خواصي كه دارند كاربردهاي متنوع و بعضاً جالبي دارند. با محاسبهايي ساده ميتوان دريافت كه اگر نقطهايي با فركانس 25 كيلوهرتز و دامنه 10 ميكرومتر نوسان كند شتاب آن بالغ بر 25 هزار برابر شتاب ثقل ميشود. اين شتاب و به طبع آن سرعت بالا در مايعات باعث ايجاد كاويتاسيون ميشود و در هنگام انفجار حبابهاي ايجاد شده فشاري در حدود 200 بار ايجاد ميگردد. از طرف ديگر اگر حركت نسبي با مشخصات فوق ميان دو سطح جامد برقرار شود ازدياد دما باعث جوش خوردن دو سطح به يكديگر ميشود كه Ultrasonic Welding ميباشد.
امواج اولتراسونيك مانند ديگر امواج دارای خاصیت شکست، انعکاس، نفوذ و پراش میباشند. برای توليد اين امواج روشهاي متفاوتي وجود دارد.
مجموعههاي اولتراسونيك معمولاً از سه بخش كلي تشكيل ميشوند:
1. مبدل
2. بوستر
3. تقويت كننده يا هورن.
مبدل نقش توليد امواج مكانيكي و تبديل انرژي الكتريكي به مكانيكي را دارد, بوستر و تقويت كننده نيز وظيفه انتقال و تقويت دامنه حركت و رساندن آن به مصرف كننده را به عهده دارند.
کاربرد سنسورهای Ultrasonic در رباتیک
يكي از مسائل مطرح در رباتيك ايجاد درك نسبت به محيط خارجي براي جلوگيري از برخورد نامطلوب به اشياء موجود در محيط حركت است. از سوي ديگر ممكن است نياز داشته باشيم كه ربات بتواند دركي از فاصله ها بدون تماس فيزيكي داشته باشد. براي اين منظور از سنسورهاي مافوق صوت يا Ultrasonic استفاده ميكنند.
با وجود اينكه رويكردهاي زيادي در اين زمينه وجود دارد ولي ميتوان آنها را در دو بخش تقسيم بندي كرد. دسته اول شامل ابزارهاي انفعالي ميباشند ،نظير سيستمهاي فاصله سنجي swept-focus و يا stereoscopic . دسته بعد سيستم هاي فعال يا Active ميباشند نظير سيستمهاي ماكروويو ، ليزر و مافوق صوت.
در اين مقال ما به معرفي سنسورهاي مافوق صوت خواهيم پرداخت. اين سنسورها از دو قسمت تشكيل شده است. قسمت اول مدار راه انداز آن را تشكيل ميدهد و قسمت ديگر دو قطعه (مبدل( گيرنده و فرستنده آن ، دقيقا مشابه آن قسمت از دزدگيرهايي كه در خودروها (مقابل شيشه جلو) نصب ميشود. البته دردسر اصلي كار با اينگونه سنسورها مدار راه انداز آن است.البته پكيجهاي آماده كه كار را بسيار ساده ميكنند نيز وجود دارد، مانند مدل مافوق صوت ساخت شركت Texas Instruments كه اين سنسورها در برخي دوربينها نيز براي تشخيص فاصله و فوكوس مناسب استفاده ميشود.
مكانيزم كلي كار اين سنسورها ، فرستادن يك بيم و دريافت انعكاس آن و متعاقبا محاسبه زمان رفت و برگشت. بدين ترتيب ميتوان فواص را نيز براحتي با در نظر گرفتن صرعت صوت در دما و فشار محيط ، محاسبه كرد.
قدم بعدي بدست آوردن ماتريسي از موانع موجود در محيط است. اينكار از دو راه ممكن است راه اول جاروب كردن محيط با امواج بصورت مكانيكي ميباشد. راه دوم استفاده ازچند مبدل ، با توجه به پيچيدگي محيط ، است. بعنوان مثال ميتوان يك مبدل متحرك با رنج زاويه اي بالا در سر ربات ، يك مبدل ثابت در جلو و رو به پايين براي تشخيص گودي، و دو مبدل با زاويه هاي 45 درجه در چپ و راست را بعنوان يك تركيب مناسب استفاده كرد.
يكي از مهمترين خطاهايي كه در اين سنسورها مشاهده ميشود ، خطاي بالقوه در فواصل زياد است. همانطور كه ميدانيد امواج مافوق صوت را نمي توان همانند يك بيم ليزر تاباند و انعكاس آن را ثبت كرد. بعنوان مثال در فاصله حدودا 4.5 متري و با زاويه تابش 75 درجه حدود 250 ميليمتر خطا ممكن است پيش آيد.
برخي از محققين با استفاده از تيوپها ، شيپوره ها و بازتابنده ها و با فوكوس دادن بيمهاي صوتي سعي در كم كردن زاويه تابش داشته اند ولي تجهيزات مورد نياز ابعاد سنسور را به ده ها برابر افزايش ميدهد. دقت اين نوع سنسورها را با افزايش دقت گيرنده نيز ميتوان افزايش داد. لبه هاي كناري بيم عموما از شدت كمتري برخوردارند لذا با كم كردن شدت حساسيت گيرنده ميتوان خطا را تا نصف كاهش داد. البته در مواردي از يك آرايه از داده ها استفاده ميشود و پروسسوري وظيفه تشخيص زاويه مناسب را برعهده دارد.
نمونه ای از کاربرد سنسورهای Ultrasonic در روباتیک
ربات دوچرخه سوار
یک کمپانی ژاپنی اقدام به ساخت یک ربات کوچک نموده که به سادگی دوچرخه سواری می کند.
شرکت Murata Manufacturing در یکی از نمایشگاه های تکنولوژیهای پیشرفته در اطراف شهر توکیو در ژاپن، رباتی را معرفی کرد که قادر است دوچرخه سواری کند.
این ربات که پنجاه سانتیمتر ارتفاع و نزدیک به پنج کیلوگرم وزن دارد، “پسر موراتا” (Murata Boy) نام داشته می تواند با سرعتی حدود 79 سانتیمر در ثانیه حرکت کند.
نسخه قدیمی تر این ربات که دوچرخه سواری می کرد در سال 1990 معرفی شد اما نمی توانست بدون آنکه بیفتد، توقف کند. اما ربات اخیر با تنظیم سرعت و انحراف مرکز جرم خود می تواند تعادل خود را در موقعیت های مختلف از جمله هنگام ایستادن حفظ کند.
سنسور سونار:
خلاصه:
سونار SRF04 سنسور مسافت یاب است که می توان توسط آن ربات را هدایت کرد. شما می توانید ربات خود قادر سازید تا محیط پیرامونش را از طریق مجموعه سنسورهای سونار ببیند.(مانند چشم انسان)
نظریه عملکرد:
یک سنسور سونار از طریق تولید یک صدا مانند رگبار کوتاه اسلحه کار می کند(ping) بنابراین وقتی که صدا به نزدیکترین شیء برخورد می کند، انعکاس صدا(echo) توسط سنسور شنیده می شود.
مانند تصویر زیر:
توسط اندازه گیری درست زمان، از لحظه ای که Ping شروع شده تا لحظه ای که Echo به سنسور برمیگردد، مقدار فاصله به نزدیکترین شیء را می توان محسبه کرد. حرکت صدا چیزی در حدود 1116.4 feet/second و یا 340.29 meters/second در سطح دریا، سرعت دارد. فاصله به نزدیکترین شیء را می توان با تقسیم زمان گذشته شده(elapsed time) بر دو برابر سرعت صدا محاسبه کرد.
منظور از زمان گذشته شده، زمان بین فرستادن صدا و شنیدن انعکاس(echo) است.
فرمول بدست آوردن فاصله سنسور از شیء به صورت زیر است:
Distance = ElapsedTime / (2* Speed_Of_Sound)
دلیل این که عمل تقسیم را بر دو برابر سرعت صدا ضرب می کنیم این است که فاصله از شیء فقط نصف فاصله حرکت واقعی موجی صدا است. موج صدا باید به سمت شیء حرکت کند و به سنسور برگردد برای این که سنسور، برگشت صدا یا echo را بشنود.
عملکرد سنسور:
سنسور مسافت یاب SRF04 با تولید یک پالس بر روی سیگنالی قرار است بفرستد، آن را رها می کند. این باعث می شود تا مسافت یاب یک ping ارسال کند. سنسور مسافت یاب قادر است تا 100 microsecond را بعد از عمل پینگ دریافت کند و سیگنال خروجی echo سنسور را افزایش دهد.(تأخیر در فعال سازی گیرنده باعث می شود تا گیرنده از شنیدن ping ارسال شده جلوگیری کند) وقتی که گیرنده echo را می شنود سیگنال خروجی را قطع می کند. زمان گذشته شده(Elapsed Time) بین ping و echo را می توان با اندازه گیری مدت زمان پالس روی خط echo و اضافه کردن 100 microsecond به آن بدست آورد. به صورت زیر:
elapsedTime = pulseDuration + 100
سنسور رنگ:
چکیده:
در این مقاله سعی در این است که شناخت مختصری از سنسور رنگ بوجود آوریم برای این منظور ابتدا در مورد طیف نور توضیحاتی ارائه شده و سپس به ساختار داخلی سنسور پرداخته ایم. بعد سیستم کار این سنسور که بصورت کدهای دیجیتال در خروجی سریال جهت پروسس عمل می کند را شرح داده ایم.
کلمات کلیدی:
ADC: Analog – Digital – Converter
Sensor: حسگر
Pixel: پیکسل
Chip: چیپ
مقدمه:
هدف اصلی از بررسی ها و تعاریفی که در این مقاله ارائه میشود . بازشناسی رنگ ها توسط ابزاری بغیر از چشم انسان می باشد یعنی به غیر از چشم انسان ابزارهای دیگری هم وجود دارند که می توانند رنگ ها را دریافت کرده و حس کنند پس لازمه ی ارتباط سخت افزار با دنیای قابل دیدن یک چشم حساس به نور مرئی یا رنگ می باشد که در اصطلاح فیزیک به آن سنسور نوری گفته می شود . این سنسورها در نور غیر مرئی یا طول موج های مورد نظر برای نورهای مرئی حساس هستند مانند سنسورهای حساس به نور زیر قرمز(infrared) یا ماوراء بنفش (ultra violet) که برای گیرنده های تلوزیونی کاربرد دارند.
سنسورهای رنگی ساخته شده در صنعت کار تشخیص رنگ را بر عهده دارند و تقریبا تمام طیف نور مرئی را تشخیص می دهند. این سنسورها بهترین انتخاب برای کاربردهای مقیاس کوچک با عملکرد بالا هستند.
مورد استفاده سنسور رنگ در صنعت مدرن بسیار زیاد است که از آن جمله می توان به کاربرد آن در خطوط تولید کنترل کیفیت (Q.C) ،ماهواره ها، رباتیک ،پزشکی ،صنایع غذایی ، اتومبیل سازی ، و به طور کلی در اتوماسیون سیستمها و سیستمهای اتوماتیک اشاره کرد.
ابزارهای بسیاری نیاز به کنترل رنگ از طریق یک سنسور را دارند به عنوان مثال در صنعت، کدهای رنگی پرینت شده همانند خطوط روی مقاومتها بایستی آشکار شوند تا اجازه عملکرد بالای ذخیره اتوماتیک رابه مقاومت بدهند . نیمی از شرکتهای آلمانی در صنعت غذایی (tetra) جهت کنترل رنگی از color sensor استفاده می کنند.
سه نوع سنسور رنگ شبیه چشم انسان مسئولیت تشخیص رنگ را بر عهده دارند . این سنسورهای رنگی نمایانگر یک طرح کوچک فیلترهایی با کیفیت بالا و خواندن هم زمان سه سطح رنگی می باشند.
سنسور فوق یکی از انواع سنسورهای JEN color ساخت کارخانه MAZET آلمان و از نوع سنسورهای سه عنصری (3 element color sensor) بوده که قابلیت شناسایی رنگ ها را به تفکیک رنگهای قرمز ، سبز و آبی دارا می باشد.
سنسور مربوط از 3*19 فتو دیود pin سیلیکونی که بصورت حلقه وار روی چیپ فقرار گرفته اند تشکیل شده برای جلو گیری از ایجاد تداخل در بین فتو دیود ها ، هر سکتوری از قسمت دیگر جدا شده برای شناسایی هر رنگی در هر کدام از این فتودیود ها فیلتر مربوط به طول موج رنگ مربوط در نظر گرفته شده است.
فیلترهای رنگی با کیفیت بالای تداخلی دارای این خصوصیات می باشد:
1- بصورت micro-structure روی چیپ قرار گرفته اند
2- قدرت انتقال سیگنال بالایی دارند.
3- سطح آن ها سخت می باشد.
4- پایداری حرارتی بالایی دارند.
5- فیلترها دارای شیب زیادی هستند
آرایه های فتو دیدهای pin سیلیکونی:
1- ناحیه طول موج 450mm-750mm
2- جریان گرفته شده از هر سکتور کمتر از 50 pa به ازای 5v ولتاژ معکوس
3- ظرفیت خازن هر سکتور 50 pf به ازای 5v ولتاژ معکوس
4- ماکزیمم ولتاژ معکوس 30 v
5- زمان صعود (TR) کمتر 1ns
این قطعه در انواع پکیج های tos-smd-so8 با فیلتر IR ارائه شده است .و دارای چهار پایه می باشد که شامل سه پایه آند که هر کدام مربوط به یک رنگ قرمز ، سبز و آبی و یک پایه کاتد مشترک می باشد.
: ساختار فیزیکی
سنسورهای رنگی شامل آرایه های دو بعدی(ماتریس) از سلول های تصویری می باشند که عملیات استخراج نور و اسکنینگ(Scanning) را انجام می دهد، جنس این سلول ها از مواد نیمه هادی طراحی آن به صورتی است که تشکیل یک خازن بدهد. برای تولید این سلول ها از ترکیب بایاس معکوس P-N استفاده می شود. در این تکنولوژی، ساخت دیودی با اتصال P-N
(reverse-based) مورد استفاده قرار می گیرد.
وقتی یک ولتاژ مثبت بر روی یک الکترود هادی کنار بستر القاء می شود یک ناحیه تخلیه در بستر در کنار الکترود ایجاد می شود به این منبع تخلیه چاه پتانسیلی نیز گفته می شود حال وقتی نور به ناحیه تخلیه برسد الکترون های بستر با حفره ها ترکیب مجدد می شوند ولی در ناحیه تخلیه الکترون های آزاد خواهیم داست بنابراین یک شارژ منفی از ناحیه تخلیه بوجود می آمد که نمایانگر تابش نور بر بستر می باشد برای این که نور به آسانی به محل تخلیه برسد الکترودهای از جنس پلی سیلیکون می باشد.
عامل های هوشمند
مقدمه
عامل هرچیزی است که قادر به درک محیط پیرامون خود ازطریق حس گرها(سنسور) واثرگذاری بر روی محیط از طریق اثرکننده ها باشد.
عامل انسانی اندامهایی مانند گوشها، شمها ودیگر ارگانها برای حس کردن ودستها، پاها ، بینی ودیگر اندامها برای اثرگذاری دارند. عامل رباتیک دوربینها ویابنده های مادون قرمز را بجای حس گرها وانواع موتورها را بجای اثرکننده ها جایگزین کرده است. عامل نرم افزاری رشته های بیتی را بعنوان درک محیط وعمل ، کدگذاری می کنند. درشکل زیرنمادی ازیک عامل عمومی ترسیم شده است.
| Sensors
|
شكل ١–۲:عامل هايي كه از طريق حسگر ها و اثر كننده ها با محيط ها ارتباط برقرار مي كنند.
عامل ها چگونه باید عمل کنند؟
عامل منطقی (RATIONAL AGENT) چیزیست که کاردرست انجام میدهد. آشکارا ،این بهتر ازآنست که کار نادرست انجام گیرد، اما این چه معنی می دهد؟ بعنوان اولین تخمین ، میگوییم عمل درست آنست که باعث موفق ترین شدن عامل گردد. اما این بیان مساله ، تصمیم گیری درباره چگونگی وزمان محاسبه موفقیت عامل را نادیده می گیریم .
ماواژه معیارکارآیی را (PERFORMANCE MEASURE) برای چگونگی به کار میبریم ، ملاکی که چگونگی موفقیت یک عامل را تعیین می کند. آشکارا ، تنها یک معیارثابت مناسب برای تمامی عاملها وجود ندارد . ماباید ازعامل برای عقیده ذهنی چگونگی رضایت خود از کارآیی اش را مورد پرسش قرار دهیم.
اما برخی ازعاملها قادر به پاسخگویی نبوده وبرخی خودشان را فریب می دهند.(عاملهای انسانی بویژه نمونه بارزی ازانگور ترشیده هستند چرا که بعد ازعدم موفقیت درحصول چیزدر میابند که واقعا آن چیزرا نیاز نداشتند).
بنابراین ما دراندازه گیری معیار ذهنی که بوسیله اعمال قدرتی تحمیل شده ، تاکید می کنیم . بعبارت دیگر، بعنوان مشاهده گرهای خارجی استاندارهایی را بیان می کنیم که موفقیت چه معنی درمحیطی را میدهد وازآن بعنوان معیار کارآیی عاملها استفاده می کنیم.
نمی توان عاملی را برای چیزیکه قابل درک نیست یا بعلت عدم انجام عمل غیرقابل انجامی ، مانند دفع دربار سرزنش نمود. اما رها کردن نياز های کامل بودن،راه مناسبی برای عامل ها نيست.نکته اينجاست اگر معين کنيم که هر عامل هوشمند همواره باید همان کاری را انجام دهدکه در عمل مناسب است¸هیچگاه نمی توان عاملی را طراحی نمود که این مشخصات را مرتفع سازد.
به طور خلاصه آن چه که در هر زمانی منطقی است به چهار چیز وابسته است:
- معیار کارآرایی که درجه موفقیت را تعیین می کند
- هرچیزی که تاکنون عامل ادراک نموده است.اما این تاریخچه کامل اذراکی را دنباله ادراکی می نامیم.
- آنچه که عامل در باره ی محیط خودمی داند.
اعمالی که عامل می تواند صورت دهد.
این عوامل راهنمای تعریف ایده آل هستند:برای هردنباله ادراکی ممکن عامل منطقی ایده آل باید هر کاری را که انتظار می رودباعث حداکثرسازی معیار کارآرایی می شود انجام دهدواین عمل بر پایه شواهدی که از طریق دنباله ادراکی آماده شده وهر آنچه که دانش درونی عامل است انجام میگردد.
نگاشت ايده آل از دنباله هاي ادراكي به عمليات
از آنجا كه دريافتيم رفتار عامل وابسته به دنباله ادراكي تا حال است، مي توانيم هر عامل خاصي را به وسيله ساخت جدولي از عمل آن در پاسخ به هر دنباله ادراكي توصيف كنيم. (براي اكثريت عامل ها، اين ليست بسيار طولاني خواهد بود يا در واقع نا متناهي،مگر آنكه كراني بر طول دنباله ادراكي مورد انتظار قرار دهيم.) چنين ليستي نگاشت (mapping) از دنباله ها ادراكي ناميده مي شود. اصولاً قادر هستيم دريابم كدام نگاشت عامل را به وسيله بررسي تمامي دنباله هاي ادركي ممكن و ثبت اعمالي كه عامل در پاسخ انجم مي دهد،توصيف مي كند. (اگر عامل ها مقداري تصادفي سازي در محاسبا ت خود بكار برند، خواهيم توانست برخي دنباله هاي ادركي را چندين بار اعمال نموده تا ايده مناسبي براي رفتار متوسط عامل بدست آوريم.) و اگر نگاشت ها عامل ها را توضيح دهند،آنگاه نگاشت ايده آل عامل هاي ايده آل را تشريح مي كند. تعيين اين كه كدام عمل را بايد عامل در مقابل هر دنباله ادراكي داده شده انجام دهد،طراحي براي عامل ايده را مهيا مي سازد.
خود مختاري (Autonomy)
يك مورد اضافه ديگر در تعريف عامل منطقي ايده ال بايد لحاظ شود، بخش « دانش دروني.» اگر اعمال عامل ها كاملاً بر پايه دانش دروني باشد، چنانچه هيچ توجهي به ادراك خود نكنند، گوييم عامل فاقد خود مختاري است. براي مثال، اگرسازنده ساعت آنقدر پيشگو باشد كه بداند مالك ساعت به استراليا در تاريخ معيني خواهد رفت، آنگاه درداخل آن مكانيزمي را تعبيه خواهد كرد تا عقربه ها را به طور خود كر در موعد معين شش ساعت جابه جا كند. اين رفتار به طور عمومي موفقيت آميز است اما به نظر مي رسد هوشمندي به طراح ساعت است تا خود ساعت.
رفتار عامل مي تواند متكي بر دو پايه تجربه خود و دانش دروني بنا نهاده شود كه در ساخت عامل براي شرايط محيطي خاص كه درآن عمل خواهد كرد،استفاده مي شود. سيستم به وسعتي خود مختار است كه رفتار آن براساس تجربه خودش تعيين مي كند.زماني كه عامل فاقد تجربه و يا كم تجربه است،مسلماً تصادفي عمل خواهد كرد،مگر آنكه طراح كمكهايي به آن داده باشد.بنابر اين همانگونه كه تكامل موجودات زنده را با واكنش غريزي كافي آماده مي سازد تا قادر به ادامه حيات براي كسب يادگيري باشند،منطقي به نظر مي رسد كه عامل هاي هوش مصنوعي داراي دانش اوليه در كنار توانايي يادگيري باشند.
خود مختاري نه تنها بر شعور ما مطابقت دارد، بلكه مثالي از تجربه مهندسي صحيح است. عاملي كه بر اساس مفروضات دروني خود عمل مي كند.تنها زماني مي تواند موفق عمل كند كه اين كه اي مفروضات بر قرار باشند واين يعني فقدان انعطاف پذيري،بذاي مثال سوسك سر گين خور را در نظر گيريد. اين سوسك پس از حفر لانه و تخم گذاري در آن،تكه اي سرگين براي بستن در لانه خود در ابتداي دهنه سوراخ قرار مي دهد. حال اگر تكه سنگين بر خلاف رويه اين سوسك از دهنه سوراخ برداشته شود سوسك به رفتار هاي قبلي خود همانند يك پانتوميم ادامه خواهد داد و هيچ گاه متوجه حذف سرگين نخواهد شد. تكامل اين رفتار غريزي را براي سوسك ايجاد نموده و زماني كه شرايط اوليه برقرار نباشد ناموفق صورت خواهد گرفت.عامل هوشمند واقعاً خود مختار بايد قادر به عمل موفقيت آميز در دامنه وسيعي از محيط ها باشد و البته بايد زمان كافي براي تطبيق نيز به آن داده شود.
ساختار عاملهاي هوشمند
تاكنون درباره عامل ها از طريق توصيف رفتارشان بحث شد، عملي كه بعد از هر دنباله ادراكي داده شده انجام مي گيرد.حال زمان آن رسيده كه به اصل مطلب بپردازيم و درباره چگونگي كاركرد داخلي آن گفتگو كنيم. وظيفه هوش مصنوعي طراحي برنامه عامل است، تابعي كه نگاشت عامل از ادراك به عمليات را پياده سازي مي كند. فرض مي كنيم اين برنامه بر روي نوعي ابزار محاسبه گر اجرا مي گردد كه آن را معماري مي ناميم.
بديهي است، برنامه اي كه انتخاب مي كنيم بايد آن برنامه اي باشد كه توسط معماري قابل پذيرش واجرا باشد.
معماري ممكن است يك كامپيوتر يا سخت افزارها ي خاص براي مقاصد معين باشد، به عنوان مثال دوربين هاي پردازش تصوير يا ورودي فيلتر شده صدا. همچنين ممكن است شامل نرم افزاري گردد كه درجه اي از پوشش بين كامپيوتر به عنوان سخت افزار صرف و برنامه عامل را ايجاد نمايد وبنابراين برنامه نويسي در سطح بالا تري صورت مي گيرد. عموماً، معماري ادراك از طريق حس گر ها را براي برنامه آماده ساختهع برنامه را اجرا نموده و اعمال انتخابي برنامه را به عمل كننده هاي سيستم منتقل خواهد كرد. ارتباط ما بين عامل ها، معماري هاوبرنامه ها را مي توان به صورد ذيل جمع بندي نمود:
برنامه + معماري = عامل
اكثريت مباحث اين كتاب درباره طراحي برنامه ها عامل است.
قبل از آنكه به طراحي عامل بپردازيم، ابتدا بايد تصوير خوبي از ادراكات وعمليات ممكن، اهداف يا معيار كارآيي عامل كه مي خواهد به آن برسد و نوع محيطي كه در آن فعاليت مي كند،را داشته باشيم.اين مباحث عناوين گسترده اي را شامل مي گردد.شكل ٣–۲ عناصر پايه براي انتخاب انواع عامل را نشان مي دهد.
| محيط | اهداف | عمليات | ادراكات | نوع عامل |
| بيمار، بيمارستان | بيمارسالم، حداقل هزينه | سؤالات،
آزمونها، رفتارها |
علائم،
يافته ها، پاسخهاي بيمار |
سيستم تشخيص پزشكي |
| تصاوير ماهواره اي | طبقه بندي
صحيح |
چاپ يك صحنه طبقه بندي شده | پيكسل هاي با شدت متفاوت،
رنگ |
سيستم تحليل تصويرماهواره اي |
| تسمه حمل كننده اجزاء | قرار دادن اجزاء در دسته
صحيح |
برداشتن اجزاء
و مرتب سازي آنها به صورت دسته اي |
پيكسلها با شدت
متفاوت |
روبات جابه جا كننده اشياء |
| پالايشگاه | افزايش خلوص،
محصول،ايمني |
بازو بسته كردن
سوپاپها، تعديل دما |
دما، فشارسنجها | كنترل كننده
پالايشگاه |
| مجموعه دانش آموزان | افزايش نمرات
دانش آموزان در آزمونها |
تمرينهاي
چاپ شده،پيشنهادات، اصلاحات |
كلمات تايپ شده | آموزش دهنده زبان انگليسي
با ارتباط متقابل |
شكل٣–۲:مثالهايي از انواع عامل ها و تعاريف PAGE هاي آنها
شايد براي برخي از خوانندگان تعجب آور باشد كه ما درليست انولع عامل ها برخي برنامه ها را ذكر كرده ايم كه در محيط كاملاً مصنوعي كه به وسيله ورودي صفحه كليد و خروجي كاراكتربر روي صفحه نمايش تعريف مي شود،مطرح مي گردند مطمئناًبرخي خواهند گفت، «آيا اين يك محيط واقعي است؟» در حقيقت مسئله مهم تمايز محيط هاي « واقعي » و «مصنوعي » نيست، بلكه مسئله اصلي پيچيدگي ما بين ارتباط رفتار عامل، دنباله ادراكي توليد شده بوسيله محيط، و اهدافي است كه عامل قصد حصول آن را دارد،مي باشند. برخي محيط هاي « واقعي » در عمل بسيار ساده هستند.براي مثال،روباتي كه براي بازرسي قطعاتي كه بر روي تسمه نقاله مي آيند، طراحي شده مي تواند فرضيات ساده كننده اي را در نظر گيرد: اين فرض كه روشنايي همواره وجود دارد،اين فرض كه فقط قطعات خاصي بر روي تسمه نقاله انتقال مي يابند و اينكه تنها دو عمل اعريف شده است،قبول قطعه يا علامت گذاري روي آن براي رد قطعه.
در مقابل برخي عامل هاي نرم افزاري (Software agents) در دامنه هاي نا محدود و غني وجود دارند (به اين نرم افزار ها ،روبات هاي نرم افزاري يا( softbots ) نيز مي گويند). روبات نرم افزاري را تصور كنيد كه براي شبيه سازي پرواز 747 طراحي شده است. شبيه ساز دراي محيطي پيچيده و بسيارجزيي است و عامل نرم افزاري بايدازميان طيف گسترده اي از عمليات در شرايط بلاد رنگ انتخابي را انجامدهد. و يا عامل نرم افزاري را تصور كنيد كه براي مرور منابع اخبار و نمايش اقلام مورد توجه مشتريان طراحي شده است.براي انجام درست كار، بايد قابليت پردازش زبان طبيعي را داشته باشد، نيازمند يادگيري علايق مشتريان خواهد بود و مي بايست توانايي تغيير پوياي برنامه خود را براي زماني داشته باشد كه براي مثال اتصال به يك منبع خبري از بين رود و يا يك منبع جديد خبريروي خط بيايد.
برخي محيط ها تمايز بين « واقعي » و« مصنوعي » را محو مي كنند.در محيط ALIVE (Maes et al.1994)، عامل هاي نرم افزاري داده شده ناد كه قادر به درك تصاوير دوربين ديجيتال اتاقي هستند كه انساني گرداگرد آن قدم ميزند. عامل، عامل تصوير دوربين را پردازش كرده و عملي را انتخاب مي كند.محيط همچنين تصوير دوربين را بر روي پرده نمايش بزرگي كه انسان قادربه ديدن آن باشد نمايش مي دهد تا بتواند بر روي تصوير افكت هاي گرافيك كامپيوتري را اضافه كند.چنين تصويري مي تواند سگكارتوني باشد كه برناوه ريزي شده تا بسوي انسان حركت كند (مگر اينكه فرد به جايي اشاره كند تا سگ دور شود) و يا دست خود را تكان داده و يا مشتاقانه بپرد زماني كه انسان اداهي خاصي از خود در آورد.
محيط ها
اعمال بوسيله عامل بر محيط انجام مي شود، كه خود ادراك عامل را مهيا مي سازد. اول، انواع متفاوت محيط ها وچگونگي اثر آنها بر طراحي عامل را تشريح نموده و سپس برنامه هاي محيطي را تشريح خواهد كرد كه مي تواند به عنوان بستر آزمون برنامه هاي عامل مورد استفاده قرار گيرد.
خواص محيط ها : محيط ها از چند منظر مورد توجه قرار مي گيرند. تمايز هاي پايه به قرار زير ايجاد مي شوند:
قابل دسترسي در مقابل غيرقابل دسترسي
اگر ابزار حس كننده عاملي امكان دسترسي به وضعيت كامل محيط را بدهد، آنگاه مي گوئيم محيط براي عامل قابل دسترسي است. محيط مؤثر قابل دسترسي است. اگر حس گرها تمامي جنبه هايي را كه براي انتخاب عمل لازم است شناسايي كنند. محيط قبال دسترسي راحت است زيرا عامل نيازمند دستكاري هيچ وضعيت داخلي براي حفظ دنيا را نخواهد داشت.
قطعي در مقابل غير قطعي
اگروضعيت بعدي محيط به وسيله وضعيت كنوني و اعمالي كه با عامل انتخاب گردد، تعيين شود،مي گوئيم محيط قطعي است. به طور كلي، عامل نبايد درباره عدم قطعيت در محيط قطعي وقابل دسترسي نگران باشد. اگر محيط قابل دسترسي نباشد، ممكن است غير قطعي به نظر برسد. اگر محيط پيچيده باشد اين مطلب به طور اخص صحيح است، كه نگهداري تمامي جنبه هاي غيرقابل دسترسي را دشوار مي سازد. بنابراين، بهتر است به قطعي يا غير قطعي بودن محيط از ديدگاه عامل نگاه كنيم.
اپيزوديك در مقابل غير اپيزوديك
در محيط اپيزوديك(episodic)، تجربه عامل به اپيزود هايي تقسيم مي گردد. هر اپيزود شامل درك و عمل عامل است. كيفيت اعمال ان تنها به خود اپيزود وابسته است، زيرا اپيزود هاي بعدي وابسته به اعمالي كه در اپيزود هاي قبلي صورت مي گيرد نيستند. محيط هاي اپيزودي بسيار ساده ترند زيرا عامل نبايد به جلو تر فكر كند.
ايستا در مقابل پويا
اگر محيط درحين سنجيدن عامل تغيير كند، مي گوئيم محيط براي عامل پويا است، در غير اين صورت پويا است. محيط هاي ايستا براي كار ساده هستند زيرا عامل نيازمند نگاه كردن به دنيا درحين تصميم گيري عملي نداشته و همچنين در مورد گذرزمان نيز نگران نمي باشد. اگر محيط با گذر زمان تغيير نيابد اما امتياز كارايي تغيير كند، مي گوئيم محيط نيمه پويا (semidynamic ) است.
گسسته در مقابل پيوسته
اگر تعداد محدود و مجزا از ادراك و اعمال بوضوح تعريف شده باشد، مي گوئيم محيط گسسته است. بازي شطرنج گسسته است، تعداد ثابتي در هر نوبت بازي وجود دارد. رانندگي تاكسي پيوسته است، سرعت و محل تاكسي و ديگر مشخصات خودرو در بازده مقادير پيوسته تغيير مي كنند. مشاهده خواهيم كرد كه انواع متفاوت محيط ها نياز مند برنامه هاي عامل تا حدودي متفاوت هستند تا قادر به عملكرد كارا باشند. بعداً روشن خواهد شد كه سخت ترين حالت، همانطور كه شما ممكن است حدس زده باشيد، غير قابل دسترسي، غير اپيزوديك، پويا و پيوسته است. همچنين خواهيم ديد كه اكثريت وضعيت هاي واقعي چنان پيچيده هستند كه اگرواقعاً قطعي باشند، براي اهداف عملي، غير قطعي در نظر گرفته مي شود.
برنامه محيط
شبيه ساز يك يا چند عامل را به عنوان ورودي گرفته و بگونه اي عمل مي كند كه هر عامل ادراك درست و نتيجه بازگشتي عمل خود را بدست آورد. سپس شبيه ساز محيط را بر اساس اعمال و احتمالاً ديگر فرايند هاي پوياي محيط كه به عنوان عامل ها در نظر گرفته نمي شوند(مثل باران)، بهنگام مي سازد. بنابراين محيط با وضعيت آغازين و تابع بهنگام سازي تعريف مي گردد. البته، عاملي كه در شبيه ساز كار مي كند بايد قادر به كار كردن در محيط واقعي باشد كه همان انواع ادراك را ايجاد نموده و همان انواع اعمال را قبول كند
به طور كلي، ملاك كارايي وابسته به كل دنباله وضعيت هاي محيط است كه در حين عمل برنامه توليد مي گردد. معمولاً، ملاك كارايي با يك تجمع ساده مثل جمع، ميانگين يا حداكثر كار مي كند. براي مثال، اگر ملاك كارايي براي عامل vaccum-cleaning جئع كل زباله هايي باشد كه در يك شيفت كاري تميز كرده باشد، scores تنها مقدار زباله تميز شده تا كنون را نگهداري مي كند. RUN-EVAL – ENVIRONMENT ملاك كارايي براي محيط واحدي برمي گرداند كه به وسيله وضعيت آغازين واحد وتابع بهنگام سازي ويژه تعريف مي گردد. معمولاًعامل براي كار در يك دسته محيط (environment class) طراحي شده است، مجموعه جامعي ازانواع محيط ها. براي مثال، ما برنامه شطرنج را براي بازي در رقابت با رقباي متفاوت ماشيني و انساني طراحي مي كنيم. اگر آن را براي يك رقيب واحد طراحي كنيم، ممكن است قادر به استفاده از ضعف خاص آن رقيب باشيم، اما اين طرح نمي تواند برنامه خوبي براي نرم افزار بازي عمومي باشد. به بيان دقيق تر، براي اندازه گيري كارايي يك عامل، نيازمند توليد كننده محيطي هستيم كه محيط هاي خاص (با احتمالات كلي) را براي اجراي عامل انتخاب كند سپس ما علاقه مند به ميزان كارايي متوسط عامل بر روي كلاس محيط هستيم.
يك اشتباه رايج بين دو مفهوم متغير وضعيت درمحيط شبيه ساز و متغير در خود عامل (مراجعه شود به REFLEX-AGENT-WITH-STATE) ممكن است روي دهد. به عنوان برنامه نويسي كه هر دو محيط شبيه ساز و عامل را پياده سازي مي كند، اغوا برانگيز خواهد بود كه عانل قادر به دسترسي متغير وضعيت شبيه ساز محيط باشد. اين فريفتگي بايد به هر قيمتي سركوب شود! نسخه عامل وضعيت تنها بايد از روي ادراك آن ساخته شود، بدون آنكه دسترسي به اطلاعات كامل وضعيت داشته باشد.
امواج Ultrasonic
امواج اولتراسونيك به دستهايي از امواج مكانيكي گفته ميشود كه فركانس نوسانشان بيش از محدوده شنوايي انسان 20KHz باشد. اين امواج بدليل خواصي كه دارند كاربردهاي متنوع و بعضاً جالبي دارند. با محاسبهايي ساده ميتوان دريافت كه اگر نقطهايي با فركانس 25 كيلوهرتز و دامنه 10 ميكرومتر نوسان كند شتاب آن بالغ بر 25 هزار برابر شتاب ثقل ميشود. اين شتاب و به طبع آن سرعت بالا در مايعات باعث ايجاد كاويتاسيون ميشود و در هنگام انفجار حبابهاي ايجاد شده فشاري در حدود 200 بار ايجاد ميگردد. از طرف ديگر اگر حركت نسبي با مشخصات فوق ميان دو سطح جامد برقرار شود ازدياد دما باعث جوش خوردن دو سطح به يكديگر ميشود كه Ultrasonic Welding ميباشد.
امواج اولتراسونيك مانند ديگر امواج دارای خاصیت شکست، انعکاس، نفوذ و پراش میباشند. برای توليد اين امواج روشهاي متفاوتي وجود دارد.
مجموعههاي اولتراسونيك معمولاً از سه بخش كلي تشكيل ميشوند:
1. مبدل
2. بوستر
3. تقويت كننده يا هورن.
مبدل نقش توليد امواج مكانيكي و تبديل انرژي الكتريكي به مكانيكي را دارد, بوستر و تقويت كننده نيز وظيفه انتقال و تقويت دامنه حركت و رساندن آن به مصرف كننده را به عهده دارند.
کاربرد سنسورهای Ultrasonic در رباتیک
يكي از مسائل مطرح در رباتيك ايجاد درك نسبت به محيط خارجي براي جلوگيري از برخورد نامطلوب به اشياء موجود در محيط حركت است. از سوي ديگر ممكن است نياز داشته باشيم كه ربات بتواند دركي از فاصله ها بدون تماس فيزيكي داشته باشد. براي اين منظور از سنسورهاي مافوق صوت يا Ultrasonic استفاده ميكنند.
با وجود اينكه رويكردهاي زيادي در اين زمينه وجود دارد ولي ميتوان آنها را در دو بخش تقسيم بندي كرد. دسته اول شامل ابزارهاي انفعالي ميباشند ،نظير سيستمهاي فاصله سنجي swept-focus و يا stereoscopic . دسته بعد سيستم هاي فعال يا Active ميباشند نظير سيستمهاي ماكروويو ، ليزر و مافوق صوت.
در اين مقال ما به معرفي سنسورهاي مافوق صوت خواهيم پرداخت. اين سنسورها از دو قسمت تشكيل شده است. قسمت اول مدار راه انداز آن را تشكيل ميدهد و قسمت ديگر دو قطعه (مبدل( گيرنده و فرستنده آن ، دقيقا مشابه آن قسمت از دزدگيرهايي كه در خودروها (مقابل شيشه جلو) نصب ميشود. البته دردسر اصلي كار با اينگونه سنسورها مدار راه انداز آن است.البته پكيجهاي آماده كه كار را بسيار ساده ميكنند نيز وجود دارد، مانند مدل مافوق صوت ساخت شركت Texas Instruments كه اين سنسورها در برخي دوربينها نيز براي تشخيص فاصله و فوكوس مناسب استفاده ميشود.
مكانيزم كلي كار اين سنسورها ، فرستادن يك بيم و دريافت انعكاس آن و متعاقبا محاسبه زمان رفت و برگشت. بدين ترتيب ميتوان فواص را نيز براحتي با در نظر گرفتن صرعت صوت در دما و فشار محيط ، محاسبه كرد.
قدم بعدي بدست آوردن ماتريسي از موانع موجود در محيط است. اينكار از دو راه ممكن است راه اول جاروب كردن محيط با امواج بصورت مكانيكي ميباشد. راه دوم استفاده ازچند مبدل ، با توجه به پيچيدگي محيط ، است. بعنوان مثال ميتوان يك مبدل متحرك با رنج زاويه اي بالا در سر ربات ، يك مبدل ثابت در جلو و رو به پايين براي تشخيص گودي، و دو مبدل با زاويه هاي 45 درجه در چپ و راست را بعنوان يك تركيب مناسب استفاده كرد.
يكي از مهمترين خطاهايي كه در اين سنسورها مشاهده ميشود ، خطاي بالقوه در فواصل زياد است. همانطور كه ميدانيد امواج مافوق صوت را نمي توان همانند يك بيم ليزر تاباند و انعكاس آن را ثبت كرد. بعنوان مثال در فاصله حدودا 4.5 متري و با زاويه تابش 75 درجه حدود 250 ميليمتر خطا ممكن است پيش آيد.
برخي از محققين با استفاده از تيوپها ، شيپوره ها و بازتابنده ها و با فوكوس دادن بيمهاي صوتي سعي در كم كردن زاويه تابش داشته اند ولي تجهيزات مورد نياز ابعاد سنسور را به ده ها برابر افزايش ميدهد. دقت اين نوع سنسورها را با افزايش دقت گيرنده نيز ميتوان افزايش داد. لبه هاي كناري بيم عموما از شدت كمتري برخوردارند لذا با كم كردن شدت حساسيت گيرنده ميتوان خطا را تا نصف كاهش داد. البته در مواردي از يك آرايه از داده ها استفاده ميشود و پروسسوري وظيفه تشخيص زاويه مناسب را برعهده دارد.
نمونه ای از کاربرد سنسورهای Ultrasonic در روباتیک
ربات دوچرخه سوار
یک کمپانی ژاپنی اقدام به ساخت یک ربات کوچک نموده که به سادگی دوچرخه سواری می کند.
شرکت Murata Manufacturing در یکی از نمایشگاه های تکنولوژیهای پیشرفته در اطراف شهر توکیو در ژاپن، رباتی را معرفی کرد که قادر است دوچرخه سواری کند.
این ربات که پنجاه سانتیمتر ارتفاع و نزدیک به پنج کیلوگرم وزن دارد، “پسر موراتا” (Murata Boy) نام داشته می تواند با سرعتی حدود 79 سانتیمر در ثانیه حرکت کند.
نسخه قدیمی تر این ربات که دوچرخه سواری می کرد در سال 1990 معرفی شد اما نمی توانست بدون آنکه بیفتد، توقف کند. اما ربات اخیر با تنظیم سرعت و انحراف مرکز جرم خود می تواند تعادل خود را در موقعیت های مختلف از جمله هنگام ایستادن حفظ کند.
سنسور سونار:
خلاصه:
سونار SRF04 سنسور مسافت یاب است که می توان توسط آن ربات را هدایت کرد. شما می توانید ربات خود قادر سازید تا محیط پیرامونش را از طریق مجموعه سنسورهای سونار ببیند.(مانند چشم انسان)
نظریه عملکرد:
یک سنسور سونار از طریق تولید یک صدا مانند رگبار کوتاه اسلحه کار می کند(ping) بنابراین وقتی که صدا به نزدیکترین شیء برخورد می کند، انعکاس صدا(echo) توسط سنسور شنیده می شود.
مانند تصویر زیر:
توسط اندازه گیری درست زمان، از لحظه ای که Ping شروع شده تا لحظه ای که Echo به سنسور برمیگردد، مقدار فاصله به نزدیکترین شیء را می توان محسبه کرد. حرکت صدا چیزی در حدود 1116.4 feet/second و یا 340.29 meters/second در سطح دریا، سرعت دارد. فاصله به نزدیکترین شیء را می توان با تقسیم زمان گذشته شده(elapsed time) بر دو برابر سرعت صدا محاسبه کرد.
منظور از زمان گذشته شده، زمان بین فرستادن صدا و شنیدن انعکاس(echo) است.
فرمول بدست آوردن فاصله سنسور از شیء به صورت زیر است:
Distance = ElapsedTime / (2* Speed_Of_Sound)
دلیل این که عمل تقسیم را بر دو برابر سرعت صدا ضرب می کنیم این است که فاصله از شیء فقط نصف فاصله حرکت واقعی موجی صدا است. موج صدا باید به سمت شیء حرکت کند و به سنسور برگردد برای این که سنسور، برگشت صدا یا echo را بشنود.
عملکرد سنسور:
سنسور مسافت یاب SRF04 با تولید یک پالس بر روی سیگنالی قرار است بفرستد، آن را رها می کند. این باعث می شود تا مسافت یاب یک ping ارسال کند. سنسور مسافت یاب قادر است تا 100 microsecond را بعد از عمل پینگ دریافت کند و سیگنال خروجی echo سنسور را افزایش دهد.(تأخیر در فعال سازی گیرنده باعث می شود تا گیرنده از شنیدن ping ارسال شده جلوگیری کند) وقتی که گیرنده echo را می شنود سیگنال خروجی را قطع می کند. زمان گذشته شده(Elapsed Time) بین ping و echo را می توان با اندازه گیری مدت زمان پالس روی خط echo و اضافه کردن 100 microsecond به آن بدست آورد. به صورت زیر:
elapsedTime = pulseDuration + 100
سنسور رنگ:
چکیده:
در این مقاله سعی در این است که شناخت مختصری از سنسور رنگ بوجود آوریم برای این منظور ابتدا در مورد طیف نور توضیحاتی ارائه شده و سپس به ساختار داخلی سنسور پرداخته ایم. بعد سیستم کار این سنسور که بصورت کدهای دیجیتال در خروجی سریال جهت پروسس عمل می کند را شرح داده ایم.
کلمات کلیدی:
ADC: Analog – Digital – Converter
Sensor: حسگر
Pixel: پیکسل
Chip: چیپ
مقدمه:
هدف اصلی از بررسی ها و تعاریفی که در این مقاله ارائه میشود . بازشناسی رنگ ها توسط ابزاری بغیر از چشم انسان می باشد یعنی به غیر از چشم انسان ابزارهای دیگری هم وجود دارند که می توانند رنگ ها را دریافت کرده و حس کنند پس لازمه ی ارتباط سخت افزار با دنیای قابل دیدن یک چشم حساس به نور مرئی یا رنگ می باشد که در اصطلاح فیزیک به آن سنسور نوری گفته می شود . این سنسورها در نور غیر مرئی یا طول موج های مورد نظر برای نورهای مرئی حساس هستند مانند سنسورهای حساس به نور زیر قرمز(infrared) یا ماوراء بنفش (ultra violet) که برای گیرنده های تلوزیونی کاربرد دارند.
سنسورهای رنگی ساخته شده در صنعت کار تشخیص رنگ را بر عهده دارند و تقریبا تمام طیف نور مرئی را تشخیص می دهند. این سنسورها بهترین انتخاب برای کاربردهای مقیاس کوچک با عملکرد بالا هستند.
مورد استفاده سنسور رنگ در صنعت مدرن بسیار زیاد است که از آن جمله می توان به کاربرد آن در خطوط تولید کنترل کیفیت (Q.C) ،ماهواره ها، رباتیک ،پزشکی ،صنایع غذایی ، اتومبیل سازی ، و به طور کلی در اتوماسیون سیستمها و سیستمهای اتوماتیک اشاره کرد.
ابزارهای بسیاری نیاز به کنترل رنگ از طریق یک سنسور را دارند به عنوان مثال در صنعت، کدهای رنگی پرینت شده همانند خطوط روی مقاومتها بایستی آشکار شوند تا اجازه عملکرد بالای ذخیره اتوماتیک رابه مقاومت بدهند . نیمی از شرکتهای آلمانی در صنعت غذایی (tetra) جهت کنترل رنگی از color sensor استفاده می کنند.
سه نوع سنسور رنگ شبیه چشم انسان مسئولیت تشخیص رنگ را بر عهده دارند . این سنسورهای رنگی نمایانگر یک طرح کوچک فیلترهایی با کیفیت بالا و خواندن هم زمان سه سطح رنگی می باشند.
سنسور فوق یکی از انواع سنسورهای JEN color ساخت کارخانه MAZET آلمان و از نوع سنسورهای سه عنصری (3 element color sensor) بوده که قابلیت شناسایی رنگ ها را به تفکیک رنگهای قرمز ، سبز و آبی دارا می باشد.
سنسور مربوط از 3*19 فتو دیود pin سیلیکونی که بصورت حلقه وار روی چیپ فقرار گرفته اند تشکیل شده برای جلو گیری از ایجاد تداخل در بین فتو دیود ها ، هر سکتوری از قسمت دیگر جدا شده برای شناسایی هر رنگی در هر کدام از این فتودیود ها فیلتر مربوط به طول موج رنگ مربوط در نظر گرفته شده است.
فیلترهای رنگی با کیفیت بالای تداخلی دارای این خصوصیات می باشد:
1- بصورت micro-structure روی چیپ قرار گرفته اند
2- قدرت انتقال سیگنال بالایی دارند.
3- سطح آن ها سخت می باشد.
4- پایداری حرارتی بالایی دارند.
5- فیلترها دارای شیب زیادی هستند
آرایه های فتو دیدهای pin سیلیکونی:
1- ناحیه طول موج 450mm-750mm
2- جریان گرفته شده از هر سکتور کمتر از 50 pa به ازای 5v ولتاژ معکوس
3- ظرفیت خازن هر سکتور 50 pf به ازای 5v ولتاژ معکوس
4- ماکزیمم ولتاژ معکوس 30 v
5- زمان صعود (TR) کمتر 1ns
این قطعه در انواع پکیج های tos-smd-so8 با فیلتر IR ارائه شده است .و دارای چهار پایه می باشد که شامل سه پایه آند که هر کدام مربوط به یک رنگ قرمز ، سبز و آبی و یک پایه کاتد مشترک می باشد.
: ساختار فیزیکی
سنسورهای رنگی شامل آرایه های دو بعدی(ماتریس) از سلول های تصویری می باشند که عملیات استخراج نور و اسکنینگ(Scanning) را انجام می دهد، جنس این سلول ها از مواد نیمه هادی طراحی آن به صورتی است که تشکیل یک خازن بدهد. برای تولید این سلول ها از ترکیب بایاس معکوس P-N استفاده می شود. در این تکنولوژی، ساخت دیودی با اتصال P-N
(reverse-based) مورد استفاده قرار می گیرد.
وقتی یک ولتاژ مثبت بر روی یک الکترود هادی کنار بستر القاء می شود یک ناحیه تخلیه در بستر در کنار الکترود ایجاد می شود به این منبع تخلیه چاه پتانسیلی نیز گفته می شود حال وقتی نور به ناحیه تخلیه برسد الکترون های بستر با حفره ها ترکیب مجدد می شوند ولی در ناحیه تخلیه الکترون های آزاد خواهیم داست بنابراین یک شارژ منفی از ناحیه تخلیه بوجود می آمد که نمایانگر تابش نور بر بستر می باشد برای این که نور به آسانی به محل تخلیه برسد الکترودهای از جنس پلی سیلیکون می باشد.
عامل های هوشمند
مقدمه
عامل هرچیزی است که قادر به درک محیط پیرامون خود ازطریق حس گرها(سنسور) واثرگذاری بر روی محیط از طریق اثرکننده ها باشد.
عامل انسانی اندامهایی مانند گوشها، شمها ودیگر ارگانها برای حس کردن ودستها، پاها ، بینی ودیگر اندامها برای اثرگذاری دارند. عامل رباتیک دوربینها ویابنده های مادون قرمز را بجای حس گرها وانواع موتورها را بجای اثرکننده ها جایگزین کرده است. عامل نرم افزاری رشته های بیتی را بعنوان درک محیط وعمل ، کدگذاری می کنند. درشکل زیرنمادی ازیک عامل عمومی ترسیم شده است.
| Sensors
|
شكل ١–۲:عامل هايي كه از طريق حسگر ها و اثر كننده ها با محيط ها ارتباط برقرار مي كنند.
عامل ها چگونه باید عمل کنند؟
عامل منطقی (RATIONAL AGENT) چیزیست که کاردرست انجام میدهد. آشکارا ،این بهتر ازآنست که کار نادرست انجام گیرد، اما این چه معنی می دهد؟ بعنوان اولین تخمین ، میگوییم عمل درست آنست که باعث موفق ترین شدن عامل گردد. اما این بیان مساله ، تصمیم گیری درباره چگونگی وزمان محاسبه موفقیت عامل را نادیده می گیریم .
ماواژه معیارکارآیی را (PERFORMANCE MEASURE) برای چگونگی به کار میبریم ، ملاکی که چگونگی موفقیت یک عامل را تعیین می کند. آشکارا ، تنها یک معیارثابت مناسب برای تمامی عاملها وجود ندارد . ماباید ازعامل برای عقیده ذهنی چگونگی رضایت خود از کارآیی اش را مورد پرسش قرار دهیم.
اما برخی ازعاملها قادر به پاسخگویی نبوده وبرخی خودشان را فریب می دهند.(عاملهای انسانی بویژه نمونه بارزی ازانگور ترشیده هستند چرا که بعد ازعدم موفقیت درحصول چیزدر میابند که واقعا آن چیزرا نیاز نداشتند).
بنابراین ما دراندازه گیری معیار ذهنی که بوسیله اعمال قدرتی تحمیل شده ، تاکید می کنیم . بعبارت دیگر، بعنوان مشاهده گرهای خارجی استاندارهایی را بیان می کنیم که موفقیت چه معنی درمحیطی را میدهد وازآن بعنوان معیار کارآیی عاملها استفاده می کنیم.
نمی توان عاملی را برای چیزیکه قابل درک نیست یا بعلت عدم انجام عمل غیرقابل انجامی ، مانند دفع دربار سرزنش نمود. اما رها کردن نياز های کامل بودن،راه مناسبی برای عامل ها نيست.نکته اينجاست اگر معين کنيم که هر عامل هوشمند همواره باید همان کاری را انجام دهدکه در عمل مناسب است¸هیچگاه نمی توان عاملی را طراحی نمود که این مشخصات را مرتفع سازد.
به طور خلاصه آن چه که در هر زمانی منطقی است به چهار چیز وابسته است:
- معیار کارآرایی که درجه موفقیت را تعیین می کند
- هرچیزی که تاکنون عامل ادراک نموده است.اما این تاریخچه کامل اذراکی را دنباله ادراکی می نامیم.
- آنچه که عامل در باره ی محیط خودمی داند.
اعمالی که عامل می تواند صورت دهد.
این عوامل راهنمای تعریف ایده آل هستند:برای هردنباله ادراکی ممکن عامل منطقی ایده آل باید هر کاری را که انتظار می رودباعث حداکثرسازی معیار کارآرایی می شود انجام دهدواین عمل بر پایه شواهدی که از طریق دنباله ادراکی آماده شده وهر آنچه که دانش درونی عامل است انجام میگردد.
نگاشت ايده آل از دنباله هاي ادراكي به عمليات
از آنجا كه دريافتيم رفتار عامل وابسته به دنباله ادراكي تا حال است، مي توانيم هر عامل خاصي را به وسيله ساخت جدولي از عمل آن در پاسخ به هر دنباله ادراكي توصيف كنيم. (براي اكثريت عامل ها، اين ليست بسيار طولاني خواهد بود يا در واقع نا متناهي،مگر آنكه كراني بر طول دنباله ادراكي مورد انتظار قرار دهيم.) چنين ليستي نگاشت (mapping) از دنباله ها ادراكي ناميده مي شود. اصولاً قادر هستيم دريابم كدام نگاشت عامل را به وسيله بررسي تمامي دنباله هاي ادركي ممكن و ثبت اعمالي كه عامل در پاسخ انجم مي دهد،توصيف مي كند. (اگر عامل ها مقداري تصادفي سازي در محاسبا ت خود بكار برند، خواهيم توانست برخي دنباله هاي ادركي را چندين بار اعمال نموده تا ايده مناسبي براي رفتار متوسط عامل بدست آوريم.) و اگر نگاشت ها عامل ها را توضيح دهند،آنگاه نگاشت ايده آل عامل هاي ايده آل را تشريح مي كند. تعيين اين كه كدام عمل را بايد عامل در مقابل هر دنباله ادراكي داده شده انجام دهد،طراحي براي عامل ايده را مهيا مي سازد.
خود مختاري (Autonomy)
يك مورد اضافه ديگر در تعريف عامل منطقي ايده ال بايد لحاظ شود، بخش « دانش دروني.» اگر اعمال عامل ها كاملاً بر پايه دانش دروني باشد، چنانچه هيچ توجهي به ادراك خود نكنند، گوييم عامل فاقد خود مختاري است. براي مثال، اگرسازنده ساعت آنقدر پيشگو باشد كه بداند مالك ساعت به استراليا در تاريخ معيني خواهد رفت، آنگاه درداخل آن مكانيزمي را تعبيه خواهد كرد تا عقربه ها را به طور خود كر در موعد معين شش ساعت جابه جا كند. اين رفتار به طور عمومي موفقيت آميز است اما به نظر مي رسد هوشمندي به طراح ساعت است تا خود ساعت.
رفتار عامل مي تواند متكي بر دو پايه تجربه خود و دانش دروني بنا نهاده شود كه در ساخت عامل براي شرايط محيطي خاص كه درآن عمل خواهد كرد،استفاده مي شود. سيستم به وسعتي خود مختار است كه رفتار آن براساس تجربه خودش تعيين مي كند.زماني كه عامل فاقد تجربه و يا كم تجربه است،مسلماً تصادفي عمل خواهد كرد،مگر آنكه طراح كمكهايي به آن داده باشد.بنابر اين همانگونه كه تكامل موجودات زنده را با واكنش غريزي كافي آماده مي سازد تا قادر به ادامه حيات براي كسب يادگيري باشند،منطقي به نظر مي رسد كه عامل هاي هوش مصنوعي داراي دانش اوليه در كنار توانايي يادگيري باشند.
خود مختاري نه تنها بر شعور ما مطابقت دارد، بلكه مثالي از تجربه مهندسي صحيح است. عاملي كه بر اساس مفروضات دروني خود عمل مي كند.تنها زماني مي تواند موفق عمل كند كه اين كه اي مفروضات بر قرار باشند واين يعني فقدان انعطاف پذيري،بذاي مثال سوسك سر گين خور را در نظر گيريد. اين سوسك پس از حفر لانه و تخم گذاري در آن،تكه اي سرگين براي بستن در لانه خود در ابتداي دهنه سوراخ قرار مي دهد. حال اگر تكه سنگين بر خلاف رويه اين سوسك از دهنه سوراخ برداشته شود سوسك به رفتار هاي قبلي خود همانند يك پانتوميم ادامه خواهد داد و هيچ گاه متوجه حذف سرگين نخواهد شد. تكامل اين رفتار غريزي را براي سوسك ايجاد نموده و زماني كه شرايط اوليه برقرار نباشد ناموفق صورت خواهد گرفت.عامل هوشمند واقعاً خود مختار بايد قادر به عمل موفقيت آميز در دامنه وسيعي از محيط ها باشد و البته بايد زمان كافي براي تطبيق نيز به آن داده شود.
ساختار عاملهاي هوشمند
تاكنون درباره عامل ها از طريق توصيف رفتارشان بحث شد، عملي كه بعد از هر دنباله ادراكي داده شده انجام مي گيرد.حال زمان آن رسيده كه به اصل مطلب بپردازيم و درباره چگونگي كاركرد داخلي آن گفتگو كنيم. وظيفه هوش مصنوعي طراحي برنامه عامل است، تابعي كه نگاشت عامل از ادراك به عمليات را پياده سازي مي كند. فرض مي كنيم اين برنامه بر روي نوعي ابزار محاسبه گر اجرا مي گردد كه آن را معماري مي ناميم.
بديهي است، برنامه اي كه انتخاب مي كنيم بايد آن برنامه اي باشد كه توسط معماري قابل پذيرش واجرا باشد.
معماري ممكن است يك كامپيوتر يا سخت افزارها ي خاص براي مقاصد معين باشد، به عنوان مثال دوربين هاي پردازش تصوير يا ورودي فيلتر شده صدا. همچنين ممكن است شامل نرم افزاري گردد كه درجه اي از پوشش بين كامپيوتر به عنوان سخت افزار صرف و برنامه عامل را ايجاد نمايد وبنابراين برنامه نويسي در سطح بالا تري صورت مي گيرد. عموماً، معماري ادراك از طريق حس گر ها را براي برنامه آماده ساختهع برنامه را اجرا نموده و اعمال انتخابي برنامه را به عمل كننده هاي سيستم منتقل خواهد كرد. ارتباط ما بين عامل ها، معماري هاوبرنامه ها را مي توان به صورد ذيل جمع بندي نمود:
برنامه + معماري = عامل
اكثريت مباحث اين كتاب درباره طراحي برنامه ها عامل است.
قبل از آنكه به طراحي عامل بپردازيم، ابتدا بايد تصوير خوبي از ادراكات وعمليات ممكن، اهداف يا معيار كارآيي عامل كه مي خواهد به آن برسد و نوع محيطي كه در آن فعاليت مي كند،را داشته باشيم.اين مباحث عناوين گسترده اي را شامل مي گردد.شكل ٣–۲ عناصر پايه براي انتخاب انواع عامل را نشان مي دهد.
| محيط | اهداف | عمليات | ادراكات | نوع عامل |
| بيمار، بيمارستان | بيمارسالم، حداقل هزينه | سؤالات،
آزمونها، رفتارها |
علائم،
يافته ها، پاسخهاي بيمار |
سيستم تشخيص پزشكي |
| تصاوير ماهواره اي | طبقه بندي
صحيح |
چاپ يك صحنه طبقه بندي شده | پيكسل هاي با شدت متفاوت،
رنگ |
سيستم تحليل تصويرماهواره اي |
| تسمه حمل كننده اجزاء | قرار دادن اجزاء در دسته
صحيح |
برداشتن اجزاء
و مرتب سازي آنها به صورت دسته اي |
پيكسلها با شدت
متفاوت |
روبات جابه جا كننده اشياء |
| پالايشگاه | افزايش خلوص،
محصول،ايمني |
بازو بسته كردن
سوپاپها، تعديل دما |
دما، فشارسنجها | كنترل كننده
پالايشگاه |
| مجموعه دانش آموزان | افزايش نمرات
دانش آموزان در آزمونها |
تمرينهاي
چاپ شده،پيشنهادات، اصلاحات |
كلمات تايپ شده | آموزش دهنده زبان انگليسي
با ارتباط متقابل |
شكل٣–۲:مثالهايي از انواع عامل ها و تعاريف PAGE هاي آنها
شايد براي برخي از خوانندگان تعجب آور باشد كه ما درليست انولع عامل ها برخي برنامه ها را ذكر كرده ايم كه در محيط كاملاً مصنوعي كه به وسيله ورودي صفحه كليد و خروجي كاراكتربر روي صفحه نمايش تعريف مي شود،مطرح مي گردند مطمئناًبرخي خواهند گفت، «آيا اين يك محيط واقعي است؟» در حقيقت مسئله مهم تمايز محيط هاي « واقعي » و «مصنوعي » نيست، بلكه مسئله اصلي پيچيدگي ما بين ارتباط رفتار عامل، دنباله ادراكي توليد شده بوسيله محيط، و اهدافي است كه عامل قصد حصول آن را دارد،مي باشند. برخي محيط هاي « واقعي » در عمل بسيار ساده هستند.براي مثال،روباتي كه براي بازرسي قطعاتي كه بر روي تسمه نقاله مي آيند، طراحي شده مي تواند فرضيات ساده كننده اي را در نظر گيرد: اين فرض كه روشنايي همواره وجود دارد،اين فرض كه فقط قطعات خاصي بر روي تسمه نقاله انتقال مي يابند و اينكه تنها دو عمل اعريف شده است،قبول قطعه يا علامت گذاري روي آن براي رد قطعه.
در مقابل برخي عامل هاي نرم افزاري (Software agents) در دامنه هاي نا محدود و غني وجود دارند (به اين نرم افزار ها ،روبات هاي نرم افزاري يا( softbots ) نيز مي گويند). روبات نرم افزاري را تصور كنيد كه براي شبيه سازي پرواز 747 طراحي شده است. شبيه ساز دراي محيطي پيچيده و بسيارجزيي است و عامل نرم افزاري بايدازميان طيف گسترده اي از عمليات در شرايط بلاد رنگ انتخابي را انجامدهد. و يا عامل نرم افزاري را تصور كنيد كه براي مرور منابع اخبار و نمايش اقلام مورد توجه مشتريان طراحي شده است.براي انجام درست كار، بايد قابليت پردازش زبان طبيعي را داشته باشد، نيازمند يادگيري علايق مشتريان خواهد بود و مي بايست توانايي تغيير پوياي برنامه خود را براي زماني داشته باشد كه براي مثال اتصال به يك منبع خبري از بين رود و يا يك منبع جديد خبريروي خط بيايد.
برخي محيط ها تمايز بين « واقعي » و« مصنوعي » را محو مي كنند.در محيط ALIVE (Maes et al.1994)، عامل هاي نرم افزاري داده شده ناد كه قادر به درك تصاوير دوربين ديجيتال اتاقي هستند كه انساني گرداگرد آن قدم ميزند. عامل، عامل تصوير دوربين را پردازش كرده و عملي را انتخاب مي كند.محيط همچنين تصوير دوربين را بر روي پرده نمايش بزرگي كه انسان قادربه ديدن آن باشد نمايش مي دهد تا بتواند بر روي تصوير افكت هاي گرافيك كامپيوتري را اضافه كند.چنين تصويري مي تواند سگكارتوني باشد كه برناوه ريزي شده تا بسوي انسان حركت كند (مگر اينكه فرد به جايي اشاره كند تا سگ دور شود) و يا دست خود را تكان داده و يا مشتاقانه بپرد زماني كه انسان اداهي خاصي از خود در آورد.
محيط ها
اعمال بوسيله عامل بر محيط انجام مي شود، كه خود ادراك عامل را مهيا مي سازد. اول، انواع متفاوت محيط ها وچگونگي اثر آنها بر طراحي عامل را تشريح نموده و سپس برنامه هاي محيطي را تشريح خواهد كرد كه مي تواند به عنوان بستر آزمون برنامه هاي عامل مورد استفاده قرار گيرد.
خواص محيط ها : محيط ها از چند منظر مورد توجه قرار مي گيرند. تمايز هاي پايه به قرار زير ايجاد مي شوند:
قابل دسترسي در مقابل غيرقابل دسترسي
اگر ابزار حس كننده عاملي امكان دسترسي به وضعيت كامل محيط را بدهد، آنگاه مي گوئيم محيط براي عامل قابل دسترسي است. محيط مؤثر قابل دسترسي است. اگر حس گرها تمامي جنبه هايي را كه براي انتخاب عمل لازم است شناسايي كنند. محيط قبال دسترسي راحت است زيرا عامل نيازمند دستكاري هيچ وضعيت داخلي براي حفظ دنيا را نخواهد داشت.
قطعي در مقابل غير قطعي
اگروضعيت بعدي محيط به وسيله وضعيت كنوني و اعمالي كه با عامل انتخاب گردد، تعيين شود،مي گوئيم محيط قطعي است. به طور كلي، عامل نبايد درباره عدم قطعيت در محيط قطعي وقابل دسترسي نگران باشد. اگر محيط قابل دسترسي نباشد، ممكن است غير قطعي به نظر برسد. اگر محيط پيچيده باشد اين مطلب به طور اخص صحيح است، كه نگهداري تمامي جنبه هاي غيرقابل دسترسي را دشوار مي سازد. بنابراين، بهتر است به قطعي يا غير قطعي بودن محيط از ديدگاه عامل نگاه كنيم.
اپيزوديك در مقابل غير اپيزوديك
در محيط اپيزوديك(episodic)، تجربه عامل به اپيزود هايي تقسيم مي گردد. هر اپيزود شامل درك و عمل عامل است. كيفيت اعمال ان تنها به خود اپيزود وابسته است، زيرا اپيزود هاي بعدي وابسته به اعمالي كه در اپيزود هاي قبلي صورت مي گيرد نيستند. محيط هاي اپيزودي بسيار ساده ترند زيرا عامل نبايد به جلو تر فكر كند.
ايستا در مقابل پويا
اگر محيط درحين سنجيدن عامل تغيير كند، مي گوئيم محيط براي عامل پويا است، در غير اين صورت پويا است. محيط هاي ايستا براي كار ساده هستند زيرا عامل نيازمند نگاه كردن به دنيا درحين تصميم گيري عملي نداشته و همچنين در مورد گذرزمان نيز نگران نمي باشد. اگر محيط با گذر زمان تغيير نيابد اما امتياز كارايي تغيير كند، مي گوئيم محيط نيمه پويا (semidynamic ) است.
گسسته در مقابل پيوسته
اگر تعداد محدود و مجزا از ادراك و اعمال بوضوح تعريف شده باشد، مي گوئيم محيط گسسته است. بازي شطرنج گسسته است، تعداد ثابتي در هر نوبت بازي وجود دارد. رانندگي تاكسي پيوسته است، سرعت و محل تاكسي و ديگر مشخصات خودرو در بازده مقادير پيوسته تغيير مي كنند. مشاهده خواهيم كرد كه انواع متفاوت محيط ها نياز مند برنامه هاي عامل تا حدودي متفاوت هستند تا قادر به عملكرد كارا باشند. بعداً روشن خواهد شد كه سخت ترين حالت، همانطور كه شما ممكن است حدس زده باشيد، غير قابل دسترسي، غير اپيزوديك، پويا و پيوسته است. همچنين خواهيم ديد كه اكثريت وضعيت هاي واقعي چنان پيچيده هستند كه اگرواقعاً قطعي باشند، براي اهداف عملي، غير قطعي در نظر گرفته مي شود.
برنامه محيط
شبيه ساز يك يا چند عامل را به عنوان ورودي گرفته و بگونه اي عمل مي كند كه هر عامل ادراك درست و نتيجه بازگشتي عمل خود را بدست آورد. سپس شبيه ساز محيط را بر اساس اعمال و احتمالاً ديگر فرايند هاي پوياي محيط كه به عنوان عامل ها در نظر گرفته نمي شوند(مثل باران)، بهنگام مي سازد. بنابراين محيط با وضعيت آغازين و تابع بهنگام سازي تعريف مي گردد. البته، عاملي كه در شبيه ساز كار مي كند بايد قادر به كار كردن در محيط واقعي باشد كه همان انواع ادراك را ايجاد نموده و همان انواع اعمال را قبول كند
به طور كلي، ملاك كارايي وابسته به كل دنباله وضعيت هاي محيط است كه در حين عمل برنامه توليد مي گردد. معمولاً، ملاك كارايي با يك تجمع ساده مثل جمع، ميانگين يا حداكثر كار مي كند. براي مثال، اگر ملاك كارايي براي عامل vaccum-cleaning جئع كل زباله هايي باشد كه در يك شيفت كاري تميز كرده باشد، scores تنها مقدار زباله تميز شده تا كنون را نگهداري مي كند. RUN-EVAL – ENVIRONMENT ملاك كارايي براي محيط واحدي برمي گرداند كه به وسيله وضعيت آغازين واحد وتابع بهنگام سازي ويژه تعريف مي گردد. معمولاًعامل براي كار در يك دسته محيط (environment class) طراحي شده است، مجموعه جامعي ازانواع محيط ها. براي مثال، ما برنامه شطرنج را براي بازي در رقابت با رقباي متفاوت ماشيني و انساني طراحي مي كنيم. اگر آن را براي يك رقيب واحد طراحي كنيم، ممكن است قادر به استفاده از ضعف خاص آن رقيب باشيم، اما اين طرح نمي تواند برنامه خوبي براي نرم افزار بازي عمومي باشد. به بيان دقيق تر، براي اندازه گيري كارايي يك عامل، نيازمند توليد كننده محيطي هستيم كه محيط هاي خاص (با احتمالات كلي) را براي اجراي عامل انتخاب كند سپس ما علاقه مند به ميزان كارايي متوسط عامل بر روي كلاس محيط هستيم.
يك اشتباه رايج بين دو مفهوم متغير وضعيت درمحيط شبيه ساز و متغير در خود عامل (مراجعه شود به REFLEX-AGENT-WITH-STATE) ممكن است روي دهد. به عنوان برنامه نويسي كه هر دو محيط شبيه ساز و عامل را پياده سازي مي كند، اغوا برانگيز خواهد بود كه عانل قادر به دسترسي متغير وضعيت شبيه ساز محيط باشد. اين فريفتگي بايد به هر قيمتي سركوب شود! نسخه عامل وضعيت تنها بايد از روي ادراك آن ساخته شود، بدون آنكه دسترسي به اطلاعات كامل وضعيت داشته باشد.
آخرین نظری که به نوشته من دادید