از طریق متلب با یک برنامه به تاپیک مورد نظر سابسکرایب میشم و داده های اون تاپیک رو چاپ میکنم.اما یک سری از داده ها به نظر میرسه که از بین میرن در حالی که در ros با دستور echo تعداد داده ها بیشتره.زمان نمونه برداری بیشتره انگار.در متلب چطور زمان نمونه برداری رو افزایش بدیم؟
اشتراک گذاری
محمدرضا شاهمیری
با سلام
در صورتی که شما برای دریافت پیام ها از بلوک subscribe سیمولینک استفاده کنید میتوانید در بخش تنظیمات بلوک پارامتر
Sample time
را تنظیم کنید.به صورت کلی به این نکته توجه داشته باشید که وضوح برنامه ریزی سیستم عامل شما و سطح سایر فعالیت های سیستم می تواند بر روی نرخ اجرای برنامه تأثیر بگذارد. همچنین، زمان دقیق نرخ برای اجرای کد متلب محدود به ۱۰۰ هرتز است لذا در صورتی که تاپیک های شما در ROS با نرخ بیشتری تولید شوند متلب قادر به دریافت تمامی آنها نخواهد بود.
(برای اطلاع از نرخ انتشار تاپیک خود در ROS می توانید از دستور rostopic hz /topic_name استفاده کنید.)
لذا میتوانید در صورتی که به دقت های خیلی بالا نیاز ندارید، نرخ اجرای برنامه در ROS را کاهش دهید تا تمامی داده ها قابل انتقال باشند.
در صورتی که تمامی داده ها و با دقت بالا برای شما اهمیت دارند پیشنهاد میشود که به صورت کلی برای بهبود عملکرد و سرعت عملکرد برنامه نویسی خود را در محیط ROS انجام دهید.