1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án tốt nghiệp thiết kế và điều khiển xe tự hành sử dụng định vị gps

69 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP Thiết kế điều khiển xe tự hành sử dụng định vị GPS VŨ HỮU LỰC luc.vh184540@sis.hust.edu.vn HOÀNG HẢI ANH anh.hh184339@sis.hust.edu.vn NGUYỄN VĂN ĐỨC duc.nv184394@sis.hust.edu.vn NGUYỄN VĂN THẮNG thang.181617@sis.hust.edu.vn Ngành Cơ điện tử Giảng viên hướng dẫn: TS Dương Văn Lạc Chữ ký GVHD Giảng viên phản biện: TS Bùi Đình Bá Chữ ký GVPB Khoa: Trường: Cơ điện tử Cơ khí HÀ NỘI, 3/2023 i ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP Thiết kế điều khiển xe tự hành sử dụng định vị GPS VŨ HỮU LỰC luc.vh184540@sis.hust.edu.vn HOÀNG HẢI ANH anh.hh184339@sis.hust.edu.vn NGUYỄN VĂN ĐỨC duc.nv184394@sis.hust.edu.vn NGUYỄN VĂN THẮNG thang.181617@sis.hust.edu.vn Ngành Cơ điện tử Giảng viên hướng dẫn: TS Dương Văn Lạc Chữ ký GVHD Giảng viên phản biện: TS Bùi Đình Bá Chữ ký GVPB Khoa: Trường: Cơ điện tử Cơ khí HÀ NỘI, 3/2023 ii ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CƠ KHÍ CỘNG HỒ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP (NGÀNH CƠ ĐIỆN TỬ) Thông tin sinh viên: Họ tên SV: Vũ Hữu Lực Lớp: CĐT-07 ĐT: 0971 405 400 Họ tên SV: Hoàng Hải Anh Lớp: CĐT-07 ĐT: 0338 296 212 Họ tên SV: Nguyễn Văn Đức Lớp: CĐT-07 ĐT: 0388 488 259 Họ tên SV: Nguyễn Văn Thắng Lớp: CĐT-07 ĐT: 0364 870 855 Email (đại diện): luc.vh184540@sis.hust.edu.vn Hệ đào tạo: Chính quy Chuyên ngành: Cơ điện tử Đồ án tốt nghiệp thực tại: T212 Thời gian làm ĐATN: Từ ngày / / đến / / Tên đề tài: Xe tự hành vận chuyển hàng sử dụng GPS - Thông số đề tài: + Tải trọng hàng: 10(kg) + Kiểu dẫn động: bánh đa hướng + Nguồn: 12V hoạt động 1h + Kết nối wifi, giao diện điều khiển - Phân tích nguyên lý: Tổng quan hệ thống, nguyên lý hoạt động - Thiết kế chế tạo xe: Thiết kế chế tạo phận: Khung xe, khung gá động cơ, tính chọn động cơ, pin - Xây dựng vẽ thiết kế: Xây dựng vẽ lắp 2D/3D, xây dựng vẽ chế tạo chi tiết - Thiết kế hệ thống điều khiển: Sơ đồ điều khiển, chọn thiết bị điều khiển - Lập trình điều khiển: truyền nhận liệu, giao diện điều khiển Hà Nội, ngày tháng năm Giáo viên hướng dẫn ĐẠI HỌC BÁCH KHOA HÀ NỘI CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM iii TRƯỜNG CƠ KHÍ Độc lập - Tự - Hạnh phúc NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP (Dành cho Giáo viên hướng dẫn) Tên đề tài: Thiết kế điều khiển xe tự hành sử dụng định vị GPS Họ tên SV: Vũ Hữu Lực Lớp: CĐT-07 Họ tên SV: Hoàng Hải Anh Lớp: CĐT-07 Họ tên SV: Nguyễn Văn Đức Lớp: CĐT-07 Họ tên SV: Nguyễn Văn Thắng Lớp: CĐT-07 Chuyên ngành: Cơ điện tử Giáo viên hướng dẫn: TS Dương Văn Lạc NỘI DUNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN I Tác phong làm việc …………………………………………………………………………………… …………………………………………………………………………………… II Những kết đạt …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… III Hạn chế đồ án …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… IV Kết luận Người hướng dẫn đề nghị cho phép sinh viên (không) bảo vệ đề tài tốt nghiệp trước Hội đồng chấm đồ án tốt nghiệp Đánh giá: ……… điểm Hà Nội, ngày tháng năm 20 Giáo viên hướng dẫn iv ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CƠ KHÍ CỘNG HỒ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP (Dành cho Giáo viên phản biện) Tên đề tài: Thiết kế điều khiển xe tự hành sử dụng định vị GPS Họ tên SV: Vũ Hữu Lực Họ tên SV: Hoàng Hải Anh Họ tên SV: Nguyễn Văn Đức Họ tên SV: Nguyễn Văn Thắng Chuyên ngành: Cơ điện tử Lớp: CĐT-07 Lớp: CĐT-07 Lớp: CĐT-07 Lớp: CĐT-07 NỘI DUNG NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN I Những kết đạt …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… II Hạn chế đồ án …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… III Kết luận Người duyệt (không) đồng ý để sinh viên bảo vệ đề tài tốt nghiệp trước Hội đồng chấm đồ án tốt nghiệp Đánh giá: ……… điểm Hà Nội, ngày tháng năm 2023 Giáo viên phản biện v Lời cảm ơn Trong trình thực hoàn thành đồ án tốt nghiệp, chúng em nhận hộ trợ động viên lớn nhiều người Trước hết, xin cảm ơn ba mẹ quan tâm, tạo điều kiện cho học tập Chúng em xin gửi lời cảm ơn chân thành đến quý Thầy Cô Khoa Cơ Điện Tử Trường Cơ Khí, Trường Đại Học Bách Khoa Hà Nội nhiệt tình giảng dạy, truyền đạt kiến thức quý báu cho chúng em suốt tời gian học tập trường Em xin bày tỏ lòng biết ơn sâu sắc đến TS Dương Văn Lạc nhiệt tình hướng dẫn bảo cho chúng em trình làm đề tài Chúng em xin chân thành cảm ơn bạn bè động viên, khích lệ giúp đỡ suốt trình làm đề tài Sau cùng, em xin kính chúc quý Thầy Cố Khoa Cơ Điện tử, Thầy TS Dương Văn Lạc dồi sức khỏe, đạt nhiều thành công sống Cuối cùng, chúng em muốn gửi lời cảm ơn đến tất người giúp đỡ hỗ trợ chúng em trình thực đồ án tốt nghiệp Những đóng góp giúp đỡ bạn giúp chúng em hoàn thành dự án thành công mang lại cho chúng em nhiều kiến thức kinh nghiệm quý báu cho tương lai vi Tóm tắt nội dung đồ án Vận chuyển hàng hóa tự động sản xuất, đời sống điểm mấu chốt để tối ưu hóa chuỗi cung ứng sản phẩm Hệ thống xe tự hành theo GPS giải pháp để cải thiện tối ưu trình vận chuyển Đề tài đưa tổng quan, phân tích thiết kế xe tự hành ngồi trời, đồng thời sử dụng thuật tốn tính tốn đường cho xe tự hành Nội dung đề tài gồm: tổng quan, thiết kế khí, xây dựng hệ thống điện, xây dựng, lập trình thuật tốn cho hệ thống xe tự hành vii MỤC LỤC CHƯƠNG TỔNG QUAN 1.1 Giới thiệu xe tự hành Các loại phương pháp vận chuyển Các loại phương pháp tìm đường 1.2 Lý chọn đề tài, mục tiêu, nhiệm vụ phạm vi đồ án Lý chọn đề tài Mục tiêu Nhiệm vụ CHƯƠNG LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ XE TỰ HÀNH 2.1 Phương án khí Chọn bánh dẫn 2.2 Thiết kế khí Kiểm nghiệm bền khung 2.1.2 Thiết kế khung xe 2.1.3 Thiết kế vỏ xe CHƯƠNG THIẾT KẾ HỆ THỐNG ĐIỆN – ĐIỆN TỬ 10 3.1 Sơ đồ khối chung hệ thống điện 10 3.2 Lựa chọn thông số cho thiết bị 10 Vi điều khiển 10 Động 11 Driver động 12 Mạch logic 13 Cảm biến 14 Pin 16 Lora AS32 16 Còi 17 3.3 Sơ đồ kết nối 17 CHƯƠNG NGUYÊN LÝ HOẠT ĐỘNG 20 4.1 Nguyên lý hoạt động 20 4.2 Thuật toán điều khiển 21 Thuật toán điều khiển giao diện 21 viii Thuật toán điều khiển Arduino 24 4.3 Các chế độ hoạt động 25 CHƯƠNG XỬ LÝ TÍN HIỆU 26 5.1 Cảm biến GPS 26 5.2 Cảm biến La bàn số 28 5.3 Cảm biến siêu âm 29 5.4 Ổn định tốc độ sử dụng điều khiển PID 30 5.5 Truyền nhận liệu Arduino máy tính 31 CHƯƠNG LẬP TRÌNH ĐIỀU KHIỂN – GIAO DIỆN 34 6.1 Lựa chọn ngơn ngữ lập trình 34 6.2 Lập trình cho Arduino 35 6.3 Lập trình giao diện 42 Giới thiệu chung 42 Thiết kế giao diện 43 CHƯƠNG KẾT QUẢ THỰC NGHIỆM 55 7.1 Kết thực nghiệm 55 7.2 Đánh giá kết 55 CHƯƠNG 8: TỔNG KẾT 57 8.1 8.2 Đánh giá kết đề tài 57 8.1.1 Những công việc đạt 57 8.1.2 Những hạn chế thực đề tài 57 Hướng phát triển đồ án tương lai 57 TÀI LIỆU THAM KHẢO 58 ix DANH MỤC HÌNH VẼ Hình 1.1 Xe tự hành kéo hàng Hình 1.2 Xe tự hành chở hàng Hình 1.3 Xe tự hành nâng hàng Hình 2.1 Bánh đa hướng Hình 2.2 Các cách chuyển động xe Hình 2.5 Hình ảnh khung xe Hình 2.6 Biểu đồ ứng suất biến dạng Hình 3.1 Sơ đồ khối hệ thống điện- điện tử 10 Hình 3.2 Bo mạch arduino Mega 2560 10 Hình 3.3 Động JGB 37-545 11 Hình 3.4 Driver động L298N 12 Hình 3.5 Mạch logic cho L298N xây dựng Proteus 13 Hình 3.6 Cảm biến GPS NEO M8N 14 Hình 3.7 Cảm biến la bàn số HMC5883L 15 Hình 3.8 Cảm biến siêu âm HCSR04 15 Hình 3.9 Pin LiPo Tiger 3S-4500mAh-35C 16 Hình 3.10 Lora AS32 16 Hình 3.11 Cịi 17 Hình 3.12 Sơ đồ kết nối MEGA 2560 với NEO M8N 18 Hình 3.13 Sơ đồ kết nôi Arduino với HMC5883L 18 Hình 3.14 Sơ đồ kết nối Arduino với HCSR04 19 Hình 4.1 Sơ đồ nguyên lý hoạt động 20 Hình 4.2 Lấy liệu từ cảm biến 20 Hình 4.3 Truyền nhận Arduino máy tính 21 Hình 4.4 Điều khiển động 21 Hình 4.5 Giao diện map nhấp chuột phải 22 Hình 4.6 Sơ đồ thuật tốn điều khiển giao diện 23 Hình 4.7 Sơ đồ thuật tốn điều khiển Arduino 24 Hình 4.8 Giao diện điều khiển 25 Hình 5.1 Nhiễu nhận tín hiệu 26 Hình 5.2 Từ trường Trái Đất Error! Bookmark not defined x 3) Các nút chọn tạo cách sử dụng đối tượng Button Tkinter đặt vào vị trí cụ thể hình cách sử dụng phương thức place() đối tượng Button 4) Cho phép người dùng thay đổi kích thước cửa sổ cách kéo cạnh góc cửa sổ Trong đoạn code này, chiều rộng chiều cao cho phép thay đổi Và phương thức cửa sổ tkinter, tạo vòng lặp để cửa sổ chạy liên tục đợi người dùng tương tác với thành phần giao diện Khi người dùng tương tác với thành phần này, chẳng hạn nhấn nút bấm, kiện gửi đến vịng lặp để xử lý Vòng lặp kết thúc cửa sổ đóng người dùng đóng cửa sổ chương trình kết thúc Mỗi nút chọn có hình ảnh đại diện liên kết với hàm định nghĩa file map.py, manual.py tương ứng với chế độ mà nút chọn đại diện Tổng thể, chúng em tạo giao diện đơn giản hiệu để lựa chọn chế độ khác cho ứng dụng xe tự hành 44 Hình 6.1 Giao diện 6.3.2.2 Giao diện điều khiển thủ công Khi người dùng chọn nút ‘Điều khiển’, hình hiển thị Hình 6.2 Nút bấm điều khiển 1) Đầu tiên, thư viện cần thiết import sau: • tkinter: thư viện tạo giao diện đồ họa • PIL: thư viện xử lý ảnh • os: thư viện truy cập tính hệ thống, trường hợp sử dụng để tải hình ảnh lên giao diện điều khiển 45 • map.py: file import để sử dụng hàm liên quan đến vẽ đồ điều khiển xe 2) Sau đó, lớp btn_control_clicked tạo để quản lý hành động người dùng click vào nút bấm giao diện điều khiển Khi gọi: tạo cửa sổ giao diện Toplevel() với kích thước 800x600, màu xám nhạt tên "Điều khiển" 3) Tạo đối tượng Canvas để vẽ hình ảnh tọa độ button slider Thanh trượt mySlider tạo với giá trị từ đến 100 mặc định 40 Khi người dùng chọn giá trị trượt, hàm slide gọi để lấy giá trị trả 4) Chúng em tạo button, button gửi lệnh điều khiển hướng di chuyển xe tốc độ điều chỉnh slider 46 Cụ thể, button gửi lệnh tới xe tự hành với giá trị tương ứng hướng: lên, xuống, trái, phải, trái trên, phải trên, trái dưới, phải dừng Và nút để quay trở lại hình • Biến images lưu trữ danh sách tệp hình ảnh sử dụng cho button số nguyên tương ứng để định danh button Cụ thể, lần lặp qua danh sách images, biến img gán tuple gồm hai phần tử: img[0] lưu trữ tên tệp ảnh, img[1] lưu trữ số nguyên đại diện cho tệp ảnh • Sau đó, lần lặp, đoạn mã sử dụng tên tệp ảnh lưu trữ img[0] để tạo đối tượng PhotoImage cách mở tệp ảnh đường dẫn xác định hàm os.path.join() sau truyền đối tượng hình ảnh vào thuộc tính image nút button img[1] sử dụng để tính tốn vị trí button cửa sổ, cách tính tốn vị trí x y dựa số tệp ảnh danh sách images • Trong vịng lặp for, phần tử images duyệt qua • Hình ảnh mở chuyển đổi thành đối tượng PhotoImage để sử dụng Button • Button tạo với hình ảnh command thiết lập để gọi hàm handle_button_click() với tham số tương ứng • Các button đặt vị trí dựa giá trị số nguyên tương ứng lưu trữ biến images 5) Các nút bấm giao diện điều khiển tay tạo cách sử dụng hàm ‘handle_button_click(c)’ Hàm gọi người dùng nhấn vào nút tương ứng Mỗi hàm đặt giá trị tốc độ, giá trị bắt đầu giá trị hướng vào biến a, b c, sau sử dụng chúng để gửi chuỗi byte đến xe tự động để điều khiển xe 47 Các nút bấm giao diện điều khiển tay tạo cách sử dụng hàm ‘handle_button_click(c)’ Hàm gọi người dùng nhấn vào nút tương ứng Mỗi hàm đặt giá trị tốc độ, giá trị bắt đầu giá trị hướng vào biến a, b c, sau sử dụng chúng để gửi chuỗi byte đến xe tự động để điều khiển xe Chuỗi byte bao gồm: • byte START Trong đồ án chúng em đặt biến START cho chế độ điều khiển thủ công 0xfe, để tránh lỗi chế độ map mà bấm sang chế độ điều khiển thủ cơng (vì biến START cho chế độ điều khiển chạy tự động map 0xff) Nếu byte START byte gói liệu (cụ thể 0xfe), hàm bắt đầu đọc gói liệu lưu trữ gói liệu • byte chứa giá trị quy định hướng xe: Giá trị đưa vào từ đến tương ứng với byte chuyển sang hexa: 0x01 đến 0x09, với hướng tương ứng: phải trên, lên, phải trên, phải, phải dưới, xuống, trái dưới, trái dừng • byte chứa giá trị tốc độ nhận từ trượt Slider: Giá trị từ đến 100 chuyển thành hexa ta nhận byte: 0x00 đến 0x64 tương ứng với tốc độ: – 100% tốc độ tối đa (thay vào hộ tốc độ tối đa) Ví dụ: Chuỗi byte tạo cách chuyển đổi giá trị thành chuỗi hexa sau chuyển đổi chuỗi hexa thành dạng byte hàm bytes.fromhex() Mỗi người dùng nhấn nút bấm, giá trị trượt mySlider lấy để xác định tốc độ xe Sau đó, biến b c đặt để định tín hiệu gửi đến xe sent_from_gui() gọi để tạo chuỗi hexa biểu diễn tín hiệu, cuối chuyển đổi thành chuỗi byte gửi đến xe thông qua cổng Serial COM 6.3.2.3 Giao diện điều khiển chạy tự động map Nút bấm Map giao diện điều khiển cho xe tự hành viết Python với sử dụng thư viện tkinter Chúng em sử dụng thư viện threading để tạo luồng xử lý liệu từ GPS luồng chương trình chạy Chúng em sử dụng thư viện tkinter.messagebox để hiển thị hộp thoại thông báo 48 1) Chúng em import thư viện Tkinter, ttk, tkintermapview, serial, tkinter.messagebox, threading, time 2) Định nghĩa số: • EARTH_RADIUS: bán kính Trái Đất (mét) • SAFE_DISTANCE: khoảng cách an tồn xe vật cản (mét) • STOP_DISTANCE: khoảng cách tối thiểu để dừng xe (mét) Biến toàn cục sử dụng coorTargetList, temp, ser, lat, log • coorTargetList: danh sách tọa độ đích (mục tiêu) xe • temp: biến tạm thời sử dụng để lưu trữ liệu nhận từ cổng nối tiếp • ser: đối tượng serial để đọc liệu từ cổng nối tiếp với tốc độ baud 9600 đặt timeout giây • lat log: biến toàn cục sử dụng để lưu trữ vĩ độ kinh độ xe 3) Truyền liệu xuống xe • Hàm sent_from_gui: Hàm sử dụng để chuyển đổi khoảng cách hướng thành chuỗi byte để gửi đến xe Hàm sent_from_gui gửi liệu điều khiển tới mạch điều khiển cách chuyển đổi giá trị số thành dạng byte đưa vào mảng t Cụ thể, hàm nhận vào hai tham số a b hai giá trị số nguyên dương, sử dụng phép toán bit để chuyển đổi giá trị thành dạng byte (8-bit) lưu vào mảng t Sau đó, hàm sử dụng phương thức format() để định dạng phần tử mảng t thành chuỗi hexa với độ dài Kết trả hàm mảng t gồm phần tử byte tương ứng với liệu điều khiển 49 • Hàm worker() hàm sử dụng để lấy liệu từ thiết bị thông qua cổng serial hiển thị giá trị vị trí (lat log) thiết bị hình Hàm thiết lập để chạy vô hạn cách sử dụng vịng lặp vơ hạn while True Trong vòng lặp, hàm kiểm tra xem liệu sẵn sàng để đọc hay chưa cách sử dụng phương thức ser.in_waiting Nếu liệu sẵn sàng, hàm đọc byte từ cổng serial kiểm tra xem byte có phải byte gói liệu hay khơng Gói liệu bao gồm byte START, bytes lưu giá trị lat, long Nếu byte START byte gói liệu (cụ thể 0xff), hàm đánh dấu để bắt đầu đọc gói liệu khởi tạo danh sách lưu trữ gói liệu Sau đó, hàm tính tốn giá trị vị trí (lat log) từ gói liệu hiển thị giá trị hình Nếu byte khơng phải byte gói liệu mới, liệu nhận từ GPS la bàn số truyền lên có sai sót, phải kiểm tra lại kết nối chương trình để nhận kết mong muốn 50 4) Chức chương trình bao gồm: • Tạo cửa sổ giao diện đồ họa (GUI) để hiển thị đồ thành phần khác Class btn_map_clicked: Hàm "init": Khởi tạo đối tượng "btn_map_clicked" người dùng nhấn vào nút "map" Hiển thị thông báo "Vào chế độ điều khiển map" lên hình Khai báo biến tồn cục "lat" "log" để lưu trữ tọa độ GPS xe Tạo cửa sổ sử dụng hàm "Toplevel()" từ module Tkinter với kích thước 600x600 tiêu đề "Map" Sau đó, tạo đối tượng "my_frame" nhãn khung hiển thị cửa sổ đồ Tiếp theo, tạo đối tượng "my_entry" hộp văn cho phép người dùng nhập tên địa điểm để tìm kiếm đồ hiển thị "my_frame".Và nút "my_button" để gọi hàm "find()" người dùng nhấn vào để tìm kiếm địa điểm Đồng thời trượt "my_slider" cho phép người dùng điều chỉnh độ phóng đại đồ gọi hàm "slider()" trượt thay đổi Sau đó, đối tượng "map_widget" đồ Google Maps với kích thước 600x600 bán kính góc 5, hiển thị cửa sổ Thiết lập API Google Maps loại đồ hiển thị hàm "set_tile_server()" "map_widget" Tạo đối tượng "marker_1" đánh dấu đồ vị trí "21.1608767 105.9217283" (vị trí thử nghiệm) sử dụng hàm "set_address()" • Đọc liệu tọa độ GPS từ thiết bị ngoại vi thông qua cổng serial cập nhật liệu GPS vào tọa độ (mảng currentCoor) 51 Tiếp theo, tạo luồng với đối tượng ‘worker’ truyền vào, khởi chạy luồng Chúng em sử dụng threading để thực thi tác vụ đồng thời Cụ thể, chương trình đọc liệu từ thiết bị ngoại vi thơng qua cổng serial luồng độc lập (thread) để cập nhật tọa độ GPS xe • Tính tốn khoảng cách hướng tới điểm đích (tính hàm get_distance_and_course) Hàm get_distance_and_course có chức tính tốn khoảng cách góc đến điểm đích trái đất, dựa thông số tọa độ vĩ độ kinh độ điểm bắt đầu điểm kết thúc Hàm trả tuple chứa khoảng cách góc đến điểm đích Cụ thể, hàm, tính delta_long khoảng cách kinh độ điểm đích điểm bắt đầu, đổi sang đơn vị radian hàm math.radians Sau đó, tính start_lat end_lat vĩ độ điểm bắt đầu điểm đích đổi sang đơn vị radian Tiếp theo, tính a b dựa cơng thức haversine formula Vincenty, để tính góc đường kinh tuyến vĩ tuyến điểm đích Kết sử dụng để tính tốn góc đến điểm đích Cuối cùng, khoảng cách tính cơng thức dựa công thức Haversine công thức Vincenty, với bán kính Trái đất định nghĩa EARTH_RADIUS Kết khoảng cách góc đến điểm đích trả tuple Công thức Haversin: a = sin²(Δφ/2) + cos φ1⋅ cos φ2 ⋅ sin²(Δλ/2) c = ⋅ atan2( √𝑎 , √1 − 𝑎 ) d=R⋅c Với: φ vĩ độ, λ kinh độ, R bán kính trái đất (bán kính trung bình = 6.371 km); Công thức Vincenty: θ = atan2(sin Δλ ⋅ cos φ2 , cos φ1⋅sin φ2 − sin φ1⋅cos φ2⋅ cos Δλ) Với: φ1, λ1 điểm đầu, φ2, λ2 điểm cuối (Δλ hiệu số kinh độ) 52 • Hiển thị marker đồ để đánh dấu vị trí đích đến đồ, tính tốn gửi liệu xuống xe thông qua hàm sent_from_gui Hàm current_marker: Hàm sử dụng để vẽ đối tượng đồ Hàm sử dụng luồng độc lập để không làm gián đoạn giao diện người dùng Hàm lặp lại bước sau: o Xóa tất đánh dấu đồ o Thêm đánh dấu cho vị trí xe o Nếu có mục tiêu danh sách mục tiêu, xóa tất đường dẫn vẽ đường dẫn từ vị trí xe đến mục tiêu danh sách o Tính tốn khoảng cách phương xe đến mục tiêu danh sách o Nếu khoảng cách nhỏ 3,5 mét, loại bỏ mục tiêu khỏi danh sách lặp lại bước với mục tiêu danh sách Nếu danh sách mục tiêu rỗng, hiển thị thơng báo "Hồn thành" dừng chương trình o Vẽ đánh dấu cho tất mục tiêu danh sách o Nếu danh sách mục tiêu có nhiều mục tiêu, vẽ đường dẫn từ mục tiêu đến mục tiêu danh sách • Thêm marker (điểm đích): 53 Hàm add_marker_event: Hàm gọi người dùng nhấp chuột vào đồ để thêm điểm đánh dấu cho xe Hàm thêm tọa độ điểm đánh dấu vào danh sách điểm đánh dấu lưu danh sách vào tệp coorTargetList.txt Và hàm tạo kiện nhấp chuộc phải, nhấp chuột phải tọa độ điểm đích tùy chọn ‘Add marker’, bấm vào tùy chọn Add marker hàm add_marker_event thực tọa độ lat, long điểm vừa chọn lưu vào file coorTargetList.txt 54 CHƯƠNG KẾT QUẢ THỰC NGHIỆM Đề tài tập trung nghiên cứu phát triển hệ thống xe tự hành theo GPS Trong trình thực hiện, tiến hành thí nghiệm phân tích liệu để đánh giá hiệu suất độ xác hệ thống 7.1 Kết thực nghiệm Trong trình thực đề tài này, chúng em tiến hành nhiều thí nghiệm thu thập nhiều liệu để đánh giá hệ thống Để giúp người đọc hiểu rõ thí nghiệm kết chúng em, chúng em đưa số hình ảnh Hình 7.1 Xe tự hành GPS Đây ảnh xe tự hành theo GPS thiết kế 7.2 Đánh giá kết Trong lúc thực nghiệm chúng em có lưu lại tọa độ xe, sau mơ Matlab để đánh giá độ xác xe Hình 7.2 Mơ Matlab 55 Kết thực nghiệm cho thấy hệ thống xe tự hành theo GPS hoạt động tốt đáng tin cậy Độ xác hệ thống đạt đến mức cao với sai số trung bình khoảng 3,5 mét so sánh với vị trí thực tế Đồng thời, hệ thống có khả phát tránh vật cản trình di chuyển 56 CHƯƠNG 8: TỔNG KẾT 8.1 Đánh giá kết đề tài 8.1.1 Những công việc đạt Đề tài đồ án hồn thành cơng việc sau: - Thiết kế khí cho mơ hình xe tự hành vận chuyển hàng hóa sử dụng định vị GPS Xây dựng hệ thống điện, cảm biến, điều khiển hồn thiện kết nối mơ đun điện Thực nghiệm sử dụng cảm biến, điều khiển động cơ, tìm sai số xác hệ thống Xây dựng nguyên lý hoạt động thuật toán, thực nghiệm hệ thống Kết cho thấy xe tự hành thực nhiệm vụ Xây dựng giao diện xe tự hành 8.1.2 Những hạn chế thực đề tài - Hệ thống cịn hạn chế mặt khí, đáp ứng nhu cầu cho chở hàng di chuyển - Các cảm biến sai số nên chưa thể xác tuyệt đối mà mức tương đối - Xe tự hành trính thực nghiệm di chuyển chưa thực ổn định mơi trường bên ngồi có nhiều tác động mà khơng thể kiểm sốt 8.2 Hướng phát triển đồ án tương lai Để nghiên cứu phát triển mở rộng đề tài, tậ dụng ưu điểm xe tự hành, số nghiên cứu phát triển dựa đề tài sau: - Thiết kế hệ thống lấy/ trả hành tự động - Xây dựng hệ thống quản lý nhiều xe, dùng lidar để vẽ đồ Sau tính tốn qng đường ngắn - Tối ưu hệ thống khí hệ thống điện để thương mại hóa sản phẩm - Phát triển hệ thống giao diện tối ưu, dễ dàng sử dụng với người dùng - Phát triển hệ thống giao diện tối ưu, dễ dàng sử dụng với người dùng Các công nghệ công nghệ giọng nói, cơng nghệ nhận diện khn mặt, cơng nghệ thị giác máy tính sử dụng để cải thiện trải nghiệm người dùng - Sử dụng công nghệ để cải thiện hiệu suất: Trong tương lai, sử dụng cơng nghệ trí tuệ nhân tạo, máy học, IoT, blockchain để cải thiện hiệu suất hệ thống Ví dụ, sử dụng trí tuệ nhân tạo để giảm thiểu sai số cải thiện độ xác, sử dụng blockchain để bảo mật liệu đảm bảo tính tồn vẹn hệ thống 57 TÀI LIỆU THAM KHẢO [1] Phạm Công Ngô, Lý thuyết điều khiển tự động, Nhà xuất Khoa học Kỹ thuật, In lần [2] https://www.instructables.com/How-to-Build-a-GPS-Guided-Robot/ [3] https://www.youtube.com/watch?v=rmKFZ-fGjLw [4] https://rb.gy/qvgcyh [5] Trịnh Chất - Lê Văn Uyển, Tính tốn thiết kế hệ dẫn động khí Tập một, 2006 [6] https://www.youtube.com/watch?v=HRaZLCBFVDE&t=599s [7] https://www.youtube.com/watch?v=GkXH8ZeeIKY [8] "Autonomous Vehicle Navigation Using GPS" - G Barshan and R A Swartz (IEEE Transactions on Vehicular Technology, 2002) 58

Ngày đăng: 19/12/2023, 15:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w