Ở đâ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
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
chmod +x scripts/add_two_ints_server.py
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ích
Bâ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ách
Mậ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ích
Bâ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ạn
Chú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
2
3
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 Python
Chạy từ thiết bị đầu cuối
Bạ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.
Nếu bạn sử dụng Windows, thư mục sẽ được hiển thị trong tiêu đề dòng lệnh bra.
Để 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