Robotic Knowledge
#LiDAR How does LiDAR work? [Source] ---------- @roboticknowledge
#LiDAR
How does LiDAR work?
یک موتور لیزر را در ۳۶۰ درجه دوران میدهد تا تمام محیط اسکن شود. آرایه نقاط کشف شده برای ایجاد نقشه از محیط و موانع در واحد ناوبری ربات استفاده میشود.
----------
@roboticknowledge
How does LiDAR work?
یک موتور لیزر را در ۳۶۰ درجه دوران میدهد تا تمام محیط اسکن شود. آرایه نقاط کشف شده برای ایجاد نقشه از محیط و موانع در واحد ناوبری ربات استفاده میشود.
----------
@roboticknowledge
#ChatGPT
#ROS2
لیستی از آموزشهای ROS2 که جناب ChatGPT پیشنهاد دادن!
آخر کار هم توصیه قشنگی کردن. :)))
----------
@roboticknowledge
#ROS2
لیستی از آموزشهای ROS2 که جناب ChatGPT پیشنهاد دادن!
آخر کار هم توصیه قشنگی کردن. :)))
----------
@roboticknowledge
#فضا
یه خبر جالبی دیدم و اون هم همکاری DARPA و NASA برای توسعه پیشران Thermo Nuclear برای راکتهای فضایی آینده هست؛ سفرهای فضایی طولانیتر نسبت به چیزی که الان بشر داره! برای ۲۰۲۷ برنامهریزی کردن که خب شاید منطقی نباشه و احتمالا بیشتر از اینا طول بکشه.
----------
@roboticknowledge
یه خبر جالبی دیدم و اون هم همکاری DARPA و NASA برای توسعه پیشران Thermo Nuclear برای راکتهای فضایی آینده هست؛ سفرهای فضایی طولانیتر نسبت به چیزی که الان بشر داره! برای ۲۰۲۷ برنامهریزی کردن که خب شاید منطقی نباشه و احتمالا بیشتر از اینا طول بکشه.
----------
@roboticknowledge
#نقشه
خب یه ساختار باحال از یه نوع دستهبندی رباتها ببینیم!
✅ منیپولیتورها، رباتهای استیشنری، موبایل رباتهای چرخدار و پادار و نهایتا پهپادها. یه سری چیزا هم نیست مثلاً رباتهای زیرآبی یا شبه جانورها 😅 که طبیعی هست چون خیلی خیلی میشه دستهبندیهای مختلفی کرد و داشت!
اگه روی این هشتگ #نقشه کلیک کنید، چندتا نقشه باحال که قبلاً توی این کانال قرار دادم رو میتونید ببینید.
----------
@roboticknowledge
خب یه ساختار باحال از یه نوع دستهبندی رباتها ببینیم!
✅ منیپولیتورها، رباتهای استیشنری، موبایل رباتهای چرخدار و پادار و نهایتا پهپادها. یه سری چیزا هم نیست مثلاً رباتهای زیرآبی یا شبه جانورها 😅 که طبیعی هست چون خیلی خیلی میشه دستهبندیهای مختلفی کرد و داشت!
اگه روی این هشتگ #نقشه کلیک کنید، چندتا نقشه باحال که قبلاً توی این کانال قرار دادم رو میتونید ببینید.
----------
@roboticknowledge
👏2
Robotic Knowledge
https://twitter.com/webots/status/1615011042584629248?t=My-crcU1FgQ4EKCmV0RgMg&s=35
I'm working on giving the ability of opponent detection to my NAO humanoid robot in a wrestling competition by Cyberbotics Ltd. I used #Yolo for this task, and the attached image shows the initial capability of the trained network for detecting the opponent; Also the network can make sense of the environment. Training is just started and will continue with many more data.
I'll make the weights and the data set open-source after the competition. 😅
----------
@roboticknowledge
I'll make the weights and the data set open-source after the competition. 😅
----------
@roboticknowledge
👍4👏2🏆1
#رباتیک_جانوری #امدادرباتیک
آموزش موش صحرایی برای پیدا کردن افراد
موردی جالب دیدم که درباره نجات افراد محبوس (مثلا در زیر آوار) توسط موشهای صحرایی بود. سگهای آموزش دیده بخاطر هیکل بزرگ نمیتونن وارد عمق از حفرهها بشن اما موشها میتونن؛ همین شده که توی یک پروژه دانشجویی اومدن به موشها آموزش دادن که وقتی فردی رو حس کردن [با بو احتمالا]، یک دکمه آلارم روی کولهای که پشت آنها بسته شده رو فشار بدن و با این کار موقعیت دقیق موش به تیم نجات ارسال میشه!
خیلی تکنولوژی رباتیکی خاصی نداره و صرفا آموزش موش و طراحی یک بکپک برای لوکالیزیشن داره این کار اما نکته جالب استفاده از جانوران برای سادگی کار هست. قبلاً هم در کانال یه مطلبی نوشتم که از اندام عنکبوت مرده به عنوان Robotic Manipulator استفاده شده بود و هدف سادهسازی کارها بود؛ توی هر دو مورد دیگه نیازی به طراحی سیستمهای رباتیک مکانیکی نیست و از جانداری که در دسترس هست استفاده میشه!
البته وارد بحثهای اخلاقی اون که انسان داره از جانور برای اهدافی مشخص استفاده میکنه، نمیشم چون هدف این مطلب هم این نیست.
[منبع]
----------
@roboticknowledge
آموزش موش صحرایی برای پیدا کردن افراد
موردی جالب دیدم که درباره نجات افراد محبوس (مثلا در زیر آوار) توسط موشهای صحرایی بود. سگهای آموزش دیده بخاطر هیکل بزرگ نمیتونن وارد عمق از حفرهها بشن اما موشها میتونن؛ همین شده که توی یک پروژه دانشجویی اومدن به موشها آموزش دادن که وقتی فردی رو حس کردن [با بو احتمالا]، یک دکمه آلارم روی کولهای که پشت آنها بسته شده رو فشار بدن و با این کار موقعیت دقیق موش به تیم نجات ارسال میشه!
خیلی تکنولوژی رباتیکی خاصی نداره و صرفا آموزش موش و طراحی یک بکپک برای لوکالیزیشن داره این کار اما نکته جالب استفاده از جانوران برای سادگی کار هست. قبلاً هم در کانال یه مطلبی نوشتم که از اندام عنکبوت مرده به عنوان Robotic Manipulator استفاده شده بود و هدف سادهسازی کارها بود؛ توی هر دو مورد دیگه نیازی به طراحی سیستمهای رباتیک مکانیکی نیست و از جانداری که در دسترس هست استفاده میشه!
البته وارد بحثهای اخلاقی اون که انسان داره از جانور برای اهدافی مشخص استفاده میکنه، نمیشم چون هدف این مطلب هم این نیست.
[منبع]
----------
@roboticknowledge
👨💻2
Robotic Knowledge
I'm working on giving the ability of opponent detection to my NAO humanoid robot in a wrestling competition by Cyberbotics Ltd. I used #Yolo for this task, and the attached image shows the initial capability of the trained network for detecting the opponent;…
Twitter
@ICRA2023 Simulated Humanoid Robot Wrestling Competition: SugarSkull versus Mohammad Javad Zallaghi. See more games and participate at https://t.co/Y8mdl9MUSv
👀1
Robotic Knowledge
https://twitter.com/ias_tudarmstadt/status/1627601129260437507?t=TN5r3sqJE2cieKKR6uBpKQ&s=35
یه مسابقه بنظر باحال دیگه رباتیک داخل شبیهساز!
بشدت میشه توی این مسابقهها چیزهای باحالی یاد گرفت و تمرین کرد.
----------
@roboticknowledge
بشدت میشه توی این مسابقهها چیزهای باحالی یاد گرفت و تمرین کرد.
----------
@roboticknowledge
Robotic Knowledge
#یادگیری_تقویتی #هوش_مصنوعی #یادگیری #RL ---------- @roboticknowledge
#یادگیری_تقویتی #هوش_مصنوعی #یادگیری
#RL
قسمت اول: یادگیری تقویتی (Reinforcement learning) چیست؟
یادگیری تقویتی (RL) یکی از بخشهای یادگیری ماشین هست که برای رباتیک و به طور کلی آموزش سیستمهای پیچیده برای انجام یک رفتار مناسب و مشخص خیلی کاربردی هست. در واقع RL و الگوریتمهای اون به اون ربات اجازه میده یک رفتار رو با تجربه کردن یاد بگیره و به سمت بهینه کردن کارکرد خودش در انجام اون عمل حرکت کنه.
توی RL به رباتی که داره یاد میگیره agent، به محیطی که ربات داخلش هست environment و به عمل ربات که باید در نهایت ماجرا بهینه اجرا بشه task گفته میشه؛ به خود بروز رفتار هم که action میگن.
خب حالا که یکم ادبیات رو میدونیم، میتونیم یکم دقیقتر صحبت کنیم. توی RL یک agent یه سری actions انجام میده داخل یه environment، و از عملش feedback دریافت میکنه. فیدبک میتونه مثبت باشه که بهش reward میگن یا میتونه منفی باشه که بهش penalty گفته میشه. یه کودک رو تجسم کنید که با فیدبک یاد میگیره رفتار بهتری از نظر بقیه بروز بده؛ این هم دقیقاً همون هست.
هدف نهایی هم اینه که یک agent به یک قانون بهینه برسه که با اون یک کار سخت و پیچیده رو بدون برنامهنویسی پیچیده انجام بده (با صرف هزینه زمان و طراحی یادگیری)؛ قانون مورد اشاره هم policy بهش میگن.
فرایند یادگیری هم اینجوری هست که یک الگوریتم policy رو بر اساس فیدبک جوری تغییر میده که مجموع reward ها بیشینه بشه. عملا یه جور بهینهسازی داره انجام میشه. ورودی الگوریتم فیدبک بر اساس state مربوطه به agent و خروجی الگوریتم هم action بعدی هست که ربات توی environment از خودش بروز میده.
----------
@roboticknowledge
#RL
قسمت اول: یادگیری تقویتی (Reinforcement learning) چیست؟
یادگیری تقویتی (RL) یکی از بخشهای یادگیری ماشین هست که برای رباتیک و به طور کلی آموزش سیستمهای پیچیده برای انجام یک رفتار مناسب و مشخص خیلی کاربردی هست. در واقع RL و الگوریتمهای اون به اون ربات اجازه میده یک رفتار رو با تجربه کردن یاد بگیره و به سمت بهینه کردن کارکرد خودش در انجام اون عمل حرکت کنه.
توی RL به رباتی که داره یاد میگیره agent، به محیطی که ربات داخلش هست environment و به عمل ربات که باید در نهایت ماجرا بهینه اجرا بشه task گفته میشه؛ به خود بروز رفتار هم که action میگن.
خب حالا که یکم ادبیات رو میدونیم، میتونیم یکم دقیقتر صحبت کنیم. توی RL یک agent یه سری actions انجام میده داخل یه environment، و از عملش feedback دریافت میکنه. فیدبک میتونه مثبت باشه که بهش reward میگن یا میتونه منفی باشه که بهش penalty گفته میشه. یه کودک رو تجسم کنید که با فیدبک یاد میگیره رفتار بهتری از نظر بقیه بروز بده؛ این هم دقیقاً همون هست.
هدف نهایی هم اینه که یک agent به یک قانون بهینه برسه که با اون یک کار سخت و پیچیده رو بدون برنامهنویسی پیچیده انجام بده (با صرف هزینه زمان و طراحی یادگیری)؛ قانون مورد اشاره هم policy بهش میگن.
فرایند یادگیری هم اینجوری هست که یک الگوریتم policy رو بر اساس فیدبک جوری تغییر میده که مجموع reward ها بیشینه بشه. عملا یه جور بهینهسازی داره انجام میشه. ورودی الگوریتم فیدبک بر اساس state مربوطه به agent و خروجی الگوریتم هم action بعدی هست که ربات توی environment از خودش بروز میده.
----------
@roboticknowledge
#یادگیری_تقویتی #هوش_مصنوعی #یادگیری #نقشه
#RL
قسمت دوم: الگوریتمهای RL برای رباتیک
تعدادی از الگوریتمهای RL برای یاد دادن به سیستمهای رباتیک بیشتر مورد توجه بودهاند که الگوریتم Q-learning، الگوریتمهای policy gradient و الگوریتمهای actor-critic از آنها هستند.
در ادامه این الگوریتم و روشها را بررسی خواهیم کرد.
----------
@roboticknowledge
#RL
قسمت دوم: الگوریتمهای RL برای رباتیک
تعدادی از الگوریتمهای RL برای یاد دادن به سیستمهای رباتیک بیشتر مورد توجه بودهاند که الگوریتم Q-learning، الگوریتمهای policy gradient و الگوریتمهای actor-critic از آنها هستند.
در ادامه این الگوریتم و روشها را بررسی خواهیم کرد.
----------
@roboticknowledge
Robotic Knowledge
#یادگیری_تقویتی #هوش_مصنوعی #یادگیری #RL ---------- @roboticknowledge
#یادگیری_تقویتی #هوش_مصنوعی #یادگیری
#RL
قسمت سوم: یادگیری تقویتی یک ربات با الگوریتم Q-learning | تصمیمگیری و ساختار آن
⬅️ یک مثال برای بیان ساده الگوریتم و Q-table
تصور کنید که رباتی دارید و قصد دارید به آن بدون اینکه از تحلیل سینماتیکی استفاده کنید، مسیر بهینه برای رسیدن به یک هدف را به ربات یاد دهید. فضای کاری ربات یک صفحه است که دیوارهایی در آن قرار دارند و یک یا چند نقطه نهایی به عنوان اهدافی که ربات باید به آنها برسد، در این صفحه وجود دارد. موقعیت اولیه ربات هم میتواند تصادفی انتخاب شود. ابتدا لازم است تا یک ماتریس ایجاد کنید که دارای x سطر، y ستون و a لایه (یا کانال) است. به این ماتریس Q-table گفته میشود.
⬅️ فضای حالت یا state space
در مثال قبل و ساختار ماتریس Q، مولفه x بیانگر مختصه طولی موقعیت ربات و y مختصه عرضی موقعیت ربات در environment میباشد. بعبارتی برای تجسم ساده الگوریتم Q-learning در این مثال و آموزش، ربات بصورت نقطهای در یک صفحه حرکت میکند و سادهترین state space ممکن تعریف شده است. پس state space به فضایی که حالت ربات (موقعیت آن) در آن عوض میشود، گفته میشود.
⬅️ ساختار ماتریس Q-table
بیان شد که ماتریس دارای a لایه هست (ماتریس چند بعدی میباشد) و تعداد لایهها برابر با تعداد action های در دسترس ربات در هر state است. برای مثال اگر ربات در یک مکان (state) مشخص قرار دارد و میتواند چهار عمل حرکت به بالا، پایین، راست و چپ را بعنوان action برای رفتن به state بعدی بگمارد، a برابر ۴ میباشد. به تمام action های ممکن هم action space گفته میشود. بنابراین هر لایه (کانال) از ماتریس Q-table بیانگر یک action مستقل میباشد. باید متوجه شده باشید که در مثال این آموزش state space بصورت گسسته تعریف شد زیرا در صورت تعریف پیوسته آن ابعاد x و y ماتریس Q-table باید بصورت نظری بینهایت باشد که در پیادهسازی الگوریتم ممکن نیست.
⬅️ مقادیر ذخیره شده در ماتریس Q-table
مقادیر ماتریس Q-table مرجع عددی ربات برای تصمیمگیری انتخاب action در هر state (موقعیت) هستند. وقتی یک ربات با روش Q-learning آموزش هدف را یاد گرفت، این ماتریس در هر state (یعنی x و y مشخص) دارای a مقدار مستقل (برای مثال در مثال ربات مورد بحث چهار مقدار) است که به آنها Q-value گفته میشود و ربات برای رفتن به state بعد آن action ای را انجام میدهد که بیشترین Q-value را دارد. Q-value همان مقدار هر المان در Q-table است که یک شاخص عددی برای بیان میزان مفید بودن هر action ممکن در یک state مشخص برای هدایت ربات به نقطه هدف میباشد. زمانی ربات به بهینهترین شکل به سمت هدف هدایت میشود که معتبرترین action را در هر state انتخاب کند تا به state بعد برسد و معتبرترین action آن یک است که بیشترین Q-value را دارد.
بنابراین اصلیترین مسأله در الگوریتم Q-learning ایجاد یک Q-table است که عملا به هوش از پیش تمرین داده شده ربات تبدیل میشود و راهنمای ربات برای انجام بهینهترین action برای رسیدن به هدف با عبور از state های مطلوب خواهد بود.
⬅️ ماتریس Q-table را برای یادگیری یک مسأله مشخص توسط ربات چگونه ایجاد کنیم؟
الگوریتم Q-learning پروسه پیدا کردن تمامی Q-value های بهینه را طی فرایند یادگیری بر اساس reward و penalty پس از هر action بسادگی مشخص کرده است که در مطلب دوم از آموزش الگوریتم Q-learning آن را شرح خواهم داد.
----------
@roboticknowledge
#RL
قسمت سوم: یادگیری تقویتی یک ربات با الگوریتم Q-learning | تصمیمگیری و ساختار آن
⬅️ یک مثال برای بیان ساده الگوریتم و Q-table
تصور کنید که رباتی دارید و قصد دارید به آن بدون اینکه از تحلیل سینماتیکی استفاده کنید، مسیر بهینه برای رسیدن به یک هدف را به ربات یاد دهید. فضای کاری ربات یک صفحه است که دیوارهایی در آن قرار دارند و یک یا چند نقطه نهایی به عنوان اهدافی که ربات باید به آنها برسد، در این صفحه وجود دارد. موقعیت اولیه ربات هم میتواند تصادفی انتخاب شود. ابتدا لازم است تا یک ماتریس ایجاد کنید که دارای x سطر، y ستون و a لایه (یا کانال) است. به این ماتریس Q-table گفته میشود.
⬅️ فضای حالت یا state space
در مثال قبل و ساختار ماتریس Q، مولفه x بیانگر مختصه طولی موقعیت ربات و y مختصه عرضی موقعیت ربات در environment میباشد. بعبارتی برای تجسم ساده الگوریتم Q-learning در این مثال و آموزش، ربات بصورت نقطهای در یک صفحه حرکت میکند و سادهترین state space ممکن تعریف شده است. پس state space به فضایی که حالت ربات (موقعیت آن) در آن عوض میشود، گفته میشود.
⬅️ ساختار ماتریس Q-table
بیان شد که ماتریس دارای a لایه هست (ماتریس چند بعدی میباشد) و تعداد لایهها برابر با تعداد action های در دسترس ربات در هر state است. برای مثال اگر ربات در یک مکان (state) مشخص قرار دارد و میتواند چهار عمل حرکت به بالا، پایین، راست و چپ را بعنوان action برای رفتن به state بعدی بگمارد، a برابر ۴ میباشد. به تمام action های ممکن هم action space گفته میشود. بنابراین هر لایه (کانال) از ماتریس Q-table بیانگر یک action مستقل میباشد. باید متوجه شده باشید که در مثال این آموزش state space بصورت گسسته تعریف شد زیرا در صورت تعریف پیوسته آن ابعاد x و y ماتریس Q-table باید بصورت نظری بینهایت باشد که در پیادهسازی الگوریتم ممکن نیست.
⬅️ مقادیر ذخیره شده در ماتریس Q-table
مقادیر ماتریس Q-table مرجع عددی ربات برای تصمیمگیری انتخاب action در هر state (موقعیت) هستند. وقتی یک ربات با روش Q-learning آموزش هدف را یاد گرفت، این ماتریس در هر state (یعنی x و y مشخص) دارای a مقدار مستقل (برای مثال در مثال ربات مورد بحث چهار مقدار) است که به آنها Q-value گفته میشود و ربات برای رفتن به state بعد آن action ای را انجام میدهد که بیشترین Q-value را دارد. Q-value همان مقدار هر المان در Q-table است که یک شاخص عددی برای بیان میزان مفید بودن هر action ممکن در یک state مشخص برای هدایت ربات به نقطه هدف میباشد. زمانی ربات به بهینهترین شکل به سمت هدف هدایت میشود که معتبرترین action را در هر state انتخاب کند تا به state بعد برسد و معتبرترین action آن یک است که بیشترین Q-value را دارد.
بنابراین اصلیترین مسأله در الگوریتم Q-learning ایجاد یک Q-table است که عملا به هوش از پیش تمرین داده شده ربات تبدیل میشود و راهنمای ربات برای انجام بهینهترین action برای رسیدن به هدف با عبور از state های مطلوب خواهد بود.
⬅️ ماتریس Q-table را برای یادگیری یک مسأله مشخص توسط ربات چگونه ایجاد کنیم؟
الگوریتم Q-learning پروسه پیدا کردن تمامی Q-value های بهینه را طی فرایند یادگیری بر اساس reward و penalty پس از هر action بسادگی مشخص کرده است که در مطلب دوم از آموزش الگوریتم Q-learning آن را شرح خواهم داد.
----------
@roboticknowledge
👍1
دوستان بگید ببینم داخل یک موتور DC، گشتاور تولیدی با جریان رابطه مستقیم داره یا ولتاژ؟ 😁
Final Results
43%
با جریان داره، اینجوری: taw=K×I
19%
با ولتاژ داره، اینجوری: taw= (K/R)×V
38%
با هر دو داره، بستگی داره کدوم رو دوست داشته باشیم. :)
#هوش_مصنوعی #ChatGPT
بزودی ChatGPT-4 ارائه میشود و قابلیت Multimodal خواهد داشت. نسخه فعلی یعنی ChatGPT-3.5 تنها ورودی و خروجی متنی میدهد درحالیکه نسخه جدید یعنی ChatGPT-4 امکان داشتن ورودی و خروجی صوتی، تصویری و ویدئویی نیز خواهد داشت! به همین دلیل به آن Multimodal گفته میشود.
برای داشتن تصوری از امکاناتی که نسخه Multimodal ارائه میکند، میتوان به امکان نوشتن یک کتاب کاملا مصور چند صد صفحهای در یک روز اشاره کرد!
اگر زمانی که ChatGPT-3 ارائه شد، از لفظ «انقلاب» برای آن استفاده شد، برای ChatGPT-4 باید از عبارت «سوپرانقلاب» استفاده کرد! امیدوارم در دسترس همه ما باشد تا بتوانیم بسیاری کارهای جالب با آن انجام دهیم.
----------
@roboticknowledge
بزودی ChatGPT-4 ارائه میشود و قابلیت Multimodal خواهد داشت. نسخه فعلی یعنی ChatGPT-3.5 تنها ورودی و خروجی متنی میدهد درحالیکه نسخه جدید یعنی ChatGPT-4 امکان داشتن ورودی و خروجی صوتی، تصویری و ویدئویی نیز خواهد داشت! به همین دلیل به آن Multimodal گفته میشود.
برای داشتن تصوری از امکاناتی که نسخه Multimodal ارائه میکند، میتوان به امکان نوشتن یک کتاب کاملا مصور چند صد صفحهای در یک روز اشاره کرد!
اگر زمانی که ChatGPT-3 ارائه شد، از لفظ «انقلاب» برای آن استفاده شد، برای ChatGPT-4 باید از عبارت «سوپرانقلاب» استفاده کرد! امیدوارم در دسترس همه ما باشد تا بتوانیم بسیاری کارهای جالب با آن انجام دهیم.
----------
@roboticknowledge