2-15- دموی رآس: turtlesim

این بخش یک برنامه جالب برای یادگیری مفاهیم رآس ارائه می‌دهد. این برنامه کاربردی turtlesim نامیده می‌شود که یک شبیه‌ساز دوبعدی حاوی یک لاک‌پشت است. شما می‌توانید با استفاده از تاپیک­ها، سرویس­ها و پارامترهای رآس لاک‌پشت را حرکت دهید، موقعیت فعلی لاک‌پشت را بخوانید، الگوی لاک‌پشت را تغییر دهید، و کارهای دیگری روی آن انجام دهید. هنگام کار با turtlesim، از چگونگی  کنترل یک ربات با استفاده از رآس ایده می‌گیرید.

برنامه turtlesim به طور پیشفرض بر روی رآس نصب شده است. این برنامه را با استفاده از دستورات زیر شروع کنید.

Starting roscore

$ roscore

Starting Turtlesim application

$ rosrun turtlesim turtlesim_node

داشتن صفحه نمایشی مانند آنچه در شکل 4-20 نشان داده شده است بدان معنی است که همه چیز خوب کار می‌کند.

شکل ‏4‑20: Turtlesim

حالا یک ترمینال جدید باز کنید و فهرست تاپیک­ها را بگیرید.

$ rostopic list

تاپیک­های شکل 4-21 را می‌بینید.

شکل ‏4‑21: تاپیک‌های Turtlesim

شکل 4-22 فهرست سرویس­های ایجاد شده توسط گره turtlesim را نشان می­دهد. با استفاده از دستور زیر می‌توانید فهرست سرویس­ها را بگیرید.

$ rosservice list

شکل ‏4‑22: فهرست سرویس‌های رآس

پارامترهای رآس را همانند شکل 4-23 با استفاده از دستور زیر فهرست کنید.

$ rosparam list

شکل ‏4‑23: فهرست پارامترهای رآس

2-15-1- حرکت دادن لاکپشت

اگر می‌خواهید لاک‌پشت را حرکت دهید، با استفاده از دستور زیر یک گره رآس دیگر را شروع کنید. این دستور باید در ترمینال دیگری اجرا شود.

$ rosrun turtlesim turtle_teleop_key

شما می‌توانید با استفاده از کلیدهای پیکان صفحه کلید خود لاک­پشت را کنترل کنید. هنگامی‌که یک کلید پیکان را فشار می‌دهید آن کلید سرعت را به تاپیک /turtle1/cmd_vel می‌فرستد که باعث حرکت لاک‌پشت می‌شود (به شکل 4-24 نگاه کنید).

شکل ‏4‑24: مسیری که لاکپشت می‌پیماید

اگر می‌خواهید بک اند این گره‌ها را ببینید، نمودار شکل 4-25 را مرور کنید. این نمودار داده‌های تاپیک ارسالی به turtlesim را نشان می‌دهد.

شکل ‏4‑25: بک اند گره­های Turtlesim  و teleop

2-15-2- حرکت دادن لاکپشت در یک مربع

این بخش نشان می‌دهد چگونه لاک‌پشت را روی مسیر مربعی حرکت دهید. با فشار دادن Ctrl + C همه گره‌های در حال اجرا را ببندید و با استفاده از دستورات زیر فصلی جدید از turtlesim را آغاز کنید (به شکل 4-26 نگاه کنید).

Starting roscore

$ roscore

Starting turtlesim node

$ rosrun turtlesim turtlesim_node

Starting the node for drawing square

$ rosrun turtlesim draw_square

شکل ‏4‑26: رسم مربع در turtlesim

اگر بخواهیم turtlesim را پاک کنیم، می‌توانیم سرویسی به‌نام /reset را فراخوانی کنیم.

$ rosservice call /reset

این دستور موقعیت لاک‌پشت را بازنشانی می‌کند.

در بخش بعدی، به ابزارهای گرافیکی رآس GUI نگاهی می‌اندازیم.