جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
فهم الطريقة التي ينظم بها ROS الكود والرسائل والإعدادات
ROS؟my_ros_package/
├── CMakeLists.txt
├── package.xml
├── launch/
├── src/
├── include/
├── msg/
├── srv/
├── scripts/
└── config/Package)ROS.launch)ROSCMakeLists.txt وpackage.xmlCMakeLists.txtCMake، نظام البناء المستخدم في ROS. يحدد كيفية تجميع (compile) وربط (link) الكود، والاعتماديات (dependencies) المطلوبة، وكيفية توليد الرسائل والخدمات.package.xmlsrc/، include/، scripts/#include <ros/ros.h>
int main(int argc, char **argv) {
ros::init(argc, argv, "my_node");
ros::NodeHandle nh;
ROS_INFO("Node is running");
ros::spin();
return 0;
}src/C++ أو Python.include/C++ الكبيرة.scripts/Python القابلة للتنفيذ والأدوات المساعدة.msg/ وsrv/msg/Topics. تعريف الرسالة قائمة من الحقول المحددة النوع، مثل حقل واحد من نوع int32 باسم data.srv/--- داخل التعريف.C++ أو Pythonlaunch/ وconfig/launch/XML وتساعد في إدارة أنظمة الروبوتات الكبيرة متعددة العقد.config/YAML، وتستخدم لتمرير المعاملات (parameters) إلى العقد.catkin_create_pkg my_ros_package roscpp rospy std_msgs
cd ~/catkin_ws
catkin_make
rosrun my_ros_package my_node
roslaunch my_ros_package my_robot.launchcatkin_create_pkgcatkin_makeworkspace).rosrunroslaunchlaunch file).تطبيق عملي
mkdir ros_ws && cd ros_ws && mkdir src
catkin_make
cd src && catkin_create_pkg helloworld_pkg roscpp rospy std_msgs
source devel/setup.bash
rosrun helloworld_pkg publisher_node
rosrun helloworld_pkg subscriber_nodecatkin تحتوي على مجلد src/، ثم ابنها مرة واحدة باستخدام catkin_makesrc/ باستخدام catkin_create_pkgpublisher وsubscriber، ثم أعد البناء باستخدام catkin_makesource devel/setup.bash بعد كل عملية بناءpublisher وsubscriber باستخدام rosrun لرؤية تواصلهماROS تجمع العقد والمكتبات والرسائل والخدمات والسكربتات والإعدادات في وحدة واحدة منظمةCMakeLists.txt وpackage.xml يحددان كيفية بناء الحزمة وما تعتمد عليهmsg/ وsrv/ يعرفان أنواع التواصل المخصصة للـ Topics والخدماتlaunch/ تشغل عدة عقد معا؛ ومجلد config/ يخزن معاملاتها بصيغة YAMLcatkin_create_pkg وcatkin_make وrosrun/roslaunch تشكل سير العمل الأساسي للحزمsource devel/setup.bash بعد البناء، وإلا فلن تكتشف مساحة العمل الحزم الجديدةMahmoud Abas|هيكل حزمة ROS