Tạo tập lệnh python
Ở đây, chúng tôi sẽ tạo nút dịch vụ ("add_two_ints_server") sẽ nhận hai số nguyên và trả về tổng Show Thay đổi thư mục thành gói begin_tutorials mà bạn đã tạo trong hướng dẫn trước đó, tạo một gói $ roscd beginner_tutorials Vui lòng đảm bảo rằng bạn đã làm theo hướng dẫn trong hướng dẫn trước để tạo dịch vụ cần thiết trong hướng dẫn này, tạo AddTwoInts. srv (đảm bảo chọn đúng phiên bản công cụ xây dựng mà bạn đang sử dụng ở đầu trang wiki trong liên kết) Mật mãTạo tập lệnh/add_two_ints_server. py trong gói begin_tutorials và dán đoạn mã sau vào bên trong gói Đừng quên làm cho nút có thể thực thi được
Thêm phần sau vào CMakeLists của bạn. txt. Điều này đảm bảo tập lệnh python được cài đặt đúng cách và sử dụng đúng trình thông dịch python catkin_install_python(PROGRAMS scripts/add_two_ints_server.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) Mã giải thíchBây giờ, hãy chia nhỏ mã Có rất ít để viết một dịch vụ bằng cách sử dụng rospy. Chúng tôi khai báo nút của mình bằng cách sử dụng init_node() và sau đó khai báo dịch vụ của chúng tôi 12 s = rospy.Service('add_two_ints', AddTwoInts, handle_add_two_ints) Điều này khai báo một dịch vụ mới có tên add_two_ints với loại dịch vụ AddTwoInts. Tất cả các yêu cầu được chuyển đến hàm handle_add_two_ints. handle_add_two_ints được gọi với các phiên bản của AddTwoIntsRequest và trả về các phiên bản của AddTwoIntsResponse Cũng giống như ví dụ về người đăng ký, rospy. spin() ngăn mã của bạn thoát cho đến khi dịch vụ bị tắt Viết nút máy kháchMật mãTạo tập lệnh/add_two_ints_client. py trong gói begin_tutorials và dán đoạn mã sau vào bên trong gói Đừng quên làm cho nút có thể thực thi được $ chmod +x scripts/add_two_ints_client.py Sau đó, chỉnh sửa cuộc gọi catkin_install_python() trong CMakeLists của bạn. txt để nó trông giống như sau catkin_install_python(PROGRAMS scripts/add_two_ints_server.py scripts/add_two_ints_client.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) Mã giải thíchBây giờ, hãy chia nhỏ mã Mã khách hàng gọi dịch vụ cũng đơn giản. Đối với khách hàng, bạn không cần phải gọi init_node(). Đầu tiên chúng tôi gọi 10 rospy.wait_for_service('add_two_ints') Đây là một phương pháp tiện lợi chặn cho đến khi dịch vụ có tên add_two_ints khả dụng Tiếp theo, chúng tôi tạo một tay cầm để gọi dịch vụ 12 add_two_ints = rospy.ServiceProxy('add_two_ints', AddTwoInts) Chúng ta có thể sử dụng handle này giống như một hàm bình thường và gọi nó là ________số 8 Bởi vì chúng tôi đã khai báo loại dịch vụ là AddTwoInts, nên nó thực hiện công việc tạo đối tượng AddTwoIntsRequest cho bạn (thay vào đó, bạn có thể tự chuyển qua đối tượng của riêng mình). Giá trị trả về là một đối tượng AddTwoIntsResponse. Nếu cuộc gọi không thành công, một màu hồng. ServiceException có thể bị ném, vì vậy bạn nên thiết lập khối thử/ngoại trừ thích hợp Xây dựng các nút của bạnChúng tôi sử dụng CMake làm hệ thống xây dựng của mình và vâng, bạn phải sử dụng nó ngay cả đối với các nút Python. Điều này là để đảm bảo rằng mã Python được tạo tự động cho các tin nhắn và dịch vụ được tạo Chúng tôi cũng sử dụng Makefile để thuận tiện. roscreate-pkg đã tự động tạo một Makefile nên bạn không cần phải chỉnh sửa nó Văn bản dưới đây có thể được sao chép vào trình soạn thảo văn bản và lưu dưới dạng xin chào. py. Python hoạt động với các tệp kết thúc bằng. py 1 chmod +x scripts/add_two_ints_server.py0 Bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào để tạo chương trình Python. Tôi khuyên bạn nên sử dụng trình soạn thảo văn bản hỗ trợ đánh dấu cú pháp (tô màu văn bản) và số dòng khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python Chạy PythonChạy từ thiết bị đầu cuốiBạn có thể bắt đầu một chương trình Python bằng thiết bị đầu cuối hoặc dòng lệnh. Điều này hoạt động trên tất cả các nền tảng (Mac OS, Windows, Linux) Để mở một thiết bị đầu cuối trên Windows. nhấn phím windows + phím r (chạy chương trình), gõ cmd hoặc lệnh và nhấn enter Trên Mac OS, sử dụng công cụ tìm để khởi động thiết bị đầu cuối. Bạn có thể nhấn lệnh + dấu cách và gõ terminal, sau đó nhấn enter bắt đầu chương trìnhĐể bắt đầu chương trình, chúng ta phải mở dòng lệnh và gõ chmod +x scripts/add_two_ints_server.py1 chmod +x scripts/add_two_ints_server.py2 Để làm việc này, bạn cần vào đúng thư mục. Điều đó có nghĩa là, thư mục chứa chương trình python của bạn Trên Mac OS và Linux, bạn có thể xem thư mục hiện tại bằng lệnh pwd. Để thay đổi thư mục, hãy sử dụng lệnh 'cd' như thế này 'cd /home/user/pythonprojects' hoặc 'cd C. \Dự án\’ Chạy từ IDEĐể chạy tập lệnh Python từ IDE, trước tiên hãy bắt đầu một dự án. Sau khi dự án được tạo, hãy thêm. py (hoặc tạo chúng trong IDE) và nhấn chạy |