<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های امیرحسین ودادی</title><link>https://virgool.ir/feed/@amirhosein.vedadi</link><description>دانشجوی کارشناسی ارشد مکانیک، محقق رباتیک و هوش مصنوعی</description><language>fa</language><pubDate>2026-11-11 10:51:19</pubDate><image><url>https://files.virgool.ir/upload/users/649963/avatar/VafiD8.jpeg</url><title>امیرحسین ودادی</title><link>https://virgool.ir/@amirhosein.vedadi</link></image><item><title>سربازی رو چی کار کنیم؟</title><link>https://virgool.ir/@amirhosein.vedadi/سربازی-رو-چی-کار-کنیم-tltjdellv7tc</link><description>سربازی !مخاطب این پست کسایی اند که معمولا آخرای تحصیل هستند و با معضل سربازی روبرو میشن. بعد به فکر این میفتن که چجوری ازش خلاص بشن یا حداقل با ضرر کمتری ردش کنن. تو این پست یه سری از روش‌هایی که در موردش اطلاعات دارم رو میخوام بگم تا شاید به چند نفری بیشتر این راه‌ها به گوششون بخوره (ممکنه همش درست نباشه که اگر میدونید تو کامنت ها بگید). البته منظورم گرفتن پروژه کسری خدمت و امریه است نه روش‌های معافی گرفتن و اینا. وقتی رفتم آموزشی، دیدم خیلی از بچه‌ها با اینکه میشه با پروژه کسری خدمت گرفت و یا حتی پروژه جایگزین گرفت آشنا نبودند و ناراحت کننده بود که باید وقت بیشتری این دوره رو با کمترین منفعت تحمل کنن. فقط دو تا نکته که جهت‌گیری ذهنی من حین نوشتن این مطلب رو بدونید:من مکانیک خوندم و شاید حرفام برای بچه‌هایی با رشته‌های غیر فنی خیلی دقیق نباشهمن با وزارت دفاع پروژه کسری داشتم و شاید حرفام برای ارگان‌های دیگه خیلی صادق نباشهپروژه کسری خدمتتو این روش شما با گرفتن حداکثر دو تا پروژه از ارگان‌های نظامی (وزارت دفاع، ارتش، سپاه و نیروی انتظامی) و انجام اون‌ها میتونید چند ماهی رو از خدمتتون کسر کنید. میزان این کسری میتونه تا ۱۲ ماه هم باشه. یعنی با گرفتن دوتا پروژه کل خدمتتون رو پوشش بده (البته آموزشی رو در هر صورت باید برید). پروژه‌ها معمولا در چند سطح انجام میشن:پروژه‌های مطالعاتی که در حد بررسی پژوهش‌های مختلف و یه جورایی تحقیق کردن در مورد مسائل مورد نیاز ارگان‌ها هست و معمولا بین ۴ تا ۶ ماه هم کسری میدن بهشون.پروژه‌های تحلیلی و شبیه‌سازی که توش معمولا به مدلسازی و تحلیل یه موضوع میپردازن و در صورت نیاز و امکان اون رو شبیه‌سازی میکنن. یعنی علاوه بر بررسی پژوهش‌ها و تحقیق کردن باید خودتون هم یه تحلیل و شبیه‌سازی روی مسئله داشته باشید. پروژه‌های نرم‌افزاری هم معمولا تو این دسته قرار میگیرن. این پروژه‌ها هم بین ۷ تا ۹ ماه میتونن کسری بگیرن.پروژه‌های پیاده‌سازی و ساخت که توش باید نمونه‌ اولیه‌ای از پروژتون رو هم به مرحله اجرا برسونید و این پروژه‌ها میتونن تا ۱۲ ماه هم کسری بگیرن.برای گرفتن پروژه کسری خدمت میشه از اول زمانی که شروع به خوندن مقطع کارشناسی ارشد یا دکتری میکنید تا نهایت ۶ ماه بعد از فارغ‌التحصیلی، اقدام کرد. معمولا باقیمانده خدمتتون هم با همون ارگانی که ازش پروژه اولتون رو گرفتید میفته و همونجا خدمت میکنید.پروژه جایگزین خدمتتو این پروژه که به پروژه نخبگی هم معروف هست شما سربازیتون رو در قالب یه پروژه به مدت ۱۴ ماه انجام میدید (بدون در نظر گرفتن ۲ ماه آموزشی). برای گرفتن این پروژه‌ها باید حتما مقطع ارشد رو تموم کرده باشید و پس از اون درخواستش رو تو سامانه سینا بنیاد نخبگان ثبت کنید. برای گرفتن این پروژه باید یه حداقل امتیازی رو طبق این شیو‌ه‌نامه که برای طرح شهید صیاد شیرازی بنیاد هست داشته باشید. معیارهای امتیازیش هم فعالیت‌های آموزشی مثل رتبه کنکور و معدل تو دانشگاه و فعالیت های پژوهشی مثل مقاله و ایناست. امریهاین روشی هست که با داشتن کارشناسی هم میشه براش اقدام کرد. تو این روش شما مثل یه کارمند برای شرکت‌ها یا ارگان‌هایی که نیاز به سرباز دارند، دوره سربازی خودتون رو میگذرونید. یه روش دیگه هم کار کردن تو شرکت‌های دانش بنیان که یه سری شرایط رو داشته باشن، هست. چیزی که من شنیدم اینه که باید قبل از اعزامتون یه ۶ ماهی تو اون شرکت دانش بنیان براتون بیمه رد شده باشه و بعد از اون شرکت میتون درخواست امریه کردن شما رو بده. خب این چیزایی که من میدونستم، امیدوارم یه روزی بیاد که هیچکس نیازی به خوندنش نداشته باشه و دغدغه یه همچین چیزی رو نداشته باشه. </description><category>امیرحسین ودادی</category><author>امیرحسین ودادی</author><pubDate>Fri, 25 Aug 2023 00:31:34 +0330</pubDate></item><item><title>با واریانس بالا فکر کنیم!</title><link>https://virgool.ir/@amirhosein.vedadi/با-واریانس-بالا-فکر-کنیم-ggj6ac3wreyr</link><description>ایموجی متفکرچند روز پیش قسمتی از پادکست بی پلاس رو گوش میدادم که در مورد کتاب دوباره فکر کن نوشته آدام گرنت بود. بعد از اون روایت جذاب، حالا شروع کردم به خوندن خود کتاب. کتاب در مورد ضرورت تردید داشتن و بازنگری به افکار خودمون و انعطاف پذیری تو دنیای پرتغییر امروز هست. از طرفی چند وقت پیش کتابی جهت آشنایی بیشتر با فیلتر کالمن میخوندم که اگر تو حوزه کاریتون هست حتما خوندن و بررسی کردنش رو پیشنهاد میکنم، چون کتاب به جای پرداختن زیاد به مباحث تئوری با مثال های مختلف فیلتر رو در پایتون پیاده‌سازی میکنه. این کتاب منبع بازه و از طریق این لینک قابل دسترسی هست. یکی از مثال‌های این کتاب بنظرم آنالوژی جالبی با موضوع کتاب دوباره فکر کن داشت که در ادامه بهش اشاره میکنم، اما قبل از اون یه بررسی روی خود فیلتر کالمن داشته باشیم.فرض کنید بخوایم یه کمیتی رو اندازه بگیریم و مقدار اون رو داشته باشیم، مثلا مکان یه ربات رو که تقریبا با سرعت ثابت حرکت میکنه (یعنی سیستم نویز هم داره و دقیق نیست). روش‌های مختلفی برای رسیدن به این مقدار هست، مثلا میتونیم با نوشتن معادلات حرکت با سرعت ثابت و فرض کردن یه مقدار اولیه هر لحظه مکان جسم رو داشته باشیم، یا با داشتن جی پی اس هر لحظه مکانش رو پیدا کنیم. اما همه این روش‌ها دارای خطا هستن و صد در صد درست نیستند، یعنی هم مدل خطا داره و هم اندازه گیری خطا داره. فیلتر کالمن میاد با یه نگاه احتمالاتی، میگه ترکیب این روش‌ها میتونه به ما جواب دقیقتری برای تخمین کمیت مورد نظرمون بده. فیلتر کالمن به این کمیت به چشم یه متغیر تصادفی با توزیع احتمال نرمال نگاه میکنه که به دنبال یه میانگین و واریانس براش هست. میانگین به عنوان تخمین اون متغیر مطرح هست و واریانس هم به عنوان معیاری که بگه چقدر به جوابمون اعتماد و اطمینان داریم.فیلتر کالمن دو مرحله پیش‌بینی و اندازه‌گیری داره که در بخش پیش‌بینی سعی میکنه به کمک معادلات سیستم تخمینی از کمیت بدست بیاره. مثلا توی مثال ما بیاد با یه فرض اولیه و به کمک معادلات سرعت ثابت محل ربات رو بدست بیاره. در مرحله اندازه‌گیری هم با اندازه‌گیری اون کمیت سعی میشه خروجی مرحله پیش‌بینی بهبود پیدا کنه. انتخاب یه فرض اولیه مناسب (هم میانگین و هم واریانس) برای این کمیت تاثیر زیادی در عملکرد فیلتر داره. مثلا اگر مکان اولیه درست و دقیق ربات رو میدونیم باید اون رو به عنوان میانگین درنظر بگیریم و مقدار واریانس رو هم عدد کوچکی در نظر بگیریم، ولی اگر دقیق نمیدونیم باید مقدار واریانس رو بزرگ در نظر بگیریم تا نشون بدیم اعتماد زیادی به این مقدار نداریم. اما اوضاع زمانی بد میشه که دقیق فرض اولیه رو ندونیم و واریانس رو کم بگیریم.این وضعیتی هست که خیلی اوقات برای من تو مسائل دیگه زندگی هم پیش میاد، با اعتماد به نفس اشتباه میگم. نمودار زیر از کتاب فیلتر کالمنی که ذکر شد این مسئله رو بهتر نشون میده. توی این نمودار چون واریانس برای فرض اولیه سیستم کوچک در نظر گرفته شده، سیستم به مقادیر اندازه‌گیری شده توجه زیادی نمیکنه و زمان زیادی طول میکشه تا تخمین فیلتر به مقدار واقعی نزدیک بشه.فیلتر اعتماد به سقفتصویر زیر هم حالتی رو نشون میده که برای فرض اولیه واریانس زیادی در نظر بگیریم، که در این حالت خیلی سریع خروجی فیلتر به مقدار واقعی نزدیک شده. ما هم باید مثل این فیلتر فکر کنیم تا سریعتر به واقعیت برسیم.فیلتر انعطاف‌پذیربه عنوان جمع‌بندی بنظرم بیشتر باید به افکار و عقایدمون توجه کنیم و واریانس فکر کردنمون هم بالا باشه تا به اشتباهاتمون پی ببریم و در پی رفعشون باشیم نه قانع کردن خودمون.</description><category>امیرحسین ودادی</category><author>امیرحسین ودادی</author><pubDate>Tue, 14 Jun 2022 02:14:32 +0430</pubDate></item><item><title>ربات‌های انسان‌نما چگونه راه می‌روند؟</title><link>https://virgool.ir/@amirhosein.vedadi/ربات-های-انسان-نما-چگونه-راه-می-روند-lomgmihni1au</link><description>ربات انسان‌نما سورنا۴«رباتیک، دانشی هست که به بررسی و شناختِ ارتباطِ بین درک و عمل میپردازه». خب حالا این یعنی چی؟ این جمله سه تا کلمه کلیدی داره. یکیش درک هست؛ توی یه ربات یه سری حسگرها هست که به کمکشون میشه محیط اطراف رو و اتفاقاتی که توی اون میفته رو درک کرد. کلمه مهم بعدی عمل هست؛ یه ربات شامل یه سری عملگرها هم هست که حرکت رو براش ایجاد میکنن و کمک میکنن تا ربات بتونه تغییراتی رو توی محیط ایجاد کنه. سومین کلمه کلیدی هم ارتباط هست. رباتیک باید بین این درک و عمل یه رابطه ای هم ایجاد کنه که این شامل همه مباحث برنامه نویسی، کنترل، طراحی مسیر و .... میشه.ربات های انسان نما نمونه کاملی از یه همچین سیستمی هستند و توی این پست میخوایم یه کوچولو با روندی که به حرکت ربات های انسان نما ختم میشه بیشتر آشنا بشیم. قبل از شروع بحث لازمه که بگم این پست با الهام از این پست آقای دکتر Stephane Caron نوشته شده و بخشی از اون هم اینجا ترجمه شده ولی سعی کردم یکم ساده ترش کنم و تا جایی که میشه خیلی وارد ریاضیاتش نشم (اما بازم مخاطبش کسایی میشن که یکم با دینامیک و کنترل آشنا باشن). شاید اولین سوالی که با خوندن عنوان متن بشه، این باشه که اصلا چرا باید یه ربات راه بره؟! یکی از پاسخ هایی که به این سوال میشه داد اینه که، محیط های مختلف زندگی ما انسان ها کاملا برای ما طراحی شده. بخش های زیادی از سطح های محل زندگی ما به صورت ناهموار و سنگلاخ، پله، سطوح نرم مثل فرش و موکت و ... هست که حرکت رو برای یک ربات چرخدار سخت میکنن اما انسان میتونه به راحتی در تمام این شرایط راه بره. بنابراین ایده راه رفتن و انطباق با شرایط مثل انسان، اینجاست که میتونه جالب باشه. میشه گفت طراحی چنین ربات هایی از دهه های ۱۹۷۰ و ۱۹۸۰ شروع شده بود ولی جهش عظیم زمانی بود که ربات انسان نما P2 توسط شرکت هوندا در سال ۱۹۹۶ رونمایی شد و این رباتی بود که در ادامه به ربات آسیمو این شرکت تبدیل شد.خب برای اینکه بتونیم یک ربات انسان نما رو راه ببریم، اول باید یه مدل دینامیکی براش پیدا کنیم. بعدش به کمک این مدل بیایم طراحی مسیر رو براش انجام بدیم یعنی مثلا بیایم بگیم که مرکز جرم ربات باید روی این منحنی حرکت بکنه. همینطور باید برای دو تا پای ربات هم مسیرهایی رو طراحی بکنیم که چجوری ربات قدم هاش رو برداره (البته این مسیرها باید به گونه ای طراحی بشن که ربات رو ناپایدار نکنن، بنابراین باید با یه معیاری از پایداری اون ها اطمینان حاصل کنیم). بعد از این باید این مسیرهای تولید شده رو به کمک سینماتیک معکوس به یه سری زاویه برای موتورهای مفاصل ربات تبدیل کنیم و اون ها رو به عنوان ورودی به موتورها بدیم. اینجوری ربات ما شروع به حرکت میکنه اما این همه ماجرا نیستش، چون در مرحله عمل به خاطر خطاها، نویزها و ماهیت متغیر محیط اطراف، ربات دقیقا همون مسیری که ما طراحی میکنیم نمیره و ممکنه ناپایدار بشه و بیفته. بنابراین لازمه که ربات به کمک سنسورهایی که داره هر لحظه بررسی بشه و کنترلری برای اینکه شبیه مسیر طراحی شده حرکت کنه، بهش اضافه بشه. با طی کردن این مراحل به یه حرکت ساده برای رباتمون میرسیم که در ادامه هر کدوم رو بیشتر بررسی میکنیم.مدلسازی ربات انسان نمامدل های دینامیکی متداول در رباتیک، مدل هایی هستند که شامل تعدادی لینک جسم صلب بوده که به کمک تعدادی مفصل به هم متصل شدن. نوشتن چنین معادلاتی برای ربات های انسان نما که شامل تعداد زیادی درجه آزادی هستند، مشکل هست. ولی میشه با چند تا فرض، مسئله رو ساده تر کرد:مفاصل ربات، گشتاور کافی جهت ایجاد حرکات لازم رو دارنتکانه زاویه ای حول مرکز جرم ربات وجود ندارهمرکز جرم ربات حین حرکت، در یک ارتفاع ثابت هستشبا چنین فرض هایی دینامیک ربات رو میشه با دینامیک خطی یک مدل پاندول معکوس سه بعدی تقریب زد.توی این رابطه امگا فرکانس طبیعی ثابتی هست که با تقسیم شتاب جاذبه بر ارتفاع ثابت ربات به دست میاد. x_c محل مرکز جرم و x_ZMP هم محل نقطه گشتاور صفر ربات هست (Zero Moment Point). در واقع توی این مدل، ما فرض میکنیم که تمام جرم ربات در مرکز جرم اون قرار گرفته و به کمک یک میله بدون جرم به نقطه گشتاور صفر متصل شده. نقطه گشتاور صفر حالا چه نقطه ای هست؟ نیروهای تکیه گاهی وارد بر کف پای ربات به صورت گسترده هستند. از دینامیک میدونیم که میشه نقطه اثر یک نیرو رو از یک جا به جای دیگر انتقال داد و فقط باید گشتاوری رو هم که ایجاد میکنه در نظر گرفت. میشه نقطه ای رو توی کف پا پیدا کرد که اگر همه این نیروهای تکیه گاهی رو به اونجا منتقل کنیم، گشتاورهای سطحیشون با هم خنثی میشن و فقط یک نیرو باقی میمونه. این نقطه همون نقطه گشتاور صفر هست که معادل مفصل توی آونگ معکوس سه بعدی میشه (این نقطه رو مرکز فشار نیروهای تکیه گاهی هم میگن). عکس زیر از کتاب آقای دکتر Kajita میتونه این مفهوم رو بهتر نشون بده.نقطه گشتاور صفر (منبع: کتاب دکتر کاجیتا)اینکه میگیم ربات رو با آونگ مدل میکنیم به این معنی هست که وقتی در حین حرکت، پای راست روی زمینه و پای چپ تو هوا مفصل این آونگ میفته توی پای راست و وقتی پای چپ، پای تکیه گاه میشه مفصل این آونگ شیفت پیدا میکنه به پای چپ. حالا که یه مدل دینامیکی داریم میتونیم به طراحی مسیر برای ربات بپردازیم.طراحی مسیر و تولید الگوی حرکتیهدف طراحی مسیر اینه که ما بیایم و یه مسیری برای مرکز جرم ربات انسان نما پیدا کنیم که اگر ربات از اون پیروی کنه، حرکت پایداری رو داشته باشه. اما چجوری بفهمیم که یه ربات پایدار میمونه یا نه؟ معیاری که برای بررسی این موضوع استفاده میشه اینه که اگر نقطه گشتاور صفر ربات که از رابطه زیر هم میشه بدستش آورد:توی چند ضلعی تکیه گاهی کف های پا قرار بگیره، حرکت ربات پایدار خواهد موند. این چند ضلعی وقتی فقط یک پای ربات روی زمینه، کف اون پا میشه و زمانی که دو تا پای ربات در ارتباط با زمین هستن به صورت زیر در نظر گرفته میشه:چند ضلعی تکیه گاهی در حالتی که هر دو پا روی زمین قرار دارند (منبع: کتاب دکتر کاجیتا)دو دسته روش کلی برای رسیدن به چنین مسیری وجود داره. توی دسته اول به حرکت انسان توجه میشه و سعی میشه مسیر مرکز جرمی برای ربات با کمک توابع چند جمله ای، سینوسی و ... طراحی بشه که بیشترین شباهت رو به حرکت انسان داشته باشه و در عین حال حرکت پایداری هم باشه. بررسی پایداری این مسیر به بررسی مدل کامل ربات نیاز داره و که کار وقت گیری هست و امکان پیاده سازیش بر روی ربات به صورت آنلاین کمتر هست. دسته دوم به کمک همون مدل ساده شده ای که در بخش قبل به اون پرداخته شد به طراحی مسیر برای مرکز جرم میپردازن که خب از لحاظ محاسباتی ساده ترن و امکان پیاده سازی آنلاین رو میدن.یکی از مهمترین روش های طراحی مسیر توی دسته دوم، روش طراحی مسیر linear Model Predictive Control (MPC) هست که برای طراحی مسیر ربات های HRP2 و HRP4 از اون استفاده شده.یکی دیگه از روش های مهم دسته دوم، طراحی مسیر بر اساس نقطه Divergent Component of Motion (DCM) هست. توی این روش معادله آونگ معکوسی که قبلا دیدیم و یه معادله دیفرانسیل از مرتبه دو بود رو به دوتا معادله دیفرانسیل از مرتبه یک تبدیل میکنن:توی این معادلات متغیر کیسی (xi)، همون DCM هست. دومین معادله از این دو تا یه معادله پایدار هست، یعنی اگر ما یه کیسی ثابت داشته باشیم، مرکز جرم به طور طبیعی اون همگرا میشه. معادله اول اما ناپایدار باقی میمونه و کیسی همواره از ZMP واگرا میشه. بنابراین میشه قسمت دوم که پایدار هست رو در نظر نگرفت و طراحی مسیر رو برای کیسی انجام داد. خب حالا با توجه به این بحث ها برای پیدا کردن مسیر مرکز جرم توی روش DCM، اول جای پاها رو مشخص میکنیم. بعد مرکز هر یک از این جای پاها رو معادل نقطه ZMP فرض میکنیم. حالا به کمک معادله اول، مسیر مناسب برای کیسی رو پیدا میکنیم و بعد هم از روی معادله دوم مسیر مرکز جرم رو بدست میاریم.از این روش برای طراحی مسیر ربات های آسیمو، اطلس و تورو استفاده شده.  بعد از داشتن مسیر حرکت مرکز جرم، باید برای دو تا پا هم، با توجه به جای پاهایی که اول فرض کردیم طراحی مسیر کنیم. طراحی مسیر برای پاها راحتتره و معمولا از یه چند جمله ای ساده برای اون ها استفاده میشه که اول و آخرش و شروع و پایان قدم هست و معمولا هم تا یه ارتفاع مشخصی در میانه قدم بالا میاد.حالا همه مسیرهای لازم رو داریم اما این کافی نیستش. ربات ما یه سری موتور داره و ما باید زوایای موتورها رو به عنوان ورودی بهش بدیم. اینجا، جایی هست که سینماتیک معکوس به کمک ما میاد و به کمکش میتونیم این مسیرها رو به زوایای موتورها تبدیل کنیم. اما چون ربات ما دارای یه پایه ثابت نیست و پایه محرک (Floating Base) هستش، باید مسیر نسبی بین پاها و مرکز جرم رو به سینماتیک معکوس بدیم و زوایای هر پا رو ازش بدست بیاریم. با داشتن زوایا میشه اونا رو به موتورها داد و حرکت ربات رو به صورت حلقه باز ایجاد کرد.کنترل حرکت رباتهمونطور که در مقدمه هم گفته شد، ربات معمولا مسیری که ما ایجاد کردیم رو به خاطر فرض های ساده کننده ای که داشتم، خطاها، نویزها و ... نمیره. برای این که از ناپایدار شدن ربات جلوگیری کنیم، ما نیاز به یه کنترلر داریم که از این موضوع جلوگیری کنه. کنترلر های مختلفی هم با توجه به روش طراحی مسیر استفاده شده وجود داره. مثلا توی روش DCM با تخمین مکان و سرعت مرکز جرم ربات، میشه DCM اون رو محاسبه کرد و سپس کنترلی رو برای اون در نظر گرفت، که میتونه یه PID ساده تا کنترلرهای پیشرفته باشه. خب یکم طولانی شد ولی امیدوارم شمایی که تا اینجا خوندید، مطالب جدیدی یاد گرفته باشید و مشتاق شده باشید که توی این جور حوزه ها شروع به کار کنید (برای شروع هم کتاب آقای دکتر کاجیتا رو بهتون پیشنهاد میکنم). همونطور که اولش هم گفتم این نوشته تلفیقی از پست آقای دکتر Caron و دانسته های خودم بود و سعی میکنم ان شاالله در آینده بخش های مختلفش رو بیشتر شرح بدم. مطمئنا اشتباهات و نقاط ضعفی هم توی متن بود که خوشحال میشم توی نظرات بگید تا در موردش صحبت کنیم و اصلاحش کنیم.</description><category>امیرحسین ودادی</category><author>امیرحسین ودادی</author><pubDate>Fri, 27 Aug 2021 23:39:02 +0430</pubDate></item></channel></rss>