#Cpp
#gnuplot
#Tools
ترسیم کردن داده در زبان ++C براحتی کار مشابه در Python نیست - اونجا شما میتونید براحتی از کتابخانه Matplotlib استفاده کنید. برای این مساله یکی از راه حلها استفاده از ابزار کامند لاینی gnu plot هست که به شکلهای مختلف با pipe کردن دیتا توی محیط command line میتونید خروجی برنامه کامپایل شده ++C رو ترسیم کنید.
در مجموع gnu plot ابزارهای بسیار زیادی در خودش داره که توی سایتش میتونید ببینید.
توی تصویر هم براتون چیزی رو که برای تست باهاش ترسیم کردم رو قرار دادم.
—————
@roboticknowledge
#gnuplot
#Tools
ترسیم کردن داده در زبان ++C براحتی کار مشابه در Python نیست - اونجا شما میتونید براحتی از کتابخانه Matplotlib استفاده کنید. برای این مساله یکی از راه حلها استفاده از ابزار کامند لاینی gnu plot هست که به شکلهای مختلف با pipe کردن دیتا توی محیط command line میتونید خروجی برنامه کامپایل شده ++C رو ترسیم کنید.
در مجموع gnu plot ابزارهای بسیار زیادی در خودش داره که توی سایتش میتونید ببینید.
توی تصویر هم براتون چیزی رو که برای تست باهاش ترسیم کردم رو قرار دادم.
—————
@roboticknowledge
#Tools
یکی از ویژگیهای خاص «کتاب مقدمهای بر رباتیک» اثر دکتر تقیراد، اشاره به ابزارها میباشد. برای مثال، ایشان در خصوص نرمافزاری که برای ترسیم اشکال کتاب استفاده کردهاند، به Inkscape اشاره میکنند و همچنین در بخشی دیگری نوشتهاند که برای پیادهسازی الگوریتم کنترلی یک ربات موازی از نرمافزار RT-Lab و تعامل آن با Simulink استفاده کردهاند. در جایی دیگر بیان کردهاند که در ربات SURENA IV از ROS استفاده شده است.
از نظر بنده این بسیار با ارزش است زیرا این ابزارها برای محققان جوان و دانشجویان PhD میتواند بسیار کاربردی باشد.
—————
@roboticknowledge
یکی از ویژگیهای خاص «کتاب مقدمهای بر رباتیک» اثر دکتر تقیراد، اشاره به ابزارها میباشد. برای مثال، ایشان در خصوص نرمافزاری که برای ترسیم اشکال کتاب استفاده کردهاند، به Inkscape اشاره میکنند و همچنین در بخشی دیگری نوشتهاند که برای پیادهسازی الگوریتم کنترلی یک ربات موازی از نرمافزار RT-Lab و تعامل آن با Simulink استفاده کردهاند. در جایی دیگر بیان کردهاند که در ربات SURENA IV از ROS استفاده شده است.
از نظر بنده این بسیار با ارزش است زیرا این ابزارها برای محققان جوان و دانشجویان PhD میتواند بسیار کاربردی باشد.
—————
@roboticknowledge
👍5
#ROS2
#Tools
#WSL
اگر دوست دارید بدون استفاده از VM بتونید ROS2 رو روی ویندوز داشته باشید، از WSL2 استفاده کنید.
ابزار WSL امکان نصب Ubuntu رو به شما روی ویندوز میده بدون دردسرهای VM و Docker. همچنین براحتی میتونید بین ویندوز و Ubuntu فایل جابجا کنید و GUI نرمافزارهای نصب روی Ubuntu هم براحتی از ترمینال باز میشه روی ویندوز.
----------
@roboticknowledge
#Tools
#WSL
اگر دوست دارید بدون استفاده از VM بتونید ROS2 رو روی ویندوز داشته باشید، از WSL2 استفاده کنید.
ابزار WSL امکان نصب Ubuntu رو به شما روی ویندوز میده بدون دردسرهای VM و Docker. همچنین براحتی میتونید بین ویندوز و Ubuntu فایل جابجا کنید و GUI نرمافزارهای نصب روی Ubuntu هم براحتی از ترمینال باز میشه روی ویندوز.
----------
@roboticknowledge
👨💻3👍1
#ROS2
#bag
#tools
با کتابخانه rqt_bag در ROS2 میتوانید play شدن یک bag file را به مانند موسیقی کنترل کنید (امکان ویرایش bag را نیز دارد):
همچنین در تایم لاین لحظه انتشار دیتای یک تاپیک با خط آبی مشخص میشود (به مانند تصویر) که در پابلیشرهای آسنکرون امکان دیباگ بهتری به شما میدهد.
—————
@roboticknowledge
#bag
#tools
با کتابخانه rqt_bag در ROS2 میتوانید play شدن یک bag file را به مانند موسیقی کنترل کنید (امکان ویرایش bag را نیز دارد):
ros2 run rqt_bag rqt_bag
همچنین در تایم لاین لحظه انتشار دیتای یک تاپیک با خط آبی مشخص میشود (به مانند تصویر) که در پابلیشرهای آسنکرون امکان دیباگ بهتری به شما میدهد.
—————
@roboticknowledge
#ROS2
#bag
#tools
یک کتابخانه بسیار کاربردی دیگر برای تبدیل فایلهای bag نیز وجود دارد: rosbags
با این ابزار میتوانید در ترمینال فایلهای لاگ را از ROS2 به ROS1 و بر عکس تبدیل کنید. اهمیت این مورد در این است که خیلی از مواقع ابزارهای پردازش bag بهتری برای ROS1 وجود دارد (مانند ROS Bag Viewer در Simulink). تبدیل نیز بدین شکل است:
—————
@roboticknowledge
#bag
#tools
یک کتابخانه بسیار کاربردی دیگر برای تبدیل فایلهای bag نیز وجود دارد: rosbags
sudo pip3 install rosbags
با این ابزار میتوانید در ترمینال فایلهای لاگ را از ROS2 به ROS1 و بر عکس تبدیل کنید. اهمیت این مورد در این است که خیلی از مواقع ابزارهای پردازش bag بهتری برای ROS1 وجود دارد (مانند ROS Bag Viewer در Simulink). تبدیل نیز بدین شکل است:
rosbags-convert <ros2_bag_folder>
—————
@roboticknowledge
#ROS2
#Simulink
#Algorithm
#Design
#Tools
در ادامه امکانات مربوط به لاگهای ROS (فایلهای bag)، مورد محبوب دیگری نیز وجود دارد: Simulink
در سیمولینک بلوکهایی برای خواندن این فایلها وجود دارد. برای مثال من در تصویر دیتای IMU را (شتاب خطی) ترسیم کردهام. این امکان به شما در توسعه الگوریتم سرعت بالایی میدهد؛ براحتی فایلهای لاگ را بالا میاورید و با دادههای آن الگوریتم را توسعه میدهید و تست میکنید - همین کار را من برای Localization دارم انجام میدهم. نهایتا میتوان از الگوریتم نیز کد هسته آن را تولید کرد — توسط Code Generation (بعدا در این مورد صحبت خواهم کرد).
—————
@roboticknowledge
#Simulink
#Algorithm
#Design
#Tools
در ادامه امکانات مربوط به لاگهای ROS (فایلهای bag)، مورد محبوب دیگری نیز وجود دارد: Simulink
در سیمولینک بلوکهایی برای خواندن این فایلها وجود دارد. برای مثال من در تصویر دیتای IMU را (شتاب خطی) ترسیم کردهام. این امکان به شما در توسعه الگوریتم سرعت بالایی میدهد؛ براحتی فایلهای لاگ را بالا میاورید و با دادههای آن الگوریتم را توسعه میدهید و تست میکنید - همین کار را من برای Localization دارم انجام میدهم. نهایتا میتوان از الگوریتم نیز کد هسته آن را تولید کرد — توسط Code Generation (بعدا در این مورد صحبت خواهم کرد).
—————
@roboticknowledge
👍3
#ROS2 #Foxglove #Rviz2 #Tools
چنانچه تا کنون از rviz برای ترسیم دادههای ربات خود استفاده میکردید، شما را به استفاده از Foxglove دعوت میکنم.
فاکس گلو بسیار سادهتر، تطبیقپذیرتر، و دوستانهتر از rviz2 میباشد. همچنین درگیر مسائل سردردآور کمتری میشوید.
—————
@roboticknowledge
چنانچه تا کنون از rviz برای ترسیم دادههای ربات خود استفاده میکردید، شما را به استفاده از Foxglove دعوت میکنم.
فاکس گلو بسیار سادهتر، تطبیقپذیرتر، و دوستانهتر از rviz2 میباشد. همچنین درگیر مسائل سردردآور کمتری میشوید.
—————
@roboticknowledge
👍4
#Tools
#Cpp
#AnalyticalDynamics
#OptimalControl
کتابخانهای برای ++C و البته بصورت bind شده در Python وجود دارد که مسائل دینامیک چندجسمی را برای شما حل میکند. مدل میتواند براحتی بصورت URDF در ورودی تعریف شود.
این کتابخانه pinocchio نام دارد:
https://github.com/stack-of-tasks/pinocchio
همچنین این کتابخانه میتواند با CasADI که خود کتابخانه کنترل بهینه است نیز کار کند! فکر نکنید رباتهای Boston Dynamics کنترل بهینه را از هیچ کامل در خود دارند بدون این ابزارها.
پیشروها با اینها و امثال اینها کارهای بزرگ میکنند. متاسفانه سیستم آموزشی کشور ما در قرن پیش مانده است و همین الان در بهترین دانشگاههای مملکت معادلات را بصورت اشتباه پیاده و غیر بهینه حل و برای جبران نتایج دست به تغییر دستی نتایج زده میشود! در هیچ دورهای به اینها اشاره نمیکنند چون نمیدانند و اینها چیزهای مدرن هستند که تفاوت میسازند.
—————
@roboticknowledge
#Cpp
#AnalyticalDynamics
#OptimalControl
کتابخانهای برای ++C و البته بصورت bind شده در Python وجود دارد که مسائل دینامیک چندجسمی را برای شما حل میکند. مدل میتواند براحتی بصورت URDF در ورودی تعریف شود.
این کتابخانه pinocchio نام دارد:
https://github.com/stack-of-tasks/pinocchio
همچنین این کتابخانه میتواند با CasADI که خود کتابخانه کنترل بهینه است نیز کار کند! فکر نکنید رباتهای Boston Dynamics کنترل بهینه را از هیچ کامل در خود دارند بدون این ابزارها.
پیشروها با اینها و امثال اینها کارهای بزرگ میکنند. متاسفانه سیستم آموزشی کشور ما در قرن پیش مانده است و همین الان در بهترین دانشگاههای مملکت معادلات را بصورت اشتباه پیاده و غیر بهینه حل و برای جبران نتایج دست به تغییر دستی نتایج زده میشود! در هیچ دورهای به اینها اشاره نمیکنند چون نمیدانند و اینها چیزهای مدرن هستند که تفاوت میسازند.
—————
@roboticknowledge
GitHub
GitHub - stack-of-tasks/pinocchio: A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives - stack-of-tasks/pinocchio
👍1🤯1
#Tools #CAD
#URDF #SDF
#Gazebo
مدلهای شبیهسازی رباتی که همراه با mesh هستند و جزئیات خوبی دارند، توسط نرمافزارهای CAD آماده میشوند و به صورت URDF خروجی گرفته میشوند - نوشتن آنها با دست تقریبا غیرممکن است.
امروز از صبح در حال یادگیری قابلیتهای نرمافزار FreeCAD بودم. اینجا در این لیست یوتوب به بهترین شکل آموزش داده شده است.
من قبلاً SOLIDWORKS کار کرده بودم و یادگیری یک نرمافزار دیگر مثل FreeCAD در چنین حالتی بسیار ساده است زیرا معمولا روشها و ابزارهای CAD همه قواعد یکسان دارند.
چرا FreeCAD؟
- رایگان است و کم حجم.
- ساده است و قوی.
- برای استخراج URDF یک workbench رباتیک دارد و خیلی راحتتر از SOLIDWORKS این کار را انجام میدهد.
- بر روی Ubuntu 22 نصب میشود.
گزینههای دیگری مثل Fusion360 یا Blender نیز با پلاگین خروجی URDF میدهند، اما اگر سادگی ملاک باشد، آن هم در سن ۲۶ سالگی برای یک رباتیک کار چیزی مثل Blender انتخاب خوبی نیست. ترجیح میدهم وقتم را صرف چیز پیچیده دیگری بکنم! 🙂
----------
@roboticknowledge
#URDF #SDF
#Gazebo
مدلهای شبیهسازی رباتی که همراه با mesh هستند و جزئیات خوبی دارند، توسط نرمافزارهای CAD آماده میشوند و به صورت URDF خروجی گرفته میشوند - نوشتن آنها با دست تقریبا غیرممکن است.
امروز از صبح در حال یادگیری قابلیتهای نرمافزار FreeCAD بودم. اینجا در این لیست یوتوب به بهترین شکل آموزش داده شده است.
من قبلاً SOLIDWORKS کار کرده بودم و یادگیری یک نرمافزار دیگر مثل FreeCAD در چنین حالتی بسیار ساده است زیرا معمولا روشها و ابزارهای CAD همه قواعد یکسان دارند.
چرا FreeCAD؟
- رایگان است و کم حجم.
- ساده است و قوی.
- برای استخراج URDF یک workbench رباتیک دارد و خیلی راحتتر از SOLIDWORKS این کار را انجام میدهد.
- بر روی Ubuntu 22 نصب میشود.
گزینههای دیگری مثل Fusion360 یا Blender نیز با پلاگین خروجی URDF میدهند، اما اگر سادگی ملاک باشد، آن هم در سن ۲۶ سالگی برای یک رباتیک کار چیزی مثل Blender انتخاب خوبی نیست. ترجیح میدهم وقتم را صرف چیز پیچیده دیگری بکنم! 🙂
----------
@roboticknowledge
👍4
Robotic Knowledge
#Tools #CAD #URDF #SDF #Gazebo مدلهای شبیهسازی رباتی که همراه با mesh هستند و جزئیات خوبی دارند، توسط نرمافزارهای CAD آماده میشوند و به صورت URDF خروجی گرفته میشوند - نوشتن آنها با دست تقریبا غیرممکن است. امروز از صبح در حال یادگیری قابلیتهای نرمافزار…
#Tools #CAD
#URDF
#Gazebo #ROS2
نکته تکمیلی اول:
من از ورکبنچ CROSS برای ایجاد مدل URDF در FreeCAD استفاده میکنم.
تصویر از محیط FreeCAD من به همراه نمودار درختی ربات ایجاد شده با کمک CROSS گرفته شده است.
—————
@roboticknowledge
#URDF
#Gazebo #ROS2
نکته تکمیلی اول:
من از ورکبنچ CROSS برای ایجاد مدل URDF در FreeCAD استفاده میکنم.
تصویر از محیط FreeCAD من به همراه نمودار درختی ربات ایجاد شده با کمک CROSS گرفته شده است.
—————
@roboticknowledge
👍3
Robotic Knowledge
#Tools #CAD #URDF #Gazebo #ROS2 نکته تکمیلی اول: من از ورکبنچ CROSS برای ایجاد مدل URDF در FreeCAD استفاده میکنم. تصویر از محیط FreeCAD من به همراه نمودار درختی ربات ایجاد شده با کمک CROSS گرفته شده است. ————— @roboticknowledge
#Tools #CAD
#URDF
#Gazebo #ROS2
نکته تکمیلی دوم: CROSS آموزش ندارد. 😂 حتی داکیومنت خاصی هم ندارد!
با تعداد زیادی آزمون و خطا آموختم از آن استفاده کنم. ابزار Set Placement آنها که در تعریف مکان مفصل کاربردی است، باگ دارد و من راه دیگری برای تعریف مفصل پیدا کردم.
این ابزار توسط گروه یک استاد در دانشگاه پراگ جمهوری چک توسعه داده شده است - کلا در رباتیک این دانشگاه خدمات متن باز زیادی داده است - دمشان گرم.
—————
@roboticknowledge
#URDF
#Gazebo #ROS2
نکته تکمیلی دوم: CROSS آموزش ندارد. 😂 حتی داکیومنت خاصی هم ندارد!
با تعداد زیادی آزمون و خطا آموختم از آن استفاده کنم. ابزار Set Placement آنها که در تعریف مکان مفصل کاربردی است، باگ دارد و من راه دیگری برای تعریف مفصل پیدا کردم.
این ابزار توسط گروه یک استاد در دانشگاه پراگ جمهوری چک توسعه داده شده است - کلا در رباتیک این دانشگاه خدمات متن باز زیادی داده است - دمشان گرم.
—————
@roboticknowledge
👍4
Robotic Knowledge
#Tools #CAD #URDF #Gazebo #ROS2 نکته تکمیلی دوم: CROSS آموزش ندارد. 😂 حتی داکیومنت خاصی هم ندارد! با تعداد زیادی آزمون و خطا آموختم از آن استفاده کنم. ابزار Set Placement آنها که در تعریف مکان مفصل کاربردی است، باگ دارد و من راه دیگری برای تعریف مفصل پیدا…
#Tools #CAD
#URDF
#Gazebo #ROS2
نکته تکمیلی سوم:پس از تعریف مدل - شامل لینکها، مفاصل، هندسه واقعی و تصادف، کراس بصورت خودکار با تعریف ماده ویژگیهای اینرسی را محاسبه میکند. نهایتا یک پکیج راس 2 برای ربات تولید میکند که دارای لانچ فایل برای گزبو و آرویز نیز است! 🙂
—————
@roboticknowledge
#URDF
#Gazebo #ROS2
نکته تکمیلی سوم:پس از تعریف مدل - شامل لینکها، مفاصل، هندسه واقعی و تصادف، کراس بصورت خودکار با تعریف ماده ویژگیهای اینرسی را محاسبه میکند. نهایتا یک پکیج راس 2 برای ربات تولید میکند که دارای لانچ فایل برای گزبو و آرویز نیز است! 🙂
—————
@roboticknowledge
👍3
Robotic Knowledge
#Tools #CAD #URDF #Gazebo #ROS2 نکته تکمیلی سوم:پس از تعریف مدل - شامل لینکها، مفاصل، هندسه واقعی و تصادف، کراس بصورت خودکار با تعریف ماده ویژگیهای اینرسی را محاسبه میکند. نهایتا یک پکیج راس 2 برای ربات تولید میکند که دارای لانچ فایل برای گزبو و آرویز…
#URDF #ROS2 #Gazebo #CAD #Tools
و نهایتا لانچ کردن خروجی!
فوقالعاده است.😊
حال هر ساختار رباتیکی که در ذهن دارید میتوانید با این مراحل از CAD به Gazebo و ROS2 برسانید و کابوس URDF را به پایان برسانید.
—————
@roboticknowledge
و نهایتا لانچ کردن خروجی!
فوقالعاده است.😊
حال هر ساختار رباتیکی که در ذهن دارید میتوانید با این مراحل از CAD به Gazebo و ROS2 برسانید و کابوس URDF را به پایان برسانید.
—————
@roboticknowledge
👍3
#URDF #ROS2 #Gazebo #CAD #Tools
https://www.linkedin.com/posts/mjavadzallaghi_roboticists-ros-gazebo-activity-7217814868333084672-Pvmb?utm_source=share&utm_medium=member_desktop
https://www.linkedin.com/posts/mjavadzallaghi_roboticists-ros-gazebo-activity-7217814868333084672-Pvmb?utm_source=share&utm_medium=member_desktop
Linkedin
#Roboticists would like to create robots, simulate them, develop their software, then deploy on the hardware. | Mohammad Javad…
#Roboticists would like to create robots, simulate them, develop their software, then deploy on the hardware.
In #ROS 2 ecosystem, for simulation, we use #Gazebo. But you may ask, how to model the robot and import it in Gazebo?
🐢 For modelling the robot…
In #ROS 2 ecosystem, for simulation, we use #Gazebo. But you may ask, how to model the robot and import it in Gazebo?
🐢 For modelling the robot…
👍5
#ROS2 #Tools
توسعهدهندهای یک برنامه درست کردهاند به نام Turtle Nest که کار دستور
را بصورت GUI انجام میدهد و برای پکیج درست کردن و دپندنسی اضافه کردن دیگر درگیر Command Line نمیشود آدم! استفاده نکردهام اما این تیپ کارها دوست داشتنی هستند.🙂
https://discourse.ros.org/t/introducing-turtle-nest-gui-for-ros-2-package-creation/39229
----------
@roboticknowledge
توسعهدهندهای یک برنامه درست کردهاند به نام Turtle Nest که کار دستور
ros2 pkg create
را بصورت GUI انجام میدهد و برای پکیج درست کردن و دپندنسی اضافه کردن دیگر درگیر Command Line نمیشود آدم! استفاده نکردهام اما این تیپ کارها دوست داشتنی هستند.
https://discourse.ros.org/t/introducing-turtle-nest-gui-for-ros-2-package-creation/39229
----------
@roboticknowledge
Please open Telegram to view this post
VIEW IN TELEGRAM
ROS Discourse
Introducing Turtle Nest: GUI for ROS 2 package creation
Hi everyone, I’m here to announce Turtle Nest - a GUI application to create ROS 2 packages. I started this project recently to make ROS 2 package creation easier and to reduce the likelihood of user-made errors. I believe Turtle Nest will help the beginners…
⚡3 1 1
#Tools
#Computer
فیدبک موقعیت و جهتگیری یک پلتفرم رباتیک بخش بسیار پایهای و مهم در سیستم است. این داده اگر در پلتفرم پایه متحرک مورد نیاز باشد، باید توسط SLAM و Odometery محاسبه شود.
ماژولهای سختافزاری وجود دارد که این مسأله را حل کردهاند. یک نمونه معروف Realsense T265 است که دارای دو fish eye و یک IMU است و با روشهای Visual Slam با دقت مناسبی اطلاعات موقعیتی Local را برای کامپیوتر Master تامین میکند. تفاوت با سیستم موقعیتیابی جهانی این است که در هر محیطی که امکان دیدن وجود داشته باشد، حتی محیط بسته، این سیستم موقعیتیابی لوکال بخوبی کار خواهد کرد. نکته قابل توجه این است که اسلمی که اجرا میشود بر روی خود ماژول است (و شما برای موقعیت سنجی بر روی کامپیوتر اصلی هیچ پردازشی نخواهید داشت) و خروجی موقعیت نرخ 200 هرتز دارد که بسیار خوب است.
----------
@roboticknowledge
#Computer
فیدبک موقعیت و جهتگیری یک پلتفرم رباتیک بخش بسیار پایهای و مهم در سیستم است. این داده اگر در پلتفرم پایه متحرک مورد نیاز باشد، باید توسط SLAM و Odometery محاسبه شود.
ماژولهای سختافزاری وجود دارد که این مسأله را حل کردهاند. یک نمونه معروف Realsense T265 است که دارای دو fish eye و یک IMU است و با روشهای Visual Slam با دقت مناسبی اطلاعات موقعیتی Local را برای کامپیوتر Master تامین میکند. تفاوت با سیستم موقعیتیابی جهانی این است که در هر محیطی که امکان دیدن وجود داشته باشد، حتی محیط بسته، این سیستم موقعیتیابی لوکال بخوبی کار خواهد کرد. نکته قابل توجه این است که اسلمی که اجرا میشود بر روی خود ماژول است (و شما برای موقعیت سنجی بر روی کامپیوتر اصلی هیچ پردازشی نخواهید داشت) و خروجی موقعیت نرخ 200 هرتز دارد که بسیار خوب است.
----------
@roboticknowledge
⚡1
#Tools
گاهی اوقات لازم است تا دورانها را بررسی کنیم تا اطمینان پیدا کنیم ار برخی تبدیلها. این وبسایت برای این چکها خیلی خوب است:
https://www.andre-gaschler.com/rotationconverter/
مثلا دیتای nav_msgs/Odometry جهتگیری را با quaternion فرستاده است و شما میخواهید سریع roll-pitch-yaw را بررسی کنید. این ابزار اینجا به کار میآید!
—————
@roboticknowledge
گاهی اوقات لازم است تا دورانها را بررسی کنیم تا اطمینان پیدا کنیم ار برخی تبدیلها. این وبسایت برای این چکها خیلی خوب است:
https://www.andre-gaschler.com/rotationconverter/
مثلا دیتای nav_msgs/Odometry جهتگیری را با quaternion فرستاده است و شما میخواهید سریع roll-pitch-yaw را بررسی کنید. این ابزار اینجا به کار میآید!
—————
@roboticknowledge
🏆3 3🍾2
#ROS #Tools
زوایای دوران را در بسیاری از مواقع دوست داریم به بازه [pi pi-] انتقال دهیم. چرا؟ ما میدانیم که زاویه 380 درجه برابر با زاویه 20 درجه است و با این تبدیل همواره زوایای جهتگیری را در محدوده [pi pi-] نگه میداریم. مهمترین مکان برای این تبدیل در بحث یادگیری ماشین است که تلاش میشود ورودیهای شبکه بصورت normalized بشوند تا یادگیری آسانتر بشود.
به این تبدیل ssa یا smallest signed angle گفته میشود. فرمول ریاضی این تبدیل بصورت زیر است:
در ROS یک کتابخانه وجود دارد به نام angles که این را پیادهسازی کردهاند و شما میتوانید این تبدیل را براحتی انجام دهید:
میتوانید داکیومنت همه توابع این کتابخانه را اینجا ببینید:
http://docs.ros.org/en/jade/api/angles/html/angles_8h.html
—————
@roboticknowledge
زوایای دوران را در بسیاری از مواقع دوست داریم به بازه [pi pi-] انتقال دهیم. چرا؟ ما میدانیم که زاویه 380 درجه برابر با زاویه 20 درجه است و با این تبدیل همواره زوایای جهتگیری را در محدوده [pi pi-] نگه میداریم. مهمترین مکان برای این تبدیل در بحث یادگیری ماشین است که تلاش میشود ورودیهای شبکه بصورت normalized بشوند تا یادگیری آسانتر بشود.
به این تبدیل ssa یا smallest signed angle گفته میشود. فرمول ریاضی این تبدیل بصورت زیر است:
signed reminder((angle + pi), 2pi) - pi
در ROS یک کتابخانه وجود دارد به نام angles که این را پیادهسازی کردهاند و شما میتوانید این تبدیل را براحتی انجام دهید:
static double angles::normalize_angle (double angle)
میتوانید داکیومنت همه توابع این کتابخانه را اینجا ببینید:
http://docs.ros.org/en/jade/api/angles/html/angles_8h.html
—————
@roboticknowledge
⚡6