Mục lục:
- Bước 1: Kiến thức cơ bản
- Bước 2: Thu thập các vật liệu cần thiết
- Bước 3: Cách thức hoạt động
- Bước 4: Thiết lập Nhà môi giới MQTT
- Bước 5: Cài đặt Kinect SDK V1.8
- Bước 6: Cài đặt Python V2.7
- Bước 7: Mã hóa
Video: Robot Nao bắt chước các chuyển động bằng Kinect: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Trong phần hướng dẫn này, tôi sẽ giải thích cho bạn cách chúng tôi để một robot Nao bắt chước các chuyển động của chúng tôi bằng cách sử dụng cảm biến động năng. Mục tiêu thực tế của dự án là mục đích giáo dục: một giáo viên có khả năng ghi lại một số động tác nhất định (ví dụ: một điệu nhảy) và có thể sử dụng các đoạn ghi âm này để cho trẻ em trong lớp học bắt chước robot. Bằng cách thực hiện toàn bộ từng bước có thể hướng dẫn này, bạn sẽ có thể tạo lại toàn bộ dự án này.
Đây là một dự án liên quan đến trường học (NMCT @ Howest, Kortrijk).
Bước 1: Kiến thức cơ bản
Để tạo lại dự án này, bạn phải có một số kiến thức cơ bản:
- Kiến thức cơ bản về python
- Kiến thức cơ bản về C # (WPF)
- Kiến thức lượng giác cơ bản
- Kiến thức về cách thiết lập MQTT trên Raspberry Pi
Bước 2: Thu thập các vật liệu cần thiết
Vật liệu cần thiết cho dự án này:
- Raspberry Pi
- Cảm biến Kinect v1.8 (Xbox 360)
- Nao rô bốt hoặc rô bốt tàn bạo (Choregraph)
Bước 3: Cách thức hoạt động
Cảm biến kinect được kết nối với máy tính chạy ứng dụng WPF. Ứng dụng WPF gửi dữ liệu đến ứng dụng Python (robot) bằng MQTT. Các tệp cục bộ sẽ được lưu nếu người dùng chọn như vậy.
Giải thích chi tiết:
Trước khi chúng tôi bắt đầu ghi, người dùng phải nhập địa chỉ ip của nhà môi giới MQTT. Bên cạnh đó, chúng tôi cũng cần chủ đề mà chúng tôi muốn xuất bản dữ liệu. Sau khi nhấn bắt đầu, ứng dụng sẽ kiểm tra xem kết nối có thể được thiết lập với nhà môi giới hay không và nó sẽ cung cấp cho chúng tôi phản hồi. Không thể kiểm tra xem chủ đề có tồn tại hay không, vì vậy bạn hoàn toàn chịu trách nhiệm về chủ đề này. Khi cả hai đầu vào đều OK, ứng dụng sẽ bắt đầu gửi dữ liệu (tọa độ x, y & z tạo thành từng khớp) từ khung đang được theo dõi đến chủ đề trên MQTT broker.
Vì rô bốt được kết nối với cùng một nhà môi giới MQTT và đã đăng ký về cùng một chủ đề (điều này cũng phải được nhập trong ứng dụng python) nên ứng dụng python bây giờ sẽ nhận dữ liệu từ ứng dụng WPF. Sử dụng lượng giác và các thuật toán tự viết, chúng tôi chuyển đổi các coördinate thành góc và radian, chúng tôi sử dụng để quay các động cơ bên trong robot trong thời gian thực.
Khi người dùng ghi xong, anh ta nhấn nút dừng. Bây giờ người dùng nhận được một cửa sổ bật lên hỏi anh ta có muốn lưu bản ghi âm hay không. Khi người dùng nhấn nút hủy, mọi thứ sẽ được đặt lại (dữ liệu bị mất) và một bản ghi mới có thể được bắt đầu. Nếu người dùng muốn lưu bản ghi âm, họ nên nhập tiêu đề và nhấn 'lưu'. Khi nhấn 'lưu', tất cả dữ liệu thu được sẽ được ghi vào tệp cục bộ bằng cách sử dụng đầu vào tiêu đề làm tên tệp. Tệp cũng được thêm vào listview ở phía bên phải của màn hình. Bằng cách này, sau khi nhấp đúp vào mục nhập mới trong chế độ xem danh sách, tệp sẽ được đọc và gửi đến nhà môi giới MQTT. Do đó, robot sẽ phát đoạn ghi âm.
Bước 4: Thiết lập Nhà môi giới MQTT
Để giao tiếp giữa kinect (dự án WPF) và rô bốt (dự án Python), chúng tôi đã sử dụng MQTT. MQTT bao gồm một nhà môi giới (một máy tính linux trên đó phần mềm mqtt (ví dụ: Mosquitto)) đang chạy và một chủ đề mà khách hàng có thể đăng ký (họ nhận được thông báo từ chủ đề) và xuất bản (họ đăng thông báo về chủ đề đó).
Để thiết lập nhà môi giới MQTT, chỉ cần tải xuống toàn bộ hình ảnh jessie này. Đây là một bản cài đặt rõ ràng cho bạn Raspberry Pi với một nhà môi giới MQTT trên đó. Chủ đề là "/ Sandro".
Bước 5: Cài đặt Kinect SDK V1.8
Để kinect hoạt động trên máy tính của bạn, bạn phải cài đặt Microsoft Kinect SDK.
Bạn có thể tải về tại đây:
www.microsoft.com/en-us/download/details.a…
Bước 6: Cài đặt Python V2.7
Robot hoạt động với khung NaoQi, khung này chỉ khả dụng cho python 2.7 (KHÔNG PHẢI 3.x), vì vậy hãy kiểm tra phiên bản python bạn đã cài đặt.
Bạn có thể tải xuống python 2.7 tại đây:
www.python.org/downloads/release/python-27…
Bước 7: Mã hóa
Github:
Ghi chú:
- Mã hóa với kinect: trước hết bạn tìm kiếm kinect được kết nối. Sau khi lưu cái này bên trong một thuộc tính, chúng tôi đã bật màu và dòng xương trên kinect. Colorstream là video trực tiếp, trong khi khung xương có nghĩa là một bộ xương của người trước máy ảnh sẽ được hiển thị. Colorstream không thực sự cần thiết để dự án này hoạt động, chúng tôi chỉ kích hoạt nó bởi vì việc ánh xạ bitmapping từ dòng xương sang dòng màu trông rất mượt!
- Trong thực tế, nó thực sự là dòng xương thực hiện công việc. Bật dòng xương có nghĩa là bộ xương của người đang được theo dõi. Từ bộ xương này, bạn nhận được tất cả các loại thông tin, ví dụ. định hướng xương, thông tin chung,… Chìa khóa cho dự án của chúng tôi là thông tin chung. Sử dụng tọa độ x-y & z của từng khớp từ khung xương được theo dõi, chúng tôi biết mình có thể làm cho rô-bốt di chuyển. Vì vậy, cứ sau 0,8 giây (sử dụng bộ đếm thời gian), chúng tôi xuất bản tọa độ x, y & z của từng khớp cho nhà môi giới mqtt.
- Vì dự án python có mã hóa con trên nhà môi giới mqtt, giờ đây chúng tôi có thể tích lũy dữ liệu bên trong dự án này. Bên trong mỗi khớp của robot là hai động cơ. Những động cơ này không thể được điều khiển bằng cách sử dụng trực tiếp các tọa độ x, y & z. Vì vậy, bằng cách sử dụng lượng giác và một số nhận thức thông thường, chúng tôi đã chuyển đổi tọa độ x, y & z của các khớp thành các góc có thể hiểu được đối với rô bốt.
Vì vậy, về cơ bản cứ mỗi 0,8 giây, dự án WPF xuất bản tọa độ x, y & z của mỗi khớp. Do đó, bên trong dự án python, các coordiant này được chuyển đổi thành các góc, sau đó được gửi đến các động cơ tương ứng của robot.
Đề xuất:
Làm thế nào để đạt được bất kỳ điện trở / điện dung nào bằng cách sử dụng các thành phần bạn đã có!: 6 bước
Làm thế nào để đạt được bất kỳ điện trở / điện dung nào bằng cách sử dụng các thành phần bạn đã có !: Đây không chỉ là một máy tính điện trở nối tiếp / song song khác! Chương trình này tính toán cách kết hợp các điện trở / tụ điện mà bạn hiện có để đạt được giá trị điện trở / điện dung mục tiêu mà bạn cần
Làm thế nào để sử dụng đồng hồ vạn năng trong tiếng Tamil. Hướng dẫn cho người mới bắt đầu - Đồng hồ vạn năng cho người mới bắt đầu: 8 bước
Làm thế nào để sử dụng đồng hồ vạn năng trong tiếng Tamil. Hướng dẫn cho người mới bắt đầu | Đồng hồ vạn năng dành cho người mới bắt đầu: Xin chào các bạn, Trong hướng dẫn này, tôi đã giải thích cách sử dụng đồng hồ vạn năng trong tất cả các loại mạch điện tử theo 7 bước khác nhau, chẳng hạn như 1) kiểm tra tính liên tục khi phần cứng gặp sự cố 2) Đo dòng điện một chiều 3) kiểm tra Diode và đèn LED 4) Đo Resi
Robot Arduino có khoảng cách, hướng và mức độ xoay (Đông, Tây, Bắc, Nam) được điều khiển bằng giọng nói sử dụng mô-đun Bluetooth và chuyển động của robot tự động: 6 bước
Robot Arduino có khoảng cách, hướng và mức độ xoay (Đông, Tây, Bắc, Nam) được điều khiển bằng giọng nói sử dụng mô-đun Bluetooth và chuyển động của robot tự động: Tài liệu hướng dẫn này giải thích cách chế tạo Robot Arduino có thể di chuyển theo hướng cần thiết (Tiến, lùi , Trái, Phải, Đông, Tây, Bắc, Nam) yêu cầu Khoảng cách tính bằng Centimet bằng lệnh Thoại. Robot cũng có thể được di chuyển tự động
[Robot Arduino] Làm thế nào để tạo ra một robot ghi lại chuyển động - Robot ngón tay cái - Động cơ Servo - Mã nguồn: 26 bước (có hình ảnh)
[Robot Arduino] Làm thế nào để tạo ra một robot ghi lại chuyển động | Robot ngón tay cái | Động cơ Servo | Mã nguồn: Thumbs Robot. Đã sử dụng một chiết áp của động cơ servo MG90S. Nó là rất thú vị và dễ dàng! Mã rất đơn giản. Nó chỉ có khoảng 30 dòng. Nó trông giống như một bức ảnh chụp chuyển động. Vui lòng để lại bất kỳ câu hỏi hoặc phản hồi nào! [Hướng dẫn] Mã nguồn https: //github.c
Chuyển đổi (chỉ Giới thiệu) Bất kỳ Tập tin Phương tiện nào sang (Chỉ Giới thiệu) Bất kỳ Tập tin Phương tiện nào Khác miễn phí !: 4 bước
Chuyển đổi (chỉ Giới thiệu) Bất kỳ tệp phương tiện nào thành (chỉ Giới thiệu) Bất kỳ tệp phương tiện nào khác miễn phí !: Lời hướng dẫn đầu tiên của tôi, xin chúc mừng! Dù sao, tôi đã lên Google để tìm kiếm một chương trình miễn phí có thể chuyển đổi tệp Youtube.flv của tôi sang định dạng phổ biến hơn, như.wmv hoặc.mov. Tôi đã tìm kiếm vô số diễn đàn và trang web và sau đó tìm thấy một chương trình có tên