<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات KN2C</title>
        <link>https://virgool.io/KN2CRoboticsTeam/feed</link>
        <description>تیم رباتیک دانشگاه خواجه نصیرالدین طوسی
kn2c.ir</description>
        <language>fa</language>
        <pubDate>2026-06-17 14:42:28</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/yg3mm6rslztl/oicr05.png</url>
            <title>KN2C</title>
            <link>https://virgool.io/KN2CRoboticsTeam</link>
        </image>

                    <item>
                <title>طراحی مسیر در ربات‌های خودمختار (Path Planning)</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%85%D8%B3%DB%8C%D8%B1-%D8%AF%D8%B1-%D8%B1%D8%A8%D8%A7%D8%AA%D9%87%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF%D9%85%D8%AE%D8%AA%D8%A7%D8%B1-path-planning-fo6cfmblmbxe</link>
                <description>شما هم احتمالا ربات‌هایی در اینترنت و فضای مجازی و شاید تلویزیون دیده‌اید که بدون کنترل انسان حرکت می‌کنند؛ ولی چگونه این خودمختاری امکان‌پذیر است؟ ربات‌های امدادگر، جاروبرقی‌های رباتیک، ماشین‌های خودکار، پهپاد‌های نامه‌رسان و ... همگی از این نوع ربات‌ها هستند. این ربات‌ها در مکان‌هایی که انسان نمی‌تواند در آن حضور یابد، بیشترین کاربرد را دارند.  در این نوشته به الگوریتم‌ها و روش‌های مختلف خودمختاری ربات‌ها می‌پردازیم. ربات امدادگر آزمایشگاه رباتیک KN2C مسیریابی یا طراحی مسیر یا Path Planning  از مباحث مهم ربات‌های خودمختار است. مسیریابی عبارت است از اینکه ربات از یک نقطه‌ی شروع (Starting Position)  به یک نقطه‌ی پایانی و هدف (Goal Position) برود. این عملیات لازم است بدون دخالت انسان باشد. ربات برای پیدا کردن مسیر نقطه‌ی شروع تا نقطه‌ی پایانی (Path Planning)، موانع (‌‌Obstacles) را نیز در نظر می‌گیرد و از آن‌ها دوری می‌کند. مسیر از نقطه‌ی شروع تا پایان و دوری از موانعمسیریابی با توجه به محیط اطراف ربات به دو نوع تقسیم می‌شود. مسیریابی ایستا (Static Path Planning) و مسیریابی پویا (Dynamic Path Planning). در مسیریابی ایستا محیط اطراف ربات با گذر زمان تغییر نمی‌کند. در حالی که در مسیریابی پویا به دلیل تغییر محیط در زمان لازم است ربات همواره و به صورت هم‌زمان (online) عملیات مسیریابی را انجام دهد. طراحی مسیر در ناوبری در محیط محلی (Local Navigation) در نوشته‌ی دیگری که از انتشارات KN2C ‌ منتشر شد، خواندیم که یک ربات چگونه می‌تواند با استفاده از سنسور‌های مختلفی که بر دوش می‌کشد، اطلاعات مورد نیاز خود را به صورت هم‌زمان، از محیط اطراف دریافت کند. اطلاعات دریافت شده از محیط می‌توانند با پردازش‌ها و الگوریتم‌هایی، به نقشه‌ی محیط اطراف ربات تبدیل شوند. سنسور‌ مورد نظر برای این کار با نام  LIDAR شناخته می‌شود. این سنسور با فرکانس خاص و تعیین شده، فاصله‌ی جسم‌های اطراف ربات را به صورت داده، در اختیار ربات قرار می‌دهد. استفاده از سنسور‌های دیگری مانند دوربین، GPS، انکودر موتور و ... در کنار LIDAR   به ربات کمک می‌کند که نقشه‌ی دقیق تری از محیط اطراف خود داشته باشد. محققان رباتیک با استفاده از نقشه‌ی به‌دست‌آمده و دیگر اطلاعات محیط، به ربات‌ها آموزش می‌دهند که مسیرشان را در هر محیطی پیدا کنند و در دنیای انسان‌ها گلیم خود را از آب بیرون بکشند.نمونه ای از سنسور‌های LIDARجاروبرقی‌های رباتیکی با استفاده از این موضوع در ابتدا نقشه‌ای از محیطی که در آن هستند تهیه می‌کنند. بعد از شناختن خانه‌ی جدید خود و با استفاده از نقشه، گوشه‌به‌گوشه‌ی خانه را می‌گردند و تمیز می‌کنند. از نکات جالب این جاروبرقی این است که محل شارژر خود را روی نقشه خانه می‌داند و بعد از تمیز کردن خانه به محل شارژ خود بر‌می‌گردد. جاروبرقی رباتیکی و خودکاردر ادامه ویدیوی ساخته‌شدن هم‌زمان نقشه توسط LIDAR  را مشاهده می‌کنید.طراحی مسیر با استفاده از هوش مصنوعی (Artificial Intelligence)هوش مصنوعی علم بخشیدن هوش و خرد به ماشین‌ها و ربات‌ها است که توانایی تصمیم‌گیری در موقعیت‌های مختلف را به ربات می‌بخشد. یک ربات یا سیستم هوشمند برای حل کردن مسئله‌ها از روش‌هایی به نام روش‌های هوش مصنوعی استفاده می‌کند. از جمله‌ی این روش‌ها سیستم منطق فازی (Fuzzy Logic System)، شبکه عصبی (Neural Network)، عصبی-فازی (Neural-Fuzzy) و ... می توان نام برد. برای بهینه کردن مسیر طراحی شده از الگوریتم‌هایی مانند بهینه‌سازی کلونی مورچه (Ant Colony Optimization)،‌ بهینه سازی ازدحام ذرات (Particle Swarm Optimization) و ... استفاده می‌شود. با استفاده از بهینه‌سازی می توانیم کوتاه‌ترین و موثر‌ترین مسیر را بدون برخورد با موانع، طراحی کنیم.الگوریتم کلونی مورچه‌ها در نوشته‌ی دیگری از مریم تیموری در انتشارات KN2C منتشر شده‌ است که می‌توانید اینجا بخونید. برای خواندن نوشته‌های بیشتری در این زمینه، می‌توانید از این لینک با تیم رباتیک KN2C  بیشتر آشنا شوید. </description>
                <category>KN2C</category>
                <author>نازنین رضائی</author>
                <pubDate>Sun, 20 Sep 2020 13:10:10 +0430</pubDate>
            </item>
                    <item>
                <title>ارتباطات هوشمند مورچه‌ها</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7%D8%A7%D8%AA-%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF-%D9%85%D9%88%D8%B1%DA%86%D9%87%D9%87%D8%A7-homqo4yswvsy</link>
                <description>برای همه ما پیش آمده که مقداری غذا روی میز یا گوشه اتاق جا گذاشتیم و بعد مدتی تعداد زیاد مورچه دور غذا جمع شدند. گاهی اوقات این مورچه ها حتی بعد از برداشتن موادغذایی محل رو ترک نمی‌کنند و به جستجوی خودشان ادامه می‌دهند. اما دلیل این اتفاق چیست؟در یک کلونی مورچه‌ای هر مورچه بعد از پیدا کردن غذا در مسیر برگشت از محل تا کلونی را نشانه‌گذاری می‌کند. این نشانه‌گذاری بوسیله ماده‌ای به نام فرومون انجام می‌شود. مورچه‌ها این ماده را از خودشان ترشح می‌کنند تا به وسیله آن بقیه اعضای کلونی کوتاه‌ترین مسیر تا غذا را پیدا کنند.برای درک بهتر این مسئله یک مثال را با هم بررسی می‌کنیم. فرض کنید یک قبیله در صحرا وجود دارد که دونفر هر روز برای پیدا کردن آب از آن خارج می‌شوند. برای رسیدن به نزدیک‌ترین چاه ممکن ۲ مسیر وجود دارد. بدلیل نبود امکانات و تکنولوژی تا به حال کوتاه‌ترین مسیر کشف نشده است. دونفر از قبیله (یک خانم و یک آقا) داوطلب می‌شوند تا به کمک ۲ سطل آب اضافی این مسئله را حل کنند. به این صورت که هر نفر یک سطل آب اضافی از آب چاه برمی‌دارد و در راه برگشت زمین را با آن تر می کند. در هنگام تصمیم‌گیری برای انتخاب مسیر رسیدن به چاه همواره راهی که بیشتر تر شده باشد انتخاب می‌شود. در ابتدا هر دو مسیر خشک هستند پس به طور تصادفی خانم مسیر سمت راست و آقا مسیر سمت چپ را انتخاب می‌کند. فرض کنید که طول مسیر سمت راست نصف مسیر سمت چپ است. به این ترتیب وقتی خانم به چاه می‌رسد وضعیت کلی محیط به این شکل خواهد بود:در این حالت هیچ یک از این دونفر از وضعیت دیگری خبری ندارد. خانم به چاه آب رسیده در حالی که آقا هنوز در نیمه راه قرار دارد. پس مقدار آب مورد نیازش را برمی‌دارد و چون هر دو مسیر خشک هستند از مسیری که آمده‌بود برمی‌گردد تا آن‌ را بوسیله سطل آب اضافی تر کند. وقتی که خانم به قبیله بازگردد وضعیت محیط به این شکل خواهد بود:چون طول مسیر سمت راست دو برابر طول مسیر سمت چپ است وقتی که خانم در مسیر برگشت به قبیله می‌رسد آقا در ابتدای مسیر بازگشت قرار دارد. اما این بار هر دو مسیر به یک اندازه تر نیستند پس مسیری که تر شده است را انتخاب می‌کند و در راه بازگشت با سطل آب اضافی آن را تر می‌کند.به این ترتیب تنها با یک روز جستجو کوتاه‌ترین مسیر پیدا شد. حال اگر آقا از مسیری که آمده بود بازمی‌گشت چه اتفاقی می‌افتاد؟چون طول مسیر سمت چپ دو برابر طول مسیر سمت راست است در مدت زمان مشخص تعداد دفعاتی که مسیر سمت راست تر می‌شود دو برابر تعداد دفعاتی است که مسیر سمت چپ‌ تر می‌شود. بنابراین بعد از مدتی تفاوت زیادی بین میزان رطوبت این دو مسیر ایجاد می‌شود. بعلاوه فاصله زمانی میان دفعات تر شدن مسیر در مسیر سمت چپ طولانی‌تر است و تبخیر آب بیشتر خودش را نشان می‌دهد.این یک مثال بسیار ساده از الگوریتم کلونی مورچگان (ant colony) است. این الگوریتم کاربرد‌های بسیاری در علوم کامپیوتر و به طور تخصصی‌تر در زمینه سیستم‌های چندعامله دارد. از بستر‌هایی که این الگوریتم بر روی آن پیاده‌سازی شده است می‌توان محیط شبیه‌سازی دوبعدی فوتبال را نام برد. اگر دوست دارید درمورد این پلتفرم بیشتر بدانید این مقاله از ویرگول را از دست ندهید. شما می‌توانید این اطلاعات را در سایت rcss.ir نیز دریافت کنید.برای خواندن مقالات بیشتر در این زمینه انتشارات KN2C را در ویرگول دنبال کنید.منبع عکس‌ها: یوتیوب</description>
                <category>KN2C</category>
                <author>Maryam Teimouri</author>
                <pubDate>Sun, 13 Sep 2020 12:58:23 +0430</pubDate>
            </item>
                    <item>
                <title>برخی ابزارهای denoise کردن در opencv</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D8%A8%D8%B1%D8%AE%DB%8C-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-denoise-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%B1-opencv-gu3kqxaixuuv</link>
                <description>در علوم مهندسی، تصاویر همانند دیگر سیگنال ها گاهی حاوی نویز هستند که کار پردازش آن‌ها را مشکل می‌سازد. این نوع نویز‌ها معمولا به خاطر عواملی مثل لنز دوربین، عوامل محیطی و از این دست مسائل به وجود می‌آیند. و این موضوع مشکل جدی برای پیاده کردن الگوریتم‌ها و استفاده از فیچر‌های تصویر برای ما به وجود می‌آورد. یکی از مهم‌ترین مشکل‌ها زمانی به وجود می‌آید که بخواهیم از الگوریتم‌های تشخیص لبه مانند Canny استفاده کنیم. در صورت وجود نویز در تصویر مقدار زیادی لبه‌های اشتباه در تصویر دیده می‌شود.تصویر ورودی نویزیاجرای الگوریتم تشخیص لبه Canny بر روی تصویر نویزیخوشبختانه کتابخانه opencv ابزار‌های بسیار زیادی برای رفع نویز یا به اصطلاح هموار کردن تصویر (image soothing ) در اختیار ما می‌گذارد.در ادامه یکسری از این ابزار‌ها و الگوریتم‌ها را بررسی می‌کنیم.cv2.blur:در این روش یک کرنل(پنجره کوچک) به اندازه دلخواه را بر روی تصویر مورد نظر کانوالو می‌کنیم. در هر مرحله از کانوالو(به زبان ساده یعنی لغزاندن پنجره بر روی تصویر) مقدار پیکسل مرکزی را با مقدار میانگین تمام پیکسل‌های درون کرنل مورد نظر جایگزین می‌کنیم.نتیجه ی بلور با کرنل ۵‌*۵ cv2.medianBlur:همانند روش قبل این روش نیز از کانوالو کردن یک کرنل بر روی تصویر به وجود می‌آيد. با این تفاوت که مقدار پیکسل مرکزی  حاصل میانه‌ی پیکسل‌های درون کرنل است. این نوع از فیلتر برای از بین بردن نویز‌های salt &amp; pepper بسیار مناسب است چرا که مقدار پیکسل نویز به طور کامل حذف می‌شود.فیلتر میانه با کرنل ۵*۵cv2.gaussianblur:یکی از پرکاربردترین فیلتر‌ها فیلتر گاوسی است. در این نوع از فیلتر از کانوالو کردن یک کرنل گاوسی بر روی تصویر استفاده می‌شود. به بیان دقیق‌تر اگر نمودار توزیع نرمال گاوسی را به خاطر بیاوریم:توزیع نرمال گاوسی در یک بعدمی‌بینیم که در این نوع از فیلتر با کانوالو کردن هر نقطه با کرنل ورودی و جمع کردن پیکسل های درون پنجره حاصل موردنظر برای پیکسل مرکزی بدست می‌آید. اما نکته اینجاست که همانطور که در نمودار پیداست بیشترین وزن را پیکسل مرکزی دارد و وزن مربوط به هر پیکسل درون کرنل با دور شدن از پیکسل مرکزی رو به کاهش می‌رود.تابع گاوسی در دو بعدزمانی که این فیلتر در دو بعد ایکس و ایگرگ اعمال می‌شود باعث ایجاد سطحی می‌شود که در آن کانتور‌ها (حد فاصل ها) دایره‌های متحدالمرکز با توزیع گاوسی از نقطه‌ی مرکزی فیلتر هستند.مهم‌ترین کاربرد و وجه تمایز فیلتر گاوسی از بین بردن لبه‌های تیز و کاهش کنتراست تصویر است. لازم به ذکر است که بر خلاف فیلتر‌های میانه و میانگین فیلتر گاوسی یک فیلتر خطی است. (به زبان ساده یک فیلتر به شکل یک تابع خطی است، اگر: (Fm(A+λB)=Fm(A)+λFm(B)فیلتر گاوسی با کرنل ۵*۵cv2.bilateralFilter:این نوع فیلتر از موثرترین فیلتر‌ها برای از بین بردن نویز تصویر در عین حفظ لبه‌های تیز موجود در تصویر است. ولی سرعت اعمال این فیلتر نسبت به فیلتر‌های دیگه بسیار کندتر است. در فیلتر گاوسی دیدیم که وزن هر پیکسل وابسته به فاصله‌ی آن پیکسل از پیکسل مرکزی معلوم می‌شود و شدت رنگ هر پیکسل در عملیات دخیل نیست. این موضوع سبب از بین رفتن برخی لبه ها می‌شود که مطلوب ما نیست.در این نوع از فیلتر علاوه بر در نظر گرفتن فاصله‌ی هر پیکسل از پیکسل مرکزی کرنل شدت رنگ آن‌ها نیز در نظر گرفته می‌شود. هدف این فیلتر این است که پیکسل‌هایی با شدت رنگ مشابه با پیکسل مرکزی در معادله در نظر گرفته شوند. به همین دلیل علاوه بر فیلتر گاوسی وابسته به فاصله از یک فیلتر گاوسی وابسته به شدت رنگ نیز استفاده می‌شود که با وجود عملکرد مطلوب سرعت پردازش را پایین می‌آورد.همانطور که دیده می‌شود، بهترین عملکرد را فیلتر bilateral روی تصویر ورودی دارد. اگر الگوریتم تشخیص لبه بر روی عکس خروجی این فیلتر اجرا شود می‌بینیم که:فیلتر canny با thresholdهای ۱۰۰ و ۲۰۰جمع بندی:کتابخانه opencv ابزار‌های بسیار زیادی را برای از بین بردن نویز‌ها در اختیار ما می‌گذارد. بسته به نیاز، می‌توان از فیلتر دلخواه استفاده کنیم. به عنوان مثال اگر از بین بردن نویز‌هایی مثل salt &amp; pepper را در نظر داریم میتوانیم از فیلتر‌های میانگین و میانه استفاده کنیم و اگر می‌خواهیم که نویز های حاصل از لبه های تند را از بین ببریم از فیلتر گاوسی. </description>
                <category>KN2C</category>
                <author>Danial</author>
                <pubDate>Sat, 05 Sep 2020 16:59:45 +0430</pubDate>
            </item>
                    <item>
                <title>خنثی کردن بمب با بازوی رباتیک (سینماتیک معکوس)</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D8%AE%D9%86%D8%AB%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A8%D9%85%D8%A8-%D8%A8%D8%A7-%D8%A8%D8%A7%D8%B2%D9%88%DB%8C-%D8%B1%D8%A8%D8%A7%D8%AA%DB%8C%DA%A9-%D8%B3%DB%8C%D9%86%D9%85%D8%A7%D8%AA%DB%8C%DA%A9-%D9%85%D8%B9%DA%A9%D9%88%D8%B3-aw479vwk2kri</link>
                <description>فرض کنید یه بمب در حال ترکیدن و یه بازوی رباتیکی داریم. به دلیل موقعیت خطرناک، ربات را به محل بمب می فرستیم و انتظار داریم که بازوی روی ربات با فشار دادن دکمه ای تو یه مختصات خاص بمب مارو خنثی کند.بازوی رباتیکی تیم KN2Cاگر یک انسان مامور خنثی کردن بمب باشد، ابتدا به منطقه ی مورد نظر می رود. بعد از رسیدن، بدون اینکه فکر کند که هر کدام از مفصل های دستش را در چه جهتی حرکت بدهد تا انگشتانش به دکمه‌ی خنثی‌سازی بمب برسند و بدون محاسبات ریاضی می تواند دکمه را فشار بدهد. اما این مساله در مورد بازوی ربات بسیار متفاوت است. بازو‌های رباتیکی انواع مختلفی دارند و از دو بخش اصلی مفصل (Joint) و  بازو (Arm) تشکیل می‌شوند. در ربات ها عموما هر یک از مفصل‌ها (Joints) بوسیله‌ی یک موتور به صورت جداگانه کنترل می‌شود و این موضوع شروع مشکلات کنترل حرکت بازوی ربات است! در رباتیک می توان با استفاده از معادلات سینماتیک      (Kinematic Equations)، انتهای بازوی ربات یا End Effector (شکل زیر) را به صورت دلخواه و بهینه تکان داد و دکمه‌ی نجات دهنده را فشرد.End Effector of KN2C Robotic Armسینماتیک یکی از شاخه های مکانیک است. سینماتیک به بررسی حرکت اجسام می پردازد بدون آن‌که به جرم و نیروهای وارده بر جسم بپردازد. سینماتیک بازو به دو گروه کلی تقسیم می‌شود: سینماتیک مستقیم (Forward Kinematics)  و سینماتیک معکوس(Inverse Kinematics) که هر دوی آن‌ها برای خنثی سازی بمب نیاز است.سینماتیک مستقیمدر صورتی که با استفاده از زاویه های هر مفصلِ بین دو بازو و طول هر بازو به مختصات انتهایی بازوی ربات (End Effector)  برسیم، از سینماتیک مستقیم استفاده کرده ایم. در این حالت می توان تصور کرد که مختصات کروی ما به مختصات دکارتی تبدیل شده است.سینماتیک معکوسدر طرف دیگر اگر با تنظیم هر کدام از مفصل های بازو به زاویه‌ی دلخواه، حرکات ربات و End Effector را کنترل کنیم تا به صورت افقی، عمودی و یا ترکیبی از این دو حرکت کند از سینماتیک معکوس استفاده کرده ایم. در این معادلات با استفاده از مختصات دکارتی نقطه ی دلخواه برای End Effector  ‌به مختصات کروی هر کدام از مفصل ها می رسیم. حرکات عمودی و افقی بازوی رباتیکی با استفاده از سینماتیک معکوسبنابراین می تونیم اول با سینماتیک مستقیم و دانستن زاویه‌ی مفصل‌های بازو مختصات دکارتی انتهای بازو را پیدا کنیم. سپس با استفاده از الگوریتم های عجیب و غریب رباتیکی، مکان دکمه‌ی نجات دهنده را پیدا کنیم. در مرحله‌ی بعد به کمک مقداری الگوریتم عجیب و غریب‌تر مسیریابی، مسیر لازم برای رسیدن به دکمه‌ی نجات دهنده را برای ربات تعریف کنیم. در انتها معادلات سینماتیک معکوس به کمکمون می آیند و برای طی این مسیر زاویه‌ی ‌هر مفصل رو پیدا می کنند. ربات هم این زاویه های به دست آمده را به موتور مفصل‌های ربات اعمال می‌کند و  به همین صورت دنیای ما به کمک رباتیک نجات پیدا می کند.اگر این نوشته را دوست داشتید و علاقه‌مند هستید بیشتر درباره این موضوعات بخوانید انتشارات KN2C   را دنبال کنید و به این صفحه هم سری بزنید. </description>
                <category>KN2C</category>
                <author>نازنین رضائی</author>
                <pubDate>Tue, 25 Aug 2020 17:17:48 +0430</pubDate>
            </item>
                    <item>
                <title>ایالات متحده ورونوی!</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D8%A7%DB%8C%D8%A7%D9%84%D8%A7%D8%AA-%D9%85%D8%AA%D8%AD%D8%AF%D9%87-%D9%88%D8%B1%D9%88%D9%86%D9%88%DB%8C-he6eppkxrgba</link>
                <description>برای همه ما پیش می‌آید که برای انجام کاری به اداره پست مراجعه کنیم. حال اگر در اطراف شما چندین اداره پست وجود داشته باشد کدام یک را انتخاب می‌کنید؟در دنیای علوم کامپیوتر این دسته از مسائل به کمک الگوریتم‌های تقسیم صفحه حل می‌شوند. یکی از معروف‌ترین و پرکاربرد ترین این الگوریتم‌ها، الگوریتم ورونوی (voronoi) است.در این الگوریتم مجموعه از گره‌ها را روی صفحه‌ای در نظر می‌گیریم. سپس آن صفحه را به زیرصفحه‌های کوچکتری تقسیم می‌کنیم به طوری که هر زیر صفحه تنها یک گره دربر داشته باشد. فاصله‌ی هر نقطه‌ی تصادفی در زیرصفحه تا گره آن زیر صفحه از فاصله‌ی آن نقطه تا تمامی گره‌ها کمتر است.حال بیایید رو مسئله اداره پست این الگوریتم را پیاده کنیم.نقشه‌ی جغرافیایی محل زندگی و ادارات پستدر این عکس نقشه‌ی جغرافیایی با استفاده از الگوریتم ورونوی به تعدادی زیر صفحه تقسیم شده است. در این مثال ادارات پست همان گره‌های ما هستند. همانطور که مشاهده می‌کنید محل زندگی فرد در ناحیه‌ی زرد قرار گرفته‌است. پس نزدیک‌ترین اداره پست پیدا شد!حالا مثال دیگری را در نظر بگیرید. فرض کنید صاحب یک غذاخوری زنجیره‌ای تصمیم دارد شعبه‌ی جدیدی در شهر افتتاح کند. چطور محله‌ی مناسبی برای اینکار پیدا کند؟نقشه‌ی جغرافیایی شعب غذاخوری زنجیره‌ایبرای اینکار نیاز است تا محلی را پیدا کند که فاصله‌ی آن تا اولین شعبه غذاخوری بیشینه باشد. برای حل این مسئله دوباره به علوم کامپیوتر مراجعه می‌کنیم.الگوریتم مثلث بندی دلانی (Delaunay triangulation) یکی از الگوریتم‌هایی است که به کمک نمودار ورونوی قابل پیاده‌سازی است. پس در مرحله اول نمودار ورونوی را رسم می‌کنیم.رسم نمودار ورونویی روی نقشه جغرافیاییشعب غذاخوری نقش گره‌های الگوریتم را بازی می‌کنند و نمودار ورونوی توسط مرز شهری محدود شده است. در مرحله‌ی بعدی هر گره را به گره‌های همسایه‌اش که توسط ورونوی مشخص شده وصل می‌کنیم.رسم نمودار مثلث بندی دلانی روی نقشه جغرافیاییبه این ترتیب ما توانستیم مثلث بندی دلانی را روی مسئله پیاده‌سازی کنیم. اما هنوز جواب مسئله پیدا نشده است. برای پیدا کردن پاسخ نهایی نیاز داریم تا از خواص هندسی این الگوریتم استفاده کنیم. همانطور که می‌دانید سه راس هر مثلث بر روی یک دایره قرار می‌گیرند که به آن دایره محیطی گفته می‌شود. اگر دایره محیطی تمام مثلث‌ها را رسم کنیم می‌توانیم دایره‌ای را که شعاع آن بیشینه است پیدا کنیم. مقدار شعاع دایره برابر است با فاصله مرکز دایره تا نقطه‌ای روی محیط دایره (و همینطور شعب غذاخوری!).رسم دایره‌ محیطی مثلث های دلانیبنابراین مرکز دایره‌ای که شعاع بیشینه دارد بهترین مکان برای ساخت شعبه جدید است. چون بیشترین فصله را تا اولین شعبه‌ی غذاخوری زنجیره‌ای (شعاع دایره) دارد.محل ساخت شعبه جدیدبه همین ترتیب می‌توانیم الگوریتم‌های تقسیم صفحه را روی نقشه‌های جغرافیایی دیگر پیاده کنیم. اگر مرز بندی ایالات یا استان ها به جای اینکه بر اساس منافع سیاسی و دلایل تاریخی باشد بر اساس ورونوی انجام شود، دسترسی‌ها بسیار آسان‌تر خواهد بود. اما ممکن است تقسیم‌بندی تفاوت‌های زیادی را ایجاد کند. برای مثال این کار را روی نقشه‌ی ایالات متحده آمریکا انجام می‌دهیم:ایالات متحده ورونوی!در این نمودار مراکز ایالات به عنوان گره‌ها در نظر گرفته شده‌اند. با اعمال این تغییرات Manhatan در ایالت New Jersy قرار می‌گیرد زیرا به Trenton نزدیک‌تر است تا Albany. یا Chicago در ایالت Wisconsin قرار می‌گیرد زیرا به Madison نزدیکتر است تا Springfield. دو الگوریتم معرفی شده کاربرد‌های بسیاری دارند و در علوم رباتیک هم استفاده شده‌اند. از نمونه‌های پیاده‌سازی الگوریتم میتوان به بیس agent2d از لیگ شبیه‌سازی دوبعدی فوتبال اشاره کرد. اگر راجع به این لیگ چیزی نمی دانید می‌توانید در مورد آن در ویرگول یا سایت rcss.ir بخوانید.اگر این نوشته را دوست داشتید و علاقه‌مند هستید بیشتر درباره این موضوعات بخوانید انتشارات KN2C را دنبال کنید و به این صفحه هم سری بزنید.منبع عکس‌ها : یوتیوب</description>
                <category>KN2C</category>
                <author>Maryam Teimouri</author>
                <pubDate>Sat, 22 Aug 2020 19:54:33 +0430</pubDate>
            </item>
                    <item>
                <title>ناوبری با دوربین</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D9%86%D8%A7%D9%88%D8%A8%D8%B1%DB%8C-%D8%A8%D8%A7-%D8%AF%D9%88%D8%B1%D8%A8%DB%8C%D9%86-hv9vjvdbmvc9</link>
                <description>هر موقع صحبت از ناوبری و یا مکان یابی یه شی، ربات و یا هر چیزی میشه اکثرمون یاد GPS میوفـتیم. خب GPS ها معمولا خیلی دقیق هستن ولی یه مشکل بزرگی که دارن برای محیط های داخل ساختمون یا به اصطلاح indoor مناسب نیستن و نمیتونن اطلاعات درستی بهمون بدن و کار نمیکنن. بجاش میتونیم از دوربین استفاده کنیم! و با پیاده سازی الگوریتم های optical flow رو تصاویر، سرعت و جابجایی جسم رو در بیاریم. حالا optical flow این وسط چیه؟!یه تصویر ساده از نحوه کارکرد الگوریتم optical flowخب میدونیم هر تصویری از یه تعداد مشخص پیکسل تشکیل شدن و با توجه به نوع تصویر که سیاه سفید باشه یا رنگی، هر کدوم از اون پیکسل ها خودشون از یه تعدادی کانال (RGB و یا Grayscale) تشکلیل شدن.کاری که الگوریتم optical flow انجام میده اینه که بیاد فریم به فریم تصویر رو از دوربین بگیره و جابجایی و یا حرکت پیکسل هارو تشخیص بده و همچنین بتونه سرعت تغییرات رو بهمون بگه. تصویر بالا رو نگاه کنید! مثلا تو فریم اول فقط نور قرمز رنگ 1 تو تصویر باشه و در فریم بعدی نور قرمز بره تو موقعیت 2 حالا الگوریتم optical flow تشخیص میده این جابجایی رو و همچنین میتونه بهمون بگه که با چه سرعتی این جابجایی رخ داده!این الگوریتم کاربرد های متنوعی داره که یکیش در ربات های پرنده هستش.حفظ موقعیت مکانی ربات پرنده با optical flowیکی از چالش های ربات های پرنده اینه که بتونه موقعیت خودشو تو پرواز حفظ کنه(position hold)          یعنی یهو تو درو دیوار نره! کاری که میشه انجام داد استفاده از دوربین و اجرای الگوریتم optical flow روی اون هستش.با اینکار ما سرعت پرنده رو داریم و اگه ربات در هوا جابجا بشه سرعت و جابجایی رو به ما اعمال میکنه. که ما هم میتونیم با اطلاعاتی که از سرعت و جابجایش میده موقعیت ربات رو کنترل کنیم. البته اینم بگم که  حتما نباید دوربین گذاشت و الگوریتم رو روش اجرا کرد، از سنسور های optical flow هم میشه کمک گرفت که خودشون همه کارو انجام میدن.البته این نکته رو نباید فراموش کنیم که سطح زمین هم بایستی دارای feature (دارای رنگ ها و یا اشکال متنوع)باشه تا الگوریتم به خوبی کار کنه.راه های دیگه ای هم برای مکان یابی و ناوبری شی و یا ربات وجود داره که الگوریتم optical flow  فقط یدونش بود.</description>
                <category>KN2C</category>
                <author>رضا گنابادی</author>
                <pubDate>Tue, 18 Aug 2020 17:50:24 +0430</pubDate>
            </item>
                    <item>
                <title>درک مکانیسم کنترل و حرکت کوادکوپتر ها</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%DA%A9%D9%88%D8%A7%D8%AF-%DA%A9%D9%88%D9%BE%D8%AA%D8%B1-%DA%86%DB%8C%D9%87-%D9%88-%DA%86%D9%87-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%DA%A9%D9%84%DB%8C-%DA%86%D9%87-%D8%AC%D9%88%D8%B1%DB%8C-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C-%DA%A9%D9%86%D9%87-dwvl5ksouaqg</link>
                <description>کلمه ی کوادکوپتر از دو کلمه ی کواد + کوپتر تشکیل شده است. که کلمه ی کواد به معنی چهارگانه و کوپتر هم به صورت عام به معنی پرنده است. پس به صورت کلی کوادکوپتر یعنی یک پرنده ی چهار موتوره. این پرنده ها برای کاربرد های فیلمبرداری، نقشه برداری، نظامی، حمل و نقل و... استفاده می شوند و از مزیت های اصلی آنها نسبت به پرنده هایی مثل هواپیما و هلیکوپتر می توان به مکانیک ساده، قدرت مانور دهی بالا و یک جا ایستادن (هاور کردن) اشاره کرد.کواد کوپتر سایز کوچک ساخته شده توسط تیم kn2cاحتمالا کوادکوپتر ها و نحوه ی مانور دادن آن ها را از قبل دیده اید.در این نوشته قصد داریم به کمک چند مفهوم ساده ی ریاضی نحوه حرکت کوادکوپتر ها را ترسیم کنیم.برای درک وضعیت قرار گیری  این پرنده نسبت به زمین ابتدا باید مفهوم زاویه های اویلری را بشناسیم.فرض کنید در دستگاه مختصات دکارتی هستیم. یک دستگاه مرجع در نظر می گیریم حال دستگاه ثانویه ای را تصور کنید که مبدا آن روی مبدا دستگاه مرجع است ولی نسبت به آن چرخیده است.دستگاه مرجع و دستگاه چرخش یافته در مقایسه با همبرای نشان دادن این چرخش تنها به یک متغیر نیاز داریم و این همان زاویه ی Θ یعنی زاویه ی بین محور x دستگاه اولیه و ثانویه است.اما حالا همین شرایط را برای دو دستگاه سه بعدی که نسبت به هم چرخیده اند فرض کنید. اینجا برای اینکه همه ی حالت ها و زوایای چرخش دو دستگاه را نسبت به هم پوشش دهیم به سه متغیر نیاز داریم که به آن ها pitch ،roll و yaw گفته می شود.در واقع این سه وضعیت چرخش دستگاه ثانویه را که می تواند یک هواپیما یا یک کوادکوپتر باشد نسبت به دستگاه مرجع به صورت یکتا نشان می دهد.نمایی از زوایای pitch ،roll و yawحالا که حسی نسبت به این سه زاویه پیدا کردیم به بررسی خود کوادکوپتر می پردازیم.اول یک شکل از بالا از کوادکوپتر و همچنین جهت چرخش پره های آن ببینیم که این برای مفاهیم بعدی به دردمان می خورد.شِمایی ساده از یک کواد کوپتر و جهت چرخش پره هافرض کنید سرعت زاویه ای هرکدام از موتور های 1 تا 4 را با w1 تا w4 معرفی کنیم.اول سراغ نیروی بالابر پرنده می رویم که برای ایجاد کردن نیروی بالابر باید به w1 تا w4 یک مقدار ثابت مثل T اضافه کنیم.اگر می خواهیم به pitch پرنده اضافه کنیم یعنی دماغه ی آن را پایین بدهیم باید مقداری مثل P را از w1 و w3 کم کنیم و همچنین به w2 و w4 اضافه کنیم. اگر خواستیم دماغه بالا رود به راحتی عدد P را منفی می کنیم.حالا roll را بررسی می کنیم. اگر بخواهیم این زاویه را زیاد کنیم (به صورت شهودی یعنی اینکه سمت راست پرنده پایین می رود و سمت چپش بالا می آید) باید مقداری مثل R را از سرعت موتور های راستی یعنی w1 و w4 کم کنیم و به موتور های چپی یعنی w3 و w2 اضافه کنیم.در نهایت به بررسی yaw می پردازیم. زیاد شدن این زاویه به صورت شهودی یعنی اینکه پرنده دور خودش می چرخد. باید بدانید که همان طور که در بحث نیرو، عمل و عکس العمل داریم در چرخش هم مشابه این امر وجود دارد. یعنی این که وقتی موتور 1 پادساعتگرد می چرخد عکس العملش باعث می شود بدنه پرنده ساعتگرد بچرخد و ما از همین عکس العمل استفاده می کنیم تا بتوانیم yaw کوادکوپتر را عوض کنیم. پس برای زیاد کردن yaw مقدار Y را از w3 و w4 کم می کنیم و به w1 و w2 اضافه می کنیم.خلاصه ی این توضیحات را در این شکل ببینیم:شکلی از تاثیر کم و زیاد کردن دور موتور ها در حالات مختلفخلاصه ای از معادلاتی که توضیح داده شد ببینیم:خلاصه معادلات دور موتور های کوادکوپترهمون طور که می بینید این چهار معادله که ظاهر ساده ای هم دارند نشان می دهند که مثلا در تراست (نیروی بالابر) فقط جمع  نیروی چهار موتور مطرح است که اگر w1 تا w4 را با هم جمع بزنیم به 4T می رسیم این یعنی سه پارامتر دیگه(P ،R و Y) روی این نیرو اثری ندارند و فقط باعث چرخش پرنده می شوند.تا الان شهودی راجع به این که دور موتور های کوادکوپتر چه باشند پیدا کردیم. حالا به بررسی این که کوادکوپتر ها چه طور حرکت می کنند، می پردازیم. اولش بگوییم که خود کوادکوپتر پایدار نیست و مدام نیاز دارد که کنترل بشود تا بتواند خوب پرواز کند. وظیفه ی این کنترل بر عهده ی فلایت کنترلر است. که با سنسور های خودش زاویه های pitch ،roll و yaw پرنده را اندازه می گیرد و مدام محاسبه می کند که عدد های P ،R و Y چه باشند تا زاویه های pitch ،roll و yaw پرنده ثابت بماند و آنی بشود که به فلایت کنترلر دستور داده شده. پس الان فرض می کنیم که زاویه ی پرنده توسط فلایت کنترلر، کنترل شده و همانی شده که ما می خواهیم پس ما تا الان سه خواسته که همان زوایای pitch ،roll و yaw مطلوب هستند داریم. حال  عدد T باقی می ماند که آن هم خود مستقیم به فلایت کنترلر می فرستیم پس با T شد چهار پارامتر که با استفاده از یک دسته مثل دسته های بازی این عدد ها به فلایت کنترلر منتقل می شوند. شکل زیر نشان دهنده ی این توضیحات روی دسته های رایج کوادکوپتر هاست:شمای کلی از یک دسته ی رایج برای کوادکوپتر ها در نهایت شکل زیر مشخص می کند که پرنده ی ما چه طور سرعت افقی می گیرد:شمایی از حرکت افقی کوادکوپترهمان طور که می بینید نیروی وزن با مولفه ی عمودی thrust (که از جنس نیروست و رابطه ی مستقیم با 4T دارد که این رابطه به ویژگی های پره مربوط است).خنثی می شود و مولفه ی افقی thrust باعث شتاب گرفتن پرنده در راستای افقی می گردد که با motion در عکس نشان داده شده است.پس کلا ما می توانیم این پرنده را در مختصات x,y,z جا به جا کنیم و آن را در این نقاط ثابت نگه داریم یعنی بردار سرعت برایند پرنده صفر می شود. این امری است که در خیلی از پرنده ها مثل هواپیما های مسافری امکان پذیر نیست.(هواپیمای مسافری امکان هاور کردن ندارد.)در نهایت یادگرفتیم که به صورت کلی کوادکوپتر ها چه طور حرکت می کنند و با مفاهیم و مقدمات اولیه ای  آشنا شدیم تا بتوانیم بعدا از آنها استفاده کنیم و خودمان قسمت هایی از کد های فلایت کنتلر را بنویسیم.</description>
                <category>KN2C</category>
                <author>hassanpourmohammad64</author>
                <pubDate>Wed, 12 Aug 2020 00:11:22 +0430</pubDate>
            </item>
                    <item>
                <title>از نظر  آقای کالمن دقت بهتر است یا صحت ؟</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D8%A7%D8%B2-%D9%86%D8%B8%D8%B1-%D8%A2%D9%82%D8%A7%DB%8C-%DA%A9%D8%A7%D9%84%D9%85%D9%86-%D8%AF%D9%82%D8%AA-%D8%A8%D9%87%D8%AA%D8%B1-%D8%A7%D8%B3%D8%AA-%DB%8C%D8%A7-%D8%B5%D8%AD%D8%AA-zqadmobuvamh</link>
                <description>در بسیاری از سیستم‌ها نیاز است که سنسورهایی برای فیدبک کنترلر استفاده شود که علاوه بر دقت ،دارای صحت خوبی باشند. در اینصورت  کنترلر در بهترین حالت کار می‌کند اما متأسفانه اینگونه سنسورها بسیار گران‌قیمت می‌باشند. به همین دلیل می‌توان به کمک الگوریتم‌هایی مثل کالمن با هزینه کمتر دقت و صحت را با هم داشته باشیم.در خیلی از مواقع بعضی از سنسورها دقت خوبی دارند و بعضی از سنسورها صحت خوب .  سنسوری که هم دقت  و صحت خوبی داشته باشد خیلی گران قیمت است  به همین دلیل اگر بتوان از طریق یک الگوریتمی یک سنسوری که دقت خوبی دارد  با یک سنسوری که صحت خوبی دارد ترکیب شود  در این صورت می‌توان  دقت وصحت  را با هم داشته باشیم  خیلی از لحاظ هزینه به‌صرفه هست به همین دلیل این کار در صنعت خیلی مورد استقبال قرار گرفته  اما یک سری مشکلات را هم به همراه خواهد داشت  این‌که بتوان دو سنسور را روی سیستم قرار بدهیم و یا اینکه دو سنسور با دقت و صحت خوب را داشته باشیم .یکی از موقعیت‌هایی که به سنسور زاویه نیاز داریم در بازوهای چند درجه آزادی هست که در اینجا برای آنکه بهتر این الگوریتم را درک کنیم نتایج اولیه شبیه‌سازی روی بازوی 7 درجه آزادی را هم در انتها مشاهده خواهیم کرد.بازوی 7درجه آزادی که 3 joint اول آن در تصویر قابل مشاهده است. حال اینکه از چه الگوریتمی استفاده شود یک چالش است چون روش‌های گوناگونی برای ترکیب کردن وجود دارد . در اینجا از فیلتر کالمن استفاده خواهیم کرد چون یکی از روش‌های متداول و بهینه در دیتا فیوژن، کالمن می‌باشد که این الگوریتم نیز چند روش دارد به‌عنوان‌مثال می‌توان با داشتن مدل سیستم و یک سنسور به اصلاح پارامتر موردنظر پرداخت و درواقع مقدار پارامتر را ازلحاظ دقت و صحت بهتر کرد . یکی دیگر از روش‌های متداول کالمن استفاده از چند سنسور می‌باشد که در اینجا از این روش استفاده شده است .در این روش اصطلاحاً از دو سنسور که یک پارامتر هم‌جنس و هم‌درجه را اندازه می‌گیرند استفاده نمی‌شود  یعنی از دو سنسور که هر دو، سرعت زاویه‌ای رو از یک منبع حساب می‌کنند کاربرد ندارد . ما در اینجا از یک سنسور که مولتی ترن باشد زاویه را به دست می‌آوریم و از سنسور دیگر که انکودر باشد سرعت زاویه‌ای را       به دست می‌آوریم . نکته‌ حائز اهمیت این است که در اینجا از مولتی ترن استفاده‌شده است که   دقت خوبی نسبت به انکودر ندارد ولی صحت خوبی دارد اگر بخواهیم از انکودر به‌عنوان سنسور زاویه استفاده کنیم چون انکودر مطلق نیست برای همین تنها تغییرات زاویه را می‌توان به‌دقت خوبی به دست آورد ولی صحت خوبی دارد . می‌توانیم با استفاده از مشتق گرفتن از دیتای زاویه انکودر به‌سرعت زاویه‌ای برسیم که می‌توانیم با کالمن کردن آن با مولتی ترن زاویه را به دست آوریم .اگر بخواهیم  یه نگاه ساده و سطحی به فیلتر کالمن داشته باشیم میشه اینجوری گفت که فیلتر کالمن یک تخمین‌گر بازگشتی است، یعنی تنها تخمین حالت قبل و مشاهده فعلی برای محاسبه تخمین حالت فعلی لازم است. برعکس بسیاری از تخمین‌گرها نیازی به نگهداری اطلاعات تخمین‌ها و مشاهدات تمام حالات قبل نیست. فیلتر کالمن توسط یک معادله بیان می‌شود اما معمولاً آن را به دو بخش پیش‌بینی و آپدیت تفکیک می‌کنند. در گام پیش‌بینی با استفاده از تخمین‌های حالات در بازه‌های زمانی پیشین، تخمینی برای حالت فعلی بدست می‌آید. این تخمین پیش‌بینی شده همان دانش پیشینی است زیرا تنها به تخمین‌های قبلی وابسته است و هیچ مشاهده‌ای در حالت فعلی سیستم را در برنمی‌گیرد. در گام آپدیت تخمین پیشین با مشاهدات فعلی ترکیب می‌شود تا تخمینی از حالت فعلی سیستم ارائه کند. معمولاً این دو گام متناوباً تکرار می‌شوند، به این معنی که پیش‌بینی تا مشاهده بعدی انجام می‌شود و سپس با استفاده از مشاهدات فعلی آپدیت انجام می‌شود.محاسبات فیلتر کالمندر اینجا یه سری پارامتر ها وجود دارند که اگر علاقه مند هستید میتونید دقیق تر کالمن فیلتر رو از اینجا مطالعه کنید ولی به طور مثال دو پارامتر مهم اینجا Q , R هستند  که میشه به طور ساده اینجوری گفت :                           R : کوواریانس پارازیت‌هایی که مشاهده می‌شود به‌عبارت‌دیگر در اینجا می‌توان واریانس سنسور را در نظر  گرفت چون چیزی که ما مشاهده می‌کنیم دیتای سنسور می‌باشد.                                                             Q : کوواریانس پارازیت فرایندطبق صحبت‌هایی که در بالا شد ابتدا ما نیاز داریم از سنسورهایمان دیتا جمع کنیم تا بتوانیم شبیه‌سازی را انجام بدهیم . برای دیتا جمع‌کردن به دو نوع دیتا نیاز داریم اول اینکه بتوانیم واریانس سنسور را از روی آن بیرون بیاوریم و دوم این‌که بتوانیم کالمن را پیاده و نتایج آن‌ها را مقایسه کنیم . برای اینکه بتوانیم واریانس سنسور را به دست بیاوریم چند روش وجود دارد که یکی از آن‌ها این است که سنسور را در حالتی که تغییری روی آن اعمال نمی‌شود قرار دهیم و دیتایی که سنسور به ما می‌دهد را ذخیره می‌کنیم . در اینجا ما از مولتی ترن در حالتی که شفت آن را تغییر نمی‌دهیم دیتا گرفته‌ایم که به‌صورت زیر هست :دیتای مولتی ترن در حالتی که شفت تغییر نمی‌کندحال اگر از نمونه 155 تا 210 را بعنوان مثال   بعد از پیاده سازی الگوریتم کالمن  نمودار  را موردبررسی قرار دهیم :سیگنال قرمز: دیتای مولتی ترن / سیگنال آبی : دیتای زاویه انکودر  / سیگنال سیاه:  دیتای حاصل از کالمندر این شکل  اتفاقی که می‌خواستیم افتاد اگر به دیتایی که به رنگ سیاه هست نگاه کنید این دیتا  دقت انکودر را دارد اگر خوب نگاه کنیم می‌توان پله پله بودن آن را دید که شبیه انکودر می‌باشد . اگر مولتی ترن را نگاه کنیم (دیتایی که به رنگ قرمز هست)خواهیم دید که خیلی نویزی هست اما صحت خوبی دارد و سیگنال کالمن شده تقریباً سعی دارد این صحت را به دست آورد . باید در اینجا به این نکته اشاره بشه که درسته که در اینجا برای مقایسه از دیتای زاویه انکودر استفاده شده است ولی برای محاسبات کالمن طبق گفته اول از دیتای سرعت زاویه‌ای آن استفاده شده است . این اختلافی که بین دیتای کالمن و انکودر مشاهده می‌شود در عمل خیلی ناچیزه زیرا قرار است به‌گونه‌ای ازنظر مکانیکی این دو به هم متصل شوند که هر 10 دور مولتی ترن به یک دور موتور تبدیل می‌شود این یعنی اگر الان ماکزیمم اختلاف ما 5 درجه هست در آنجا به 5/10 یا 0.5 درجه تبدیل می‌شود البته با توجه به کاربرد باید دقت را تنظیم نمود که در اینجا  دقت خیلی خوبی هست  و طبق الگوریتم درنهایت همگرا می‌شود .</description>
                <category>KN2C</category>
                <author>Mohammad mahdi Nazeriardakani</author>
                <pubDate>Mon, 10 Aug 2020 15:41:23 +0430</pubDate>
            </item>
                    <item>
                <title>آکتیو در مقابل متلب</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D8%A2%DA%A9%D8%AA%DB%8C%D9%88-%D8%AF%D8%B1-%D9%85%D9%82%D8%A7%D8%A8%D9%84-%D9%85%D8%AA%D9%84%D8%A8-ob2vwz2pxkm8</link>
                <description>احتمالا هرکسی که رشته مهندسی خوانده در مواقعی نیاز پیدا کرده تا از نرم افزار متلب استفاده کند. متلب یک نرم افزار مهندسی برای انجام محاسبات عددی است که به دلیل توابع بسیار زیاد و کاربردی که دارد در میان مهندسین و هم‌چنین اساتید دانشگاه (!) بسیار محبوب است. متلب برای هوش مصنوعی (یادگیری ماشینی)، پردازش تصویر، پردازش سیگنال، مخابرات، حل دستگاه معادلات، حل معادلات دیفرانسیل جزئی (PDE)، کنترل و بسیاری از علوم دیگر کتاب‌خانه مخصوص خود را دارد. از سوی دیگر، نرم‌افزار متلب بخشی تحت عنوان Simulink دارد که کار مدل‌سازی و شبیه‌سازی سیستم‌های مختلف (در زمینه‌های مختلف، مانند کنترل، الکترونیک، هوافضا و...) را انجام می‌دهد. زبان این نرم افزار جزو زبان‌های برنامه نویسی سطح بالا محسوب می‌شود (ینی به زبان انسان نزدیک است) که پایه‌ی محاسبات آن بر اساس محاسبات جبری (ماتریس‌ها) است. اگر علاقه‌مند هستید درمورد متلب بیشتر بخوانید اینجا کلیک کنید.متلب در کنار همه‌ی این خوبی‌ها بدی‌هایی هم دارد. این نرم افزار ‌متن باز (open source) نیست و برای تهیه لایسنس آن باید مبلغ زیادی بپردازید. این در حالی است که نمی‌توان با یکبار پرداخت همه tool box های آن را تهیه کرد و برای هرکدام مبلغ جداگانه‌ای وجود دارد (البته این برای کشورهایی است که قانون کپی رایت در آن‌ها وجود دارد). شاید فک کنید چون سایت‌هایی وجود دارند که می‌توان نسخه‌ی کرک این نرم افزار را از آن‌ها دانلود کرد نیازی نیست که هزینه‌ای بپردازید اما سخت در اشتباهید! حجم نسخه ۲۰۱۹ این نرم افزار برابر با ۲۰گیگابایت است و این درحالی است که بعد از نصب مقدار زیادی از حافظه هارد سیستم را اشغال می‌کند. با وجود این مشکلات آیا می‌توان جایگزین مناسبی پیدا کرد؟یکی از نرم افزارهایی که می‌توان به عنوان جایگزین متلب از آن استفاده کرد آکتیو (octave) است. آکتیو برای تمامی سیستم عامل‌ها قابل دسترس بوده و متن باز است. یعنی برای استفاده از آن نیازی به لایسنس یا فایل کرک وجود ندارد. علاوه بر این آکتیو از دستورات و فایل های متلب پشتیبانی می‌کند و نیازی نیست که زبان و دستورات جدید یادبگیرید یا نیاز به تغییر پسوند فایل داشته باشید.حجم این نرم افزار بسته به نسخه‌ای که دانلود می‌کنید بین ۳۰۰ تا ۶۰۰ مگابایت متغیر است. به دلیل این حجم کم ممکن است تمامی پکیج‌های مورد نیاز در نسخه اولیه در دسترس نباشد اما با مراجعه به سایت آکتیو می‌توان پکیج مورد نیاز را دانلود کرده و با استفاده از command line آن را لود کرد.برای آکتیو رابط گرافیکی هم وجود دارد اما این نرم افزار از طریق command line قابل دسترسی و اجرا است و همین وجه تمایز بزرگی بین متلب و اکتیو است.امیدوارم از خواندن این متن لذت برده باشیددر کامنت‌ها منتظر نظرات شما هستم</description>
                <category>KN2C</category>
                <author>Maryam Teimouri</author>
                <pubDate>Thu, 06 Aug 2020 22:00:08 +0430</pubDate>
            </item>
                    <item>
                <title>هفته ملی رباتیک</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D9%87%D9%81%D8%AA%D9%87-%D9%85%D9%84%DB%8C-%D8%B1%D8%A8%D8%A7%D8%AA%DB%8C%DA%A9-zqh1zy6jgu4o</link>
                <description>طبق مصوبه وزارت علوم، از ۲۹ اردیبهشت به مدت یک هفته به عنوان هفته رباتیک نامگذاری شده است. به این مناسبت، نوشته‌ای درمورد رباتیک و مسابقات آن آماده کرده‌ایم. چندقیقه‌ای با ما همراه باشید.امروزه کمتر کسی پیدا می‌شود که واژه‌ی رباتیک به گوشش نخورده باشد. بوسیله این شاخه جذاب زندگی روز به روز برای ما انسان‌ها آسون تر میشود و با یه جستجوی ساده توی اینترنت دستاوردهایی از این رشته رو می بینیم که باعث میشه مغز آدم سوت بکشد.Sophia The Robotهیچ پیشرفت و دستاورد بزرگی بدون مشارکت و تلاش گسترده امکان پذیر نیست. در این مورد هم علاوه بر کارهای علمی دانشجویان در سراسر دنیا، هرساله تعدادی مسابقات برای معرفی این شاخه علمی و جذب دانش آموزان و دانشجویان در رده های سنی پایین تر برگزار می‌شود که معروف ترین و معتبر ترین این مسابقات ربوکاپ (RoboCup) هست.مسابقات رباتیک در دانشگاه MITایده ی این مسابقات اولین بار در سال ۱۹۹۲ توسط یکی از اساتید دانشگاه بریتیش کلمبیا مطرح شد و ۴ سال بعد به اجرا درآمد. آن‌ها تصمیم گرفتند با برگزاری مسابقات سالانه در سطح بین‌المللی به پیشرفت علوم هوش‌مصنوعی و رباتیک کمک کنند تا در سال ۲۰۵۰ تیم فوتبالیست منتخبی از ربات‌ها بتونن تیم منتخب انسان‌ها را شکست دهند.انسان‌ها vs ربات‌هابرای تبدیل این هدف بزرگ به قدم های کوچکتر، چالش‌های هدف اصلی میان چند لیگ مختلف تقسیم شد و به این ترتیب مسابقات ربوکاپ سالانه در لیگ‌های متعددی هم‌چون شبیه ساز دوبعدی فوتبال، ربات‌های امدادگر، ربات‌های فوتبالیست و ... برگزار می‌شود.ربات عمود پرواز تیم رباتیک KN2Cهمچنین مسابقات زیادی هرساله در سطح ملی برگزار میشود که از بین آن ها میتوان به ایران‌اپن، شیرازاپن و نصیرکاپ اشاره کرد.بازوی ربات امدادگر تیم رباتیک KN2Cآزمایشگاه رباتیک KN2C در سه زمینه‌ی ربات‌های امدادگر، ربات‌های پرنده و شبیه‌‌سازی دو بعدی فوتبال فعالیت می‌کند و هم‌چنین مقام‌های متعددی در سال‌های اخیر در سطح ملی و بین‌المللی بدست آورده است که می‌توان از بین آن ها به موارد زیر اشاره کرد:مقام دوم در مسابقات نصیرکاپ ۲۰۱۹ در لیگ شبیه سازی دوبعدی فوتبالمقام اول در مسابقات فیراکاپ ۲۰۱۹ در لیگ ربات عمودپرواز داخل سالنمقام سوم در مسابقات آسیا اقیانوسیه ۲۰۱۸ در لیگ ربات امدادگربهترین ارائه فنی در مسابقات آسیایی ۲۰۱۸ در لیگ شبیه سازی دو بعدی فوتبالمقام سوم در مسابقات شیراز اپن ۲۰۱۸ در لیگ شبیه سازی دوبعدی فوتبالمقام سوم ایران اپن در سال ۲۰۱۸ در لیگ ربات امدادگر و ربات عمود پرداز داخل سالن</description>
                <category>KN2C</category>
                <author>KN2C Robotics Team</author>
                <pubDate>Sat, 23 May 2020 18:43:44 +0430</pubDate>
            </item>
                    <item>
                <title>مسابقات فوتبال در دنیای دوبعدی به کمک هوش‌مصنوعی</title>
                <link>https://virgool.io/KN2CRoboticsTeam/%D9%85%D8%B3%D8%A7%D8%A8%D9%82%D8%A7%D8%AA-%D9%81%D9%88%D8%AA%D8%A8%D8%A7%D9%84-%D8%AF%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%AF%D9%88%D8%A8%D8%B9%D8%AF%DB%8C-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-%D9%87%D9%88%D8%B4%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-vpb341sb86v1</link>
                <description>مقایسه پنالتی در دنیای واقعی و دنیای دوبعدیاز زمان انقلاب صنعتی انسان‌ها همواره سعی کردند ماشین‌هایی بسازند که در دنیای واقعی زندگی رو برای ما آدم‌ها آسان‌تر کنند. این ماشین‌ها کم‌کم پیشرفت کردند و به ربات‌هایی تبدیل شدند که می‌توانستند به جای انسان فکر کنند. حالا با این همه توانایی، چرا به جای ما مسابقه ندند؟!این ایده برای اولین بار در سال ۱۹۹۲ توسط یکی از اساتید دانشگاه بریتیش کلمبیا مطرح شد و ۴ سال بعد به اجرا درآمد. افراد تصمیم گرفتند با برگزاری مسابقات سالانه در سطح بین‌المللی (RoboCup) به پیشرفت علوم هوش‌مصنوعی و رباتیک کمک کنند تا در سال ۲۰۵۰ تیم منتخبی از ربات‌ها بتونن تیم منتخب انسان‌ها را شکست دهند.تیم منتخب انسان‌ها vs تیم منتخب ربات‌هااما از آنجایی که این هدف خیلی بزرگ بود مجبور شدند آن را به تعدادی زیرشاخه تبدیل کنند و لیگ های چالش برانگیز و جذاب روبوکاپ ایجاد شدند.به ترتیب از راست به چپ :‌ ربات صنعتی، ربات فوتبالیست سایز کوچک و ربات امدادگرهدف سال ۲۰۵۰ نیازمند علوم متفاوتی هست که در بین آن‌ها علوم‌کامپیوتر و هوش‌مصنوعی به نسبت سرعت پیشرفت بالاتری دارند. بنابراین دانشمندان این حوزه تصمیم گرفتند یک لیگ تمام نرم‌افزاری همراه با تمام ویژگی‌های فوتبال واقعی ایجاد کنند تا افراد علاقه‌مند به این علوم درگیر محدودیت های مکانیکی و برقی-کنترلی نشوند. به این ترتیب لیگ شبیه‌سازی دوبعدی فوتبال متولد شد!!در این پلتفرم، دو تیم ۱۱ نفری به مدت ۱۰ دقیقه (در صورتی که کار به وقت اضافه و پنالتی نکشد!) در زمین فوتبال باهم رقابت می‌کنند. تیم ها همانند فوتبال واقعی یک مربی دارند که در ابتدای مسابقه،‌ سرور ۲۴ بازیکن یکسان در اختیار آن‌ها قرار می‌دهد. مربی بر اساس ویژگی بازیکن‌ها،‌ ۱۱ تای آن‌ها را انتخاب می‌کند و آن‌ها را در زمین بازی می‌چیند.مانیتور لیگ شبیه سازی دوبعدی فوتبالبازیکن‌ها با هم متفاوت هستند و هر یک ویژگی منحصر به فردی دارند؛ برای مثال برخی بازیکن ها سایز بزرگتری دارند. در نتیجه اگر توپ به آن‌ها نزدیک شود راحت‌تر تکل میزنند (ممکن است با این کار کارت زرد بگیرند!). یا برخی دیرتر خسته می‌شوند و در طول بازی می‌توانند تعداد حملات بیشتری را روی دروازه‌ی حریف ایجاد کنند.مانند انسان ها در دنیای واقعی، این بازیکن‌ها هریک به طور مستقل فکر می‌کنند و از طریق اشاره‌کردن و صحبت کردن می‌توانند اطلاعات رو باهم به اشتراک بگذارند. مربی هم می‌تواند در طول مسابقه با بازیکن‌ها صحبت کند و آن‌ها را راهنمایی کند (البته محدودیت کاراکتر برای صحبت کردن وجود دارد و باید مواظب باشند صداشون نگیرد!).مسابقات این لیگ مثل فوتبال واقعی غیرقابل پیش‌بینی است و هیچ دو بازی شبیه به هم نیستند. خطایی که در دید بازیکن‌ها وجود دارد و نویزی که از طرف محیط روی اعمال آن‌ها اعمال می‌شود باعث بوجود آمدن این ویژگی در مسابقات فوتبال دوبعدی است.در این شکل بازیکن شماره ۸ به هم تیمی خود، بازیکن شماره ۷، اطلاع می‌دهد که قرار هست توپ را به او پاس دهد. دایره های سبز دید بازیکن شماره ۸ از تیم را نشان می‌دهد که نسبت به واقعیت خطا دارد.مسابقات شبیه‌سازی دوبعدی فوتبال، هر ساله در رویدادهای بزرگ رباتیک کشور مانند مسابقات ایران‌اپن، شیرازاپن و نصیرکاپ برگزار می‌شود.در آخر اگر به این لیگ علاقه‌مند هستید معطل نکنید! سری به این سایت بزنید و یادگیری رو از همین الآن شروع کنید :) .</description>
                <category>KN2C</category>
                <author>Maryam Teimouri</author>
                <pubDate>Sun, 17 May 2020 19:29:28 +0430</pubDate>
            </item>
            </channel>
</rss>