Đồ án THIẾT kế CHUYỂN ĐỘNG 3DOF ỨNG DỤNG TRONG VR Đồ án THIẾT kế CHUYỂN ĐỘNG 3DOF ỨNG DỤNG TRONG VR Đồ án THIẾT kế CHUYỂN ĐỘNG 3DOF ỨNG DỤNG TRONG VR Đồ án THIẾT kế CHUYỂN ĐỘNG 3DOF ỨNG DỤNG TRONG VR Đồ án THIẾT kế CHUYỂN ĐỘNG 3DOF ỨNG DỤNG TRONG VR Đồ án THIẾT kế CHUYỂN ĐỘNG 3DOF ỨNG DỤNG TRONG VR
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG ====o0o==== ĐỒ ÁN TỐT NGHIỆPĐẠI HỌC ĐỀ TÀI: NGHIÊN CỨU THIẾT KẾ CHUYỂN ĐỘNG 3DOF ỨNG DỤNG TRONG VR Hà Nội, 6/2018 Đồ án tốt nghiệp Đánh giá đồ án tốt nghiệp Giảng viên đánh giá: Họ tên sinh viên : MSSV: Tên đồ án: Nghiên cứu thiết kế chuyển động bậc tự (3DOF) ứng dụng VR Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí dƣới đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Nhận xét thêm Thầy/Cô (giảng viên hướng dẫn nhận xét thái độ tinh thần làm việc sinh viên) Ngày: / /2018 Người nhận xét (Ký ghi rõ họ tên) Vũ Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp Đánh giá đồ án tốt nghiệp Giảng viên đánh giá: Họ tên Sinh viên: MSSV: Tên đồ án: Nghiên cứu thiết kế chuyển động bậc tự (3DOF) ứng dụng VR Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí dƣới đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có kết hợp lý thuyết thực hành (20) Nêu rõ tính cấp thiết quan trọng đề tài, vấn đề giả thuyết (bao gồm mục đích tính phù hợp) phạm vi ứng dụng đồ án Cập nhật kết nghiên cứu gần (trong nước/quốc tế) Nêu rõ chi tiết phương pháp nghiên cứu/giải vấn đề Có kết mơ phỏng/thưc nghiệm trình bày rõ ràng kết đạt 5 Có khả phân tích đánh giá kết (15) Kế hoạch làm việc rõ ràng bao gồm mục tiêu phương pháp thực dựa kết nghiên cứu lý thuyết cách có hệ thống Kết trình bày cách logic dễ hiểu, tất kết phân tích đánh giá thỏa đáng Trong phần kết luận, tác giả rõ khác biệt (nếu có) kết đạt mục tiêu ban đầu đề đồng thời cung cấp lập luận để đề xuất hướng giải thực tương lai Kỹ viết (10) Đồ án trình bày mẫu quy định với cấu trúc chương logic đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, Vũ Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp đánh số thứ tự giải thích hay đề cập đến đồ án, có lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương kết luận chương, có liệt kê tài liệu tham khảo có trích dẫn quy định Kỹ viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic có sở, từ vựng sử dụng phù hợp v.v.) Thành tựu nghiên cứu khoa học (5) (chọn trường hợp) Có báo khoa học đăng chấp nhận đăng/đạt giải 10a SVNC khoa học giải cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước) từ giải trở lên/ Có đăng ký phát minh sáng chế Được báo cáo hội đồng cấp Viện hội nghị sinh viên 10b nghiên cứu khoa học không đạt giải từ giải trở lên/Đạt giải khuyến khích kỳ thi quốc gia quốc tế khác chun ngành TI contest 10c Khơng có thành tích nghiên cứu khoa học Điểm tổng /50 Điểm tổng quy đổi thang 10 Nhận xét thêm Thầy/Cô Ngày: / /2018 Người nhận xét (Ký ghi rõ họ tên) Vũ Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp Mục Lục Mục Lục Danh Sách Hình Ảnh LỜI MỞ ĐẦU TĨM TẮT ĐỒ ÁN Chương 1:Tổng quan chuyển động bậc tự (3DOF) thực tế ảo VR 10 1.1 Giới thiệu độ tự 10 1.2 Mục tiêu nội dung nghiên cứu 11 1.3 Giới thiệu thực tế ảo VR 12 1.3.1 Công nghệ thực tế ảo 12 1.3.2 Các thành phần hệ thống thực tế ảo 12 1.3.3 Đặc tính hệ thống VR 14 1.3.4 Đặc điểm thực ảo 15 1.3.5 Một số ứng dụng 15 Chương : Cơng nghệ sử dụng tìm hiểu phần mềm X-plane 2.1 Công nghệ sử dụng 16 16 2.1.1 Sơ đồ khối hệ thống 16 2.1.2 Cấu trúc vi điều khiển 16 2.1.3 Arduino 18 2.1.4 Động bước module điều khiển UNL2003 20 a.Động bước 20 b.Mạch điều khiển động bước module UNL2003 22 2.1.5 Ethernet shield 23 2.2 Tổng quan X-plane 24 2.2.2 Đ nh cấu hình điều khiển chuyến bay 28 2.2.3 Dữ liệu đầu vào đầu từ X-Plane 30 Chương :Thiết kế mạch điều khiển 3.1 Thiết kế khung 36 36 3.2.1 Phần khí ,động lực 36 3.1.2 Phần điều khiển 45 a.Sơ đồ kết nối điều khiển X plane với Arduino 45 b.Phần mềm giao tiếp với X-plane ( ArdSim Plugin) 45 Chương 4: Mô Phỏng Vũ Đức Tuấn KTĐTT06-K58 49 Đồ án tốt nghiệp 4.1 Phần mơ 49 4.2 Lập trình 58 Chương : Kết Đánh giá 66 5.1 Kết 66 5.2 Đánh giá 66 Tài Liệu Tham Khảo PHỤ LỤC Vũ Đức Tuấn KTĐTT06-K58 68 Error! Bookmark not defined Đồ án tốt nghiệp Danh Sách Hình Ảnh Hình 1: Ví dụ độ tự 10 Hình 2: Mơ hình cung cấp chuyển độn 11 Hình 3: Hệ thống thực tế ảo 13 Hình 4: Trải nghiệm thực tế ảo 14 Hình 5: Sơ đồ khối hệ thống 16 Hình 6: Cấu trúc vi điều khiển 17 Hình 7: Ứng dụng Vi Điều Khiển 18 Hình 8: Board mạch Arduino 20 Hình 9: Động bước 21 Hình 10: Hệ thống điều khiển động bước 21 Hình 11: Kết nối động bước với arduino 22 Hình 12: Ethernet Sheld 23 Hình 13 :Tất vị trí chọn để cài đặt sau nhấp vào “Chọn tất cả” 26 Hình 14: Khơng có vị trí chọn để cài đặt sau nhấp vào “Chọn Khơng có gì” 27 Hình 15: Các biểu tượng chương trình đơn 28 Hình 16: Cửa sổ hiệu chuẩn hình cài đặt Joystick 29 Hình 17: Màn hình cài đặt Joystick, sau hiệu chuẩn hồn tất 29 Hình 18: Cửa sổ Active Profile hình cài đặt Joystick chọn màu cam 30 Hình 19: Cửa sổ Manage Profiles X-Plane 11 30 Hình 20: Phần Đầu liệu Cài đặt 31 Hình 21: Mơ hình 36 Hình 22: Cài đặt khay di động 37 Hình 23: Tính chiều cao 38 Hình 24: Nâng tam giác A 39 Hình 25: Vị trí động 40 Hình 26: Vị trí trục đầu hộp số 40 Hình 27: Mơ dự kiến 41 Hình 28: Tác động từ bên ngồi 42 Vũ Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp Hình 29: Điểm hỗ trợ 43 Hình 30 : Mơ hình 3DOF kín 44 Hình 31: Khung hồn chỉnh 44 Hình 32: Sơ đồ hệ thống điều khiển 45 Hình 33: Kết nối 46 Hình 34: Thêm thư viện ArdSim 48 Hình 35: Cấu hình mạng sử dụng 49 Hình 36: Cấu hình Ethernet 50 Hình 37: Sử dụng thư viện ArdSim 51 Hình 38: Lựa chọn Arduino kết nối 51 Hình 39: Port cổng COM kết nối 52 Hình 40: Nạp code ArdSim cho Arduino va Ethernet Shield 52 Hình 41: Giao diện khởi động X-plane 53 Hình 42: Dữ liệu đầu X-plane 53 Hình 43: Thiết lập chuyến bay 54 Hình 44: Thiết lập kết nối plugins 55 Hình 45: Giao diện chờ kết nối 56 Hình 46: Kết nối X-plane vói Arduino hồn tất 56 Hình 47: Dữ liệu lưu tệp data 57 Hình 48: Giao diện điều khiển 58 Hình 49: Sản phẩm hoàn thiện 66 Vũ Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp LỜI MỞ ĐẦU Ngày xã hội phát triển mạnh mẽ , kỹ thuật ngày đại nên cầu thông tin giải trí ngày cao.Trong năm gần cơng nghệ chuyển động DOF(bậc tự do) biết đến giúp người tốt việc mô lái xe điều khiển ,máy bay UAN với cầu giải trí đọc báo, xem phim, chơi game phần mềm thực tế ảo (VR) ngày cao Vì vậy, nhóm chúng em định nghiên cứu ,tìm hiểu chuyển động bậc tự (3DOF) Để đề tài hoàn thành theo thời gian quy định đạt kết đề không nỗ lực nhóm thực đề tài mà có giúp dỡ, bảo thầy giáo chia sẻ kinh nghiệm từ bạn/nhóm khác Nhóm thực đề tài xin chân thành cảm ơn: Sự dẫn góp ý chân thành thầy NguyễnVăn Khang Cảm ơn thầy nhiệt tình cung cấp thông tin hỗ trợ kiểm tra, khắc phục thơng tin chưa xác Các bạn/nhóm giúp đỡ nhiều mặt phương tiện, tài liệu, ý kiến, Trong trình thực đề tài này, nhóm thực cố gắng song khơng tránh khỏi thiếu sót Rất mong nhận góp ý, phê bình dẫn quý thầy cô ban Dưới đây, chúng em xin phép trình bày đề tài vừa nêu: Thiết kế mạch chuyển động 3DOF (3 bậc tự do) ứng dụng VR Vũ Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp TÓM TẮT ĐỒ ÁN Báo cáo gồm chương : Chương : Tổng quan chuyển động DOF giới thiệu thực tế ảo VR Chương : Cơng nghệ sử dụng tìm hiểu phần mềm X- plane Chương : Thiết kế mạch điều khiển Chương : Mô Chương : Kết Đánh giá Vũ Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp Để lựa chọn thông tin cần hiển thị, tích vào checkbox Show in Cockpit để hiển thị thông tin giao diện game, tích vào Network via UDP để truyền liệu bên ngồi Ở góc bên phải chọn lựa IP Address Port đối tượng cần nhận liệu, nhóm thiết lập địa IP localhost 127.0.0.1 port 49003 để thực nhận data app C# Cấu trúc liệu X-Plane UDP Mọi data gửi dạng byte Có tổng cộng 41 byte chuỗi byte đầu byte message mở đầu byte đầu “DATA”, byte thứ "internal-use" byte 36 byte chứa thơng tin data byte đầu đại diện cho số thứ tự data mục Data Output, 32 byte lại data, byte convert hiển thị data dạng số Ví dụ: chuỗi data nhận 68,65,84,65,60, 17,0,0,0, 171,103,81 191, 187,243,46,190, 103,246,45,67, 156,246,26,67, 47,231,26,67, 0,192,121,196, 0,192,121,196, 85,254,151,193 68,65,84,65,60 = D,A,T,A,” 18,0,0,0 =18 tương đương với dòng chọn pitch, roll tab Data Output 171,103, ,151,193: chuyển sang dạng số cách sử dụng hàm BitConverter.ToSingle() C# Bước : Chọn New Flight Start New Fight bắt đầu chuyến bay Hình 43: Thiết lập chuyến bay Vũ Đức Tuấn KTĐTT06-K58 54 Đồ án tốt nghiệp Bước 7: Mở trạng thái plugins ArdsimX chọn status để kiểm tra kết nối USB Hình 44: Thiết lập kết nối plugins Bước 8: Chúng ta thấy trạng thái kết nối xoay trình tìm kiếm (plugin quét IP cổng USB bật).Khi Arduino phản hồi cấu hình, bạn thấy thơng báo "Đã kết nối với" danh sách bảng Arduino (bao gồm số lượng đầu vào / đầu định cấu hình cho bảng numuber) Vũ Đức Tuấn KTĐTT06-K58 55 Đồ án tốt nghiệp Hình 45: Giao diện chờ kết nối Hình 46: Kết nối X-plane vói Arduino hoàn tất Nếu bảng mạch Arduino cấu hình cho giao tiếp USB kết nối với cổng USB X-Plane chạy bạn cần phải sử dụng "Plugins -> ArdSimX -> Reconnect", để tìm USB kết nối Lưu ý: bật USB ArdSimX ngăn bạn tải chương trình lên Arduino Để tải lên mã mà khơng X-Plane, vơ hiệu hoá USB ArdSimX "Trạng thái" cửa sổ Sau tải mã lên Arduino, bạn bật lại USB Vũ Đức Tuấn KTĐTT06-K58 56 Đồ án tốt nghiệp Khi bạn chắn ArdSimX bạn làm việc với Arduino bạn, bạn bắt đầu cấu hình cho đầu vào đầu riêng bạn Kết nối lại: Khi bạn đặt lại Arduino (hoặc tải lên mã mới), chức thư viện gửi chuỗi ban đầu (để đáp ứng với lệnh ping thường xuyên plugin) plugin gia hạn trạng thái điều khiển Khi bạn khởi động lại plugin kết nối lại với tất Arduinos nhận trạng thái điều khiển Nếu bạn thay đổi tập tin cấu hình X-Plane chạy bạn nên kết nối lại plugin (X-Plane Menu -> Plugins -> ArdSim -> "Reconnect") để đọc cấu hình Nếu bạn thấy thông báo "Trạng thái kết nối - Đang chờ kết nối" xoay cửa sổ Trạng thái ArdSim thời gian lâu (hơn 30 giây), thử "Kết nối lại" trình cắm trình cắm thêm ArdSim chờ kết nối thiết lập lại Arduino với nút "đặt lại" chờ kết nối Dữ liệu lưu tệp Xplane 11/Resources/plugins/ArdSimX/data Hình 47: Dữ liệu lưu tệp data Giao diện trò chơi sau thiết lập Vũ Đức Tuấn KTĐTT06-K58 57 Đồ án tốt nghiệp Hình 48: Giao diện điều khiển Góc bên phải thị data đươc chọn tab Data Output Sử dụng tổ hợp phím Shift+ phím số 1-9 để thay đổi góc nhìn game, mặc định góc nhìn buồng lái Click chuột trái vào máy bay hiển thị khối hình vng tâm máy bay, di chuyển chuột qua trái, phải, trên, để điều chỉnh hướng máy bay Ấn phím B để tháo bỏ giữ máy bay( dùng để cố định máy bay sân bay) Ấn F2 để tăng F1 để giảm lực động cơ, đạt đến 55kts di chuyển lên khối vuông để nâng mũi máy bay lên 4.2 Lập trình CODE ĐIỀU KHIỂN ĐỘNG CƠ BƢỚC #include int val=0; /* -( Declare Constants and Pin Numbers ) -*/ #define FULLSTEP #define HALFSTEP Vũ Đức Tuấn KTĐTT06-K58 58 Đồ án tốt nghiệp // motor pins #define motorPin1 // Blue - 28BYJ48 pin #define motorPin2 // Pink - 28BYJ48 pin #define motorPin3 // Yellow - 28BYJ48 pin #define motorPin4 // Orange - 28BYJ48 pin // Red - 28BYJ48 pin (VCC) #define motorPin5 // Blue - 28BYJ48 pin #define motorPin6 // Pink - 28BYJ48 pin #define motorPin7 // Yellow - 28BYJ48 pin #define motorPin8 // Orange - 28BYJ48 pin // Red - 28BYJ48 pin (VCC) #define motorPin9 10 // Blue - 28BYJ48 pin #define motorPin10 11 // Pink - 28BYJ48 pin #define motorPin11 12 // Yellow - 28BYJ48 pin #define motorPin12 13 // Orange - 28BYJ48 pin // Red - 28BYJ48 pin (VCC) /* -( Declare objects ) -*/ // NOTE: The sequence 1-3-2-4 is required for proper sequencing of 28BYJ48 AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4); AccelStepper stepper2(HALFSTEP, motorPin5, motorPin7, motorPin6, motorPin8); AccelStepper stepper3(HALFSTEP, motorPin9, motorPin10, motorPin11, motorPin12); /* -( Declare Variables ) -*/ //none void setup() /****** SETUP: RUNS ONCE ******/ Vũ Đức Tuấn KTĐTT06-K58 59 Đồ án tốt nghiệp { Serial.begin(9600); stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(400.0); stepper1.setSpeed(500); stepper1.moveTo(1024); // revolution*/ stepper2.setMaxSpeed(1000.0); stepper2.setAcceleration(400.0); stepper2.setSpeed(500); stepper2.moveTo(1024); // revolution */ stepper3.setMaxSpeed(1000.0); stepper3.setAcceleration(400.0); stepper3.setSpeed(500); stepper3.moveTo(1024); // revolution */ }// (end setup ) - void loop() /****** LOOP: RUNS CONSTANTLY ******/ { while (Serial.available()) { val = Serial.read(); Serial.println(val); delay(200); } if (val == '1') { Vũ Đức Tuấn KTĐTT06-K58 60 Đồ án tốt nghiệp if (stepper1.distanceToGo() == 0) stepper1.moveTo(-stepper1.currentPosition()); stepper1.run(); } if (val == '2') { if (stepper2.distanceToGo() == 0) stepper2.moveTo(-stepper2.currentPosition()); stepper2.run(); } if (stepper3.distanceToGo() == 0) stepper3.moveTo(-stepper3.currentPosition()); stepper3.run(); //Change direction at the limits /* if (stepper2.distanceToGo() == 0) stepper2.moveTo(-stepper2.currentPosition()); stepper1.run(); stepper2.run(); */ }// (end main loop ) - /* -( Declare User-written Functions ) -*/ //none CODE Ethernet #include #include Vũ Đức Tuấn KTĐTT06-K58 61 Đồ án tốt nghiệp // Enter a MAC address and IP address for your controller below // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 1, 177); // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80); void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect Needed for native USB port only } // start the Ethernet connection and the server: Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); } void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println("new client"); // an http request ends with a blank line boolean currentLineIsBlank = true; Vũ Đức Tuấn KTĐTT06-K58 62 Đồ án tốt nghiệp while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); // if you've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); // the connection will be closed after completion of the response client.println("Refresh: 5"); // refresh the page automatically every sec client.println(); client.println(""); client.println(""); // output the value of each analog input pin for (int analogChannel = 0; analogChannel < 6; analogChannel++) { int sensorReading = analogRead(analogChannel); client.print("analog input "); client.print(analogChannel); client.print(" is "); client.print(sensorReading); client.println(""); } client.println(""); break; } if (c == '\n') { // you're starting a new line Vũ Đức Tuấn KTĐTT06-K58 63 Đồ án tốt nghiệp currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); Serial.println("client disconnected"); } } CODE ArdSim //#include // !!! comment or delete this line if USB connection is used //================================ #include // ArdSimX library (for v1.20+ only!!) //================================ // -void setup() { BoardNumber 1; // Assign Board Number here (1 9) } // - // main loop void loop() { ArdSimScan; // Dont't delete!!! } //=========================================== Vũ Đức Tuấn KTĐTT06-K58 64 Đồ án tốt nghiệp // Custom Outputs void ProgOut(byte id, float val) { if (id==1) { } // here is your custom code or function call else if (id==2 && val>0) { } //example } Vũ Đức Tuấn KTĐTT06-K58 65 Đồ án tốt nghiệp Chương : Kết Đánh giá 5.1 Kết Hình 49: Sản phẩm hoàn thiện 5.2 Đánh giá Với hướng dẫn, giúp đỡ nhiệt tình thầy giáo bạn, đặc biệt thầy , chúng em cuối hoàn thành xong nhiệm vụ đồ án tốt nghiệp Với mục đích nghiên cứu thiết kế mạch chuyển động 3DOF(3 tự do) ứng dụng VR, nội dung đề tài chúng em đạt kết quả: Nắm rõ chuyển động 3DOF, thực tế ảo Tìm hiểu phần mềm X-plane mạch điều khiển động bước Vũ Đức Tuấn KTĐTT06-K58 66 Đồ án tốt nghiệp module UNL2003 Thiết kế mơ hình kết nối giao tiếp với phần mềm X-plane Nhược điểm: Thiết kế đơn giản, chưa đạt độ xác cao Thơng qua việc thực môn đồ án tốt nghiệp này, chúng em tích lũy nhiều kiến thức bổ ích củng cố nhiều kiến thức chuyên ngành điện tử viễn thơng mà học Mặc dù chúng em cố gắng tìm hiểu tài liệu học hỏi nghiên cứu lĩnh vực thời gian kiến thức có hạn nên chúng em khơng thể tránh khỏi thiếu sót định Chúng em mong nhận cảm thơng, chia sẻ tận tình đóng góp bảo thầy để đồ án hoàn thiện Lời cuối cùng, lần chúng em xin cảm ơn thầy PGS.TS giúp chũng em hiểu rõ chuyên ngành mà học kĩ khác để chúng em có định hướng rõ ràng mà theo đuổi Em xin chân thành cảm ơn! Vũ Đức Tuấn KTĐTT06-K58 67 Đồ án tốt nghiệp Tài Liệu Tham Khảo https://www.xsimulator.net/community/threads/driving-simulator-building-tutorial3dof- heave-axis.9249/ http://www.simvim.com/ardsim/ https://www.arduino.cc/ Vũ Đức Tuấn KTĐTT06-K58 68 .. .Đồ án tốt nghiệp Đánh giá đồ án tốt nghiệp Giảng viên đánh giá: Họ tên sinh viên : MSSV: Tên đồ án: Nghiên cứu thiết kế chuyển động bậc tự (3DOF) ứng dụng VR Chọn mức điểm phù... Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp Đánh giá đồ án tốt nghiệp Giảng viên đánh giá: Họ tên Sinh viên: MSSV: Tên đồ án: Nghiên cứu thiết kế chuyển động bậc tự (3DOF) ứng dụng VR Chọn mức điểm phù... kế mạch chuyển động 3DOF (3 bậc tự do) ứng dụng VR Vũ Đức Tuấn KTĐTT06-K58 Đồ án tốt nghiệp TÓM TẮT ĐỒ ÁN Báo cáo gồm chương : Chương : Tổng quan chuyển động DOF giới thiệu thực tế ảo VR Chương