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

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.py
0

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.py
1
chmod +x scripts/add_two_ints_server.py
2

Để 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

Chủ Đề