تعریف پیام های سفارشی در ROS
توضیحات: در این آموزش نحوه تعریف انواع پیامهای سفارشی به روش توصیف پیام در ROS ارائه میشود.
۱-تولید پیام ها
در رابطه با نحوه تولید پیامها قبلاً در بخش ایجاد فایلهای msg و srv در ROS به طور مفصل بحث شد و همانطور که دیدید ساخت یک پیام کار آسانی است و برای این کار باید یک فایل با پسوند.msg در مسیر msg درون پکیج مورد نظر بسازید.
نحوه واردکردن پیامها
در C++:
پیامها داخل یک namespace همنام با پکیج قرار میگیرند به عنوان مثال:
#include <std_msgs/String.h>
std_msgs::String msg;
from std_msgs.msg import String
msg = String()
وابستگیها:
اگر شما بخواهید از یک پیام سفارشی که در یک پکیج دیگر تعریف شده است، استفاده کنید باید با وارد کردن کدی مشابه زیر در فایل package.xml این وابستگی را اعلام کنید و در آن به جای عبارت name_of_package_containing_custom_msg نام پکیج موردنظر را وارد کنید.
<build_depend>name_of_package_containing_custom_msg</build_depend>
<exec_depend>name_of_package_containing_custom_msg</exec_depend>
همچنین باید خط زیر را به فایل CMakeList.txt اضافه کنید.
add_dependencies(your_program ${catkin_EXPORTED_TARGETS})
به این نکته نیز توجه داشته باشید که اگر نودهایی که ایجاد کردهاید از پیامهای جدید استفاده میکنند باید وابستگی بین نود و پیام را مطابق آنچه در ایجاد فایلهای msg و srv در ROS توضیح داده شده تعریف کنید.