ROS 2 PACKAGE SCAFFOLDER
Mô Tả
Tự động sinh mã nguồn boilerplate tuân thủ nghiêm ngặt các quy tắc về cấu trúc thư mục, tệp cấu hình linter, và dependency injection.
Mẫu Template (Templates)
1. Gói Ament CMake (C++)
Tạo cấu trúc cho component C++:
bash
ros2 pkg create --build-type ament_cmake --dependencies rclcpp rclcpp_components std_msgs --node-name <node_name> <package_name>
Hành động bổ sung của Agent:
- •Thêm tệp
.clang-formatvào gốc gói tin. - •Sửa đổi
CMakeLists.txtđể thêm khốiament_lint_auto. - •Chuyển đổi
main.cppthành Component class structure (kế thừarclcpp::Node, đăng ký macro).
2. Gói Ament Python
Tạo cấu trúc cho node Python:
bash
ros2 pkg create --build-type ament_python --dependencies rclpy std_msgs --node-name <node_name> <package_name>
Hành động bổ sung của Agent:
- •Tạo tệp
setup.cfgcấu hình flake8. QUAN TRỌNG: Phải giữ nguyên các section[develop]và[install]mặc định của ROS 2. Chỉ chèn thêm section[flake8]vào cuối file. Không được overwrite toàn bộ file. - •Tạo thư mục
test/với các bài test linter (test_flake8.py,test_pep257.py). - •Đảm bảo
package.xmlchứa<test_depend>ament_copyright</test_depend>,<test_depend>ament_flake8</test_depend>.
3. Gói Interface
Tạo gói chứa định nghĩa tin nhắn tùy chỉnh:
bash
ros2 pkg create --build-type ament_cmake antgravity_interfaces
Hành động bổ sung của Agent:
- •Xóa thư mục
src/vàinclude/mặc định (vì interface package không chứa code). - •Tạo thư mục
msg/,srv/,action/. - •Cấu hình
CMakeLists.txttìm góirosidl_default_generatorsvà gọirosidl_generate_interfaces. - •Cấu hình
package.xmlthêmrosidl_default_generators(buildtool),rosidl_default_runtime(exec), vàmember_of_group(rosidl_interface_packages).