Thiết kế và thi công robot thông minh huấn luyện chơi cầu lông sử dụng thuật toán nhận dạng chuyển động 3D
Bạn đang xem tài liệu "Thiết kế và thi công robot thông minh huấn luyện chơi cầu lông sử dụng thuật toán nhận dạng chuyển động 3D", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
thiet_ke_va_thi_cong_robot_thong_minh_huan_luyen_choi_cau_lo.pdf
Nội dung text: Thiết kế và thi công robot thông minh huấn luyện chơi cầu lông sử dụng thuật toán nhận dạng chuyển động 3D
- THIẾT KẾ VÀ THI CÔNG ROBOT THÔNG MINH HUẤN LUYỆN CHƠI CẦU LÔNG SỬ DỤNG THUẬT TOÁN NHẬN DẠNG CHUYỂN ĐỘNG 3D Trần Nguyên Soái 1, Nguyễn Văn Thái2 1 Trường đại học Sư phạm Kỹ thuật TP.HCM 2 Trường đại học Sư phạm Kỹ thuật TP.HCM TÓM TẮT Bài báo này giới thiệu kết quả “ Thiết kế và thi công Robot thông minh huấn luyện chơi cầu lông sử dụng thuật toán chuyển động 3D”. Sau khi nghiên cứu và thực nghiệm, tác giả đã xây dựng một Robot phát cầu kết hợp với việc nhận diện người chơi. Trên nền tảng vận hành cũng như sự cân bằng động cho Robot, tác giả sử dụng cơ cấu hai bánh đà để phát cầu, kết hợp các cơ cấu trục xoay để phát cầu ở những góc độ khác nhau. Một camera 3D Xtion Pro Lived được áp dụng để cho dữ liệu ảnh RGB và ảnh độ sâu của khung cảnh, từ hai dữ liệu này ta có thể chuyển thành dữ liệu mây điểm 3D của khung cảnh. Một thuật toán được áp dụng để tiến hành theo dỏi người đang đứng trước Camera và tính toán các góc đặc biệt. Sau đó, những góc này sẽ được dùng để nhận diện vị trí người được theo giỏi trên. Cuối cùng việc kết hợp giữa thiết kế phần cứng Robot và giải thuật theo dõi của 3D Xtion Pro Lived cho ra kết quả một Robot thông minh huấn luyện người chơi cầu lông. Từ khóa: Robot, camera 3D, bánh đà, cầu lông, ảnh độ sâu. ABSTRACT This paper introduces results “ Design and construction intelligent Robot training badminton players using 3D motion recognition algorithm”. After research and experimentation, we have built a robot development needs associated with the identification of the player is recommended. On the operating platform as well as a dynamic balance for Robot authors use two rollers mechanis to detect structure to combine the rotation axis to generate demand at different angles. A 3D camera Xtion Pro Lived applied to the RGB image data and photos of the scene depth from two data can be converted to 3D point cloud data of the scene. An algorithm is applied to conduct follow good people facing camera and calculates the special corner. Then the angle will be used to identify people who are under solid position on. Finally the combination of robot hardware design and algorithm according Xtion Pro 3D solid results Lived for an intelligent robot badminton players training. Keywords : Robot, 3D camera, rollers mechain, badminton, depth photos. I. GIỚI THIỆU: các đặc tính của bộ môn cầu lông được nhiều Trong những năm gần đây, khoa học nhà khoa học tìm hiểu và phát triển. Có nhiều công nghệ phát triển mạnh mẽ và đã đạt được phương pháp, thuật toán khác nhau được nhiều thành tựu trong nhiều ngành, nhiều lĩnh nghiên cứu và công bố phục vụ cho việc thiết vực khác nhau. Hiện nay, với sự phát triển kế, xây dựng robot huấn luyện chơi cầu lông. của thể dục thể thao, khoa học công nghệ II. CƠ SỞ LÝ THUYẾT: cũng ngày càng áp dụng rộng rãi nhằm nâng 1. Thiết kế Robot phát cầu bằng cao kỹ năng của các cầu thủ. Robot huấn phần mền Solidworks luyện chơi cầu lông là một trong những giải Dựa vào những kết quả đạt được từ thiết pháp và thành tựu của khoa học kỹ thuật cho kế máy bắn cầu lông sử dụng hai bánh đà[1], sự phát triển bộ môn này. Xây dựng, nghiên [2], tác giả đã thiết kế một Robot thông minh cứu robot huấn luyện, chơi cầu, cũng như huấn luyện chơi cầu lông trước tiên bằng phần
- mềm Solidwork gồm những bộ phận chính: đó đường kính bánh đà 132 mm, độ rộng 15 là cơ cấu giữ cầu, cơ cấu lấy cầu, cơ cấu phát mm, cả hai bánh được nối trực tiếp với động cầu, cơ cấu tạo góc bắn cầu ( nâng hạ tạo góc cơ DC. Tốc độ quay động cơ là 0-4884 cho cơ cấu phát cầu), cơ cấu xoay định vị trí vòng/phút. Sự thay đổi tốc độ cơ dựa vào bắn cầu, cơ cấu đế đỡ[14]. điều khiển của board điều kiển Arduino Mega[12]. Cơ cấu phát cầu lông sử dụng lực ma sát bánh đà với nút trái cầu lông. Tốc độ quả cầu và những cú phóng của máy có thể đạt được bằng những thay đổi tốc độ quay của bánh đà. Cơ cấu phát cầu là phần quan trọng và là cơ cấu chính trong Robot phát cầu. Như các nghiên cứu trước, các tác giả chỉ chú trọng nhiều tới cơ cấu phát cầu này[1], [2]. Hình 1: Robot phát cầu trên phần mền solidworks a. Cơ cấu giữ cầu: Dựa vào đặt tính trái cầu lông như hình Hình a Hình b Hình c 2a, tác giả thiết kế ống chứa cầu 72mm như Hình 4: Động cơ và các chi tiết cơ cấu phát hình 2b chứa được trái cầu có đường kính cầu lông. 68mm. Trái cầu sẽ được giữ lại bởi bộ phận d. Cơ cấu xác định vị trí, tọa đô bắn cầu giữ cầu với đường kính trong là 40 m như của Robot phát cầu lông. hình 2c. Cơ cấu này sử dụng động cơ Servo cùng các thiết kế cơ khí khác nhằm mục đích nâng hạ và xoay cơ cấu phát cầu sử dụng hai bánh đà phát cầu đến mọi vị tri trên sân cầu lông với những góc độ khác nhau. Sau khi được thiết kế trên phần mền Hình a Hình b Hình c Solidworks, các chi tiết trong các cơ cấu trên Hình 2: Chi tiết cơ cấu giữ cầu. được gia công và đưa ra sản phẩm thực tế. b. Cơ cấu lấy cầu, đẩy cầu: 2. Sử lý ảnh 3D xác định vị trí người chơi trên sân cầu lông. Hệ thống chỉ sử dụng Camera 3D lấy dữ liệu chiều sâu và sử dụng thư viện hỗ trợ liên kết để lấy các dữ liệu thu được từ Camera, từ những dữ liệu thu được đưa lên máy tính để hiển thị và xây dựng các ứng dụng nên hệ thống cần 3 khối. Đó là khối ứng dụng, khối Hình a Hình b Hình c thư viện hỗ trợ, khối Camera[10], [11]. Hình 3: Chi tiết cơ cấu lấy trái cầu lông Hình 3 thể hiện thiết kế cơ cấu lấy cầu, trái Khối ứng dụng: Xây dựng ứng dụng cầu lông được lấy ra khỏi ống chứa cầu bằng bắt các động tác của cơ thể và hiển thị các động cơ Servo và các chi tiết bánh răng. Sau động tác đó lên Windows Form của Visual đó, trái cầu lông được đẩy tới cơ cấu phát cầu Studio 2013.[3], [15]. nhờ cơ cấu đẩy cầu. Khối thư viện hỗ trợ Open NI: Thư viện c. Cơ cấu phát cầu sử dụng hai bánh đà: Open NI sẽ liên kết với Visual Studio để giao Hai bánh đà được bọc cao su bên ngoài, tiếp với Camera Asus Xtion Pro
- Vậy để xác định được tọa độ theo phương Khối ứng dụng di chuyển ngang (di chuyển song song với lưới) thì cần hiệu chỉnh giá trị pixcel ảnh trả về bằng với chiều rộng của sân là 6m. Áp dụng quy tắc tam suất : Khối thư viện hỗ trợ Gọi x là tọa độ theo phương ngang của usb người chơi theo thứ nguyên là mét và N là tọa độ người chơi theo phương ngang theo Khối thiết bị thứ nguyên pixcel thì : x= (N*6)/320 (1) Hình 5: Sơ đồ khối hệ thống sử lý ảnh Vậy là đã xác định tọa độ người chơi thực Pro Live, sử dụng các đối tượng trong Open của người chơi theo phương ngang. Hình ảnh NI để lấy và xử lý thông tin hình ảnh chiều chiều sâu của camera 3D Asus khi trả giá trị sâu sau đó cho ra vị trí các khớp người đứng về sẽ gồm ba giá trị (x,y,z) trong đó (x,y) là trước Camera trong hệ tọa độ hình ảnh chiều giá trị khung hình 320x240 pixcel và z là sâu, và cuối cùng là tiến hành vẽ khung khoảng cách từ camera đến người chơi vậy xương đại diện cho người đó lên Windows khi ấy z chính là tọa độ di chuyển vuông góc Forrm. với lưới của người chơi, vậy ta đã xác định Khối Camera: Camera 3D Asus Xtion được tọa độ của một người chơi trên sân là có chức năng tương tác với người sử dụng và (x,z) theo thứ nguyên là mét. cho ra dữ liệu ảnh chiều sâu, ảnh màu thông Để xác định được điểm mà robot phát cầu thường và âm thanh. phát tới, các điểm này sẽ được cho trước gồm Sau khi lấy được dữ liệu người từ 42 điểm, như hình 2.21 bên dưới, mỗi điểm Camera 3D và hiển thị lên màng hình cách nhau 1m theo chiều vuông góc và dọc Windows Form của Visual Studio, Robot sẽ theo lưới. Khi đó vị trí người chơi sẽ được xác định vị trí người chơi trên sân cầu lông, camera quét theo thời gian thực liên tục trong từ đó xác định. phạm vi của camera, sau đó máy tính sẽ chạy Xác định tọa độ người chơi trên sân thuật toán tính toán khoảng cách giữa tọa độ Tọa độ người chơi trên sân cầu lông cần được các điểm cho trước trên sân và tọa độ hiện tại hiệu chỉnh cùng thứ nguyên với tọa độ được của người chơi, từ đó tìm ra các khoảng cách quy định trước trên sân. Tọa độ bên kia sân xa người chơi nhất, từ những khoảng cách đó của người chơi sẽ được quy định như sau: tọa sẽ chọn ngẫu nhiên một điểm và phát lệnh độ gốc (0,0) nằm bên phải như hình và sân cho máy bắn cầu lông bắn tới. bên người chơi được quy định tương đối là Với vị trí cầu rơi ( , ), tọa độ người chiều ngang 6 mét và chiều dài 6 mét. chơi ( , ) Camera Asus trả về ảnh chiều sâu có kích 3. Hoạt động của hệ thống xử lý điều thước 320x240 pixcel, trong đó là 320 là khiển Robot. chiều rộng của khung hình, 240 là chiều dọc Sau khi có được tọa độ cầu rơi, tọa độ của khung hình. được xử lý và truyền xuống board điều khiển arduino. Board điều khiển Arduino điều khiển các motor trên Robot điều kiển tốc độ bắn cầu, vị trí cầu bắn và các góc bắn được đề xuất. a:Quy định tọa độ b:Tọa độ cho trước Hình 6: Quy định tọa độ người chơi trên sân cầu lông
- thực thi những nhiệm vụ đề ra đó là phát hiện vận động viên, xác định được vị trí vận động viên, xác định được vị trí bắn cầu và cuối cùng là bắn cầu tới mục tiêu được đề xuất. 3.2 Kết quả giao diện với người chơi. Giao diện được thiết kế gồm 5 phần: đó là bốn phần chính hiển thị các kết quả đạt được: - Phần đầu tiên là phần hiển thị hình ảnh chiều sâu. - Phần thứ hai là phần hiển thị ảnh màu thông thường Hình 7: Quá trình hoạt độ của hệ thống. - Phần thứ ba hiển thị sân cầu lông. Hình 7 thể hiện quy hình hoạt động của hệ - Phần thứ tư hiển thị tọa độ người chơi, thống, bao gồm các quá trình từ nhận dạng tọa độ vị trí cầu rơi. hình ảnh 3D, tới việc sử lý sử lý ảnh chiều - Phần chọn các cấp độ người chơi: Mode sau, xác định khung xương con người, từ đó 1, Mode 2, Mode 3, Mode 4. xác định vị trí người trên sân, sau đó dữ liệu được gởi xuống Board điều khiển Arduino, từ đó điều khiển các motor trên Robot hoạt động theo yêu cầu được đề xuất. III. KẾT QUẢ THỰC NGHIỆM. 3.1 Kết quả thi công Robot thông minh huấn luyện chơi cầu lông. Kết quả thi công Robot thông minh phát cầu lông như hình 8 là sự kết hợp giữa xử lý Hình 9. Kết quả giao diện với người chơi ảnh 3D, xây dựng các chế độ người dùng, xử 3.3 Kết quả xác định tọa độ của người chơi lý dữ liệu trên board điều kiển Arduino[12], và tọa độ vị trí trái cầu lông. [13], và cuối cùng cho ra một Robot thông Khi người di chuyển, Camera sẽ nhận minh phát cầu, huấn luyện người chơi cầu được ảnh chiều sâu, xác định được vị trí điểm lông. người chơi hiển thị ở giao diện như các hình từ hình 10 đến hình 13. Sau khi xác định được tọa độ người chơi thì tác giả tính toán cho ra kết quả tọa độ cầu rơi. Kết quả cũng được thể hiện trên giao điện máy tính với người chơi. Hình 8: Mô hình Robot phát cầu lông. Hiện tại Robot được phát triển gần như Hình 10: Kết quả khi người chơi ở tọa độ hoàn chỉnh về phần cứng cũng như phần (3,9 ; 1,6) thì tọa độ cầu rơi ( 3 ,1). mền. Robot đã hoàn thành việc phát cầu, đã hoạt động các cơ cấu xoay góc, xoay vị trí. Robot làm việc ở nhiều chế độ mode khác Robot đã lấy được dữ liệu từ camera 3D để nhau. Ở chế độ mode 1, tọa độ cầu rơi sẽ gần
- với tọa độ người chơi, có nghĩa là khoảng cách từ người chơi đến vị trí cầu được bắn tới gần nhau. Khi đó, người chơi sẽ dễ dàng kiểm soát và thực hiện việc đỡ những trái cầu từ mát phát bắn ra có phần đơn giản. Chế độ mode 1 là chế độ phù hợp với những người mới bắt đầu tập chơi, những người chưa có nhiều kỹ năng cũng như phản xạ trên sân cầu lông[7],[8]. Ở Chế độ mode 2, Robot cũng hoạt động Hình 12. Kết quả khi người chơi ở tọa độ giống như ở chế độ mode 1, chỉ khác nhau là (1.1 ; 4.1) thì tọa độ cầu rơi (6;4). tọa độ cầu rơi được cộng thêm một đơn vị. Ở cấp độ cao hơn là Mode 4, đây là Mode Có nghĩa là ở mode 1 tọa đọ cầu rơi là dành cho những người chơi hay vận động viên có thể lực dồi dào, kỹ năng tốt. Cấp độ ( , )thì ở mode 2 , tọa độ cầu rơi 푖푛 푖푛 Mode 4 xác định khoảng cách giữa người là ( + 1 , + 1). 푖푛 푖푛 chơi và vị trí cầu rơi xa nhất hay vị trí cầu rơi cách xa vị trí người chơi. Vị trí cầu rơi là ( , ). ( , ) ở đây được chọn ngẫu nhiên trong mười điểm có giá trị khoảng cách so với tọa độ người chơi gần như lớn nhất. Hình 11: Kết quả khi người chơi ở tọa độ (4 ; 3.2) thì tọa độ cầu rơi ( 5 ,4). Ở đây khi tọa độ người chơi trên sân cầu ( 4 ; 3,2) thì kết quả cho ra vị trí cần phát cầu là (5 ; 4). Người dùng ở Mode 2 là những người đã được huấn luyện ở Mode 1, vì Mode 2 có mức độ khó cao hơn. Khoảng Hình 13.Kết quả khi người chơi ở tọa độ (3; cách từ vị trí người chơi đến tọa độ cầu rơi xa 3.75) thì tọa độ cầu rơi (0;2) hơn so với cấp độ Mode 1, vì thế đòi hỏi vận Hình13 thể hiện kết quả khi người dùng động viên phải di chuyển và đoán hướng cầu sử dụng Mode 4. Cũng như các hình từ hình rơi. Ở chế độ Mode 2, Robot bắt đầu huấn 10 đến hình 13, giao diện thể hiện đầy đủ các luyện kĩ năng phản xạ và thể lực cho người thông tin về ảnh màu, ảnh chiều sau, sân cầu, chơi. Sau khi thành thạo và phản xạ tốt ở tọa độ người chơi, tọa độ cầu rơi và các nút Mode 2 thì người chơi hay vận động viên sẽ chọn các chế độ khác nhau. Từ kết quả xử lý, chọn chế độ người dùng ở Mode 3. dữ liệu được thể hiện trên giao diện sao đó Ở chế độ người dùng Mode 3, cấp độ được truyền liên tục xuống board điều khiển huấn luyện sẽ được tăng lên. Các điểm rơi huấn luyện Robot hoạt động. Board điều ngẫu nhiên cũng như tọa độ điểm rơi sẽ được khiển của Robot nhận dữ liệu từ chương trình bắn ra với tốc độ nhanh hơn, vị trí xa người Visual studio điêu khiển tốc độ quay của chơi hơn. Lúc này người chơi cần có thể lục động cơ phát cầu, điều khiển các động cơ đẩy tốt và kỹ năng phản xạ cao thì mới luôn đỡ cầu, điều khiển các động cơ xoay trục robot được những trái cầu được Robot phát ra. Ở tạo các góc bắn theo đề xuất người dùng. chế độ này, tọa độ cầu rơi sẽ là ( − 1 , − 1 ).
- IV. KẾT LUẬN - Xác định kết quả vị trí trái cầu lông cần Sau quá trình thực hiện luận văn, tác giả được bắn tới. thực hiện đề tài đã giải quyết được các vấn đề - Đồng bộ hóa dữ liệu xử lý ảnh 3D điều sau: khiển phần cứng Robot huấn luyện chơi - Xây dựng mô hình robot phát cầu lông cầu lông hoạt động. trên phần mềm Solidworks. - Hoàn thành yêu cầu thiết kế và thi công - Thi công robot thông minh phát cầu lông. Robot thông minh huấn luyện chơi cầu - Tìm hiểu cấu tạo, nguyên lý và cách sử lông sử dụng thuật toán chuyển động 3D. dụng Camera 3D Asus Xtion Pro Live. Bên cạnh những kết quả đạt được đề Biết thêm một nguyên lý mới để đo tài còn gặp những khó khăn sau: khoảng cách. - Camera còn chịu tác động từ môi trường, - Tìm hiểu phương pháp bám theo khung camera không qua sát được toàn bộ các vị xương (Skeleton Tracking) trên cơ thể trí người chơi trên sân cầu lông mà còn người sử dụng trong Open NI. hạn chế ở những góc xa và ở cuối sân cầu - Xây dựng ứng dụng trên Visual Studio để lông. Tại những vị trí này camera không lấy dữ liệu người sử dụng trên bộ xương nhận được tọa độ người chơi nên không trong hình ảnh chiều sâu thu được từ đưa ra vị trí chính xác nhất để phát cầu. Camera để xác định vị trí tọa độ của - Robot chưa thật sự hoàn chỉnh để dưa ra người trên sân cầu. thị trường. TÀI LIỆU THAM KHẢO [1] Shinobu Sakai, Ryota Nobeand Koetsu Yamazaki, “A Study on Projection Performance of Roller Type Badminton Machine and Its Optimization”, June 13 -17, 2011, Shizuoka, Japan [2] Jonathan Taryoto, “Shuttlcock launcher and method for launching”, Apr. 12, 2002 [3] Caroline Cohen, Baptiste Darbois Texier, David Quéré and Christophe Clanet, “The physics of badminton”, New J. Phys. 17 (2015). [4] Baptiste Darbois Texier, Caroline Cohen, David Quéré, Christophe Clanet; “Shuttlecock dynamics”, Accepted 05 March 2012. [5] Cohen C, Darbois-Texier B, Dupeux G, Brunel E, Quéré D and Clanet C 2014 “The aerodynamic wall”Proc. R. Soc. A470 20130497 [6] Armando Nava, Leonardo Garrido and Ramon F. Brena; “Recognizing Activities Using a Kinect Skeleton tracking and Hidden Markov Models” ( 2014). [7] Pei-Fu Tsou, Chao-Cheng Wu; “Estimation of Calories Consumption for Aerobics Using Kinect based Skeleton Tracking” Washington, May 26-30, 2015. [8] Pbarrett, “Euclidean Distance”. The Technical Whitepaper. Vol. 6. 2005: [9] Aseem Raina, Nilay Mokashi, Pushkar Nimkar,Sanket Gujar; “Shuttlecock tracking and trajectory estimation using Microsoft Kinect sensor”;October 2015. [10] Julien Le Personnic, Firoz Alam, Laurent Le Gendre, Harun Chowdhury, Aleksandar Subic; ““Flight trajectory simulation of badminton shuttlecocks”; May 2011. [11] Khoshelham; “Accurary analisis of kinect depth dataInternational Archives of the Photogrammetry”, 2011. [12] Ngô Diên Tập, “Kỹ Thuật Vi Điều Khiển với AVR”, NXB khoa học kỹ thuật Hà Nội, 2003. [13] Nguyễn Thị Phương Hà, Huỳnh Thái Hoàng, “ Lý thuyết điều khiển tự động” , Nhà xuất bản Đại Học Quốc Gia TPHCM, 2005. [14] TS. Lê Ngọc Bích, KS. Võ Duy Thanh Tâm, KS. Đỗ Lê Thuận, “ Solidworks 2010 dành cho người tự học’’, Nhà xuất bản Hồng Đức, 2010.
- [15] Ngọc Bích, Tường Thụy, Quỳnh Nga, “ C# dành cho người tự học”, Nhà xuất bản thông tin và truyền thông, năm 2012. Tác giả chịu trách nhiệm bài viết: Họ tên: Trần Nguyên Soái. Đơn vị: Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM Điện thoại: 0965589144 Email: nguyensoai89@gmail.com
- BÀI BÁO KHOA HỌC THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ Bài báo khoa học của học viên có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn B n ti ng Vi t ©, T NG I H C S PH M K THU T TP. H CHÍ MINH và TÁC GI Bản quếy n táệc ph mRƯ ãỜ cĐ bẠ o hỌ b Ưi Lu tẠ xu t Ỹb n vàẬ Lu t S hỒ u trí tu Vi t Nam. NgẢhiêm c m m i hình th c xu t b n, sao ch p, phát tán n i dung khi c a có s ng ý c a tác gi và ả ng ề i h ẩ pđh đưm ợK thuả tộ TP.ở H ậChí Mấinh.ả ậ ở ữ ệ ệ ấ ọ ứ ấ ả ụ ộ hư ự đồ ủ ả Trườ Đạ ọCcÓ Sư BÀI BạÁO KHỹ OA ậH C T ồT, C N CHUNG TAY B O V TÁC QUY N! ĐỂ Ọ Ố Ầ Ả Ệ Ề Th c hi n theo MTCL & KHTHMTCL h c 2017-2018 c a T vi n ng i h c S ph m K thu t Tp. H Chí Minh. ự ệ Năm ọ ủ hư ệ Trườ Đạ ọ ư ạ ỹ ậ ồ