Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
3,46 MB
Nội dung
Chương 1.Tổng quan đề tài 1.1 Giới thiệu chung: Khái niệm Robot đời vào ngày 09/10/1922 NewYork, nhà soạn kịch người Tiệp Khắc Karen Kapek tưởng tượng cổ máy hoạt động cách tự động, niềm mơ ước người lúc Theo tiến khoa học kỹ thuật, Robot ngày chế tạo nhỏ gọn hơn, thực nhiều chức hơn, thông minh Một lĩnh vực nhiều nước quan tâm Robot tự hành, chuyển động chúng ngày đa dạng, bắt chước chuyển động chân người hay lồi động vật như: bị sát, động vật chân, Và loại xe Robot (robocar) nhanh chóng ứng dụng rộng rãi hệ thống sản xuất tự động linh hoạt(FMS) Từ trở người liên tục nghiên cứu phát triển Robot để ứng dụng qt trình tự động hố sản xuất để tăng hiệu kinh doanh Ngồi Robot cịn sử dụng thay cho người công việc môi trường độc hại, khắc nghiệt Chuyên ngành khoa học robot “robotics” trở thành lĩnh vực rộng khoa học, bao gồm vấn đề cấu trúc cấu động học, động lực học, quĩ đạo chuyển động, chất lượng điều khiển Tuỳ thuộc vào mục đích phương thức tiếp cận, tìm hiểu lĩnh vực nhiều khía cạnh khác Hiện nay, phân biệt loại Robot hai mảng chính: Các loại robot cơng nghiệp (cánh tay máy) loại robot di động (mobile robot) Mỗi loại có ứng dụng đặc tính khác Ngồi ra, loại robot cơng nghiệp cịn phân chia dựa vào cấu tạo động học nó: Robot nối tiếp (series robot) robot song song (parallelrobot) 1.2 Tổng quan đồ án: Ngày nay, việc tự động hóa phần thiếu không ngành công nhiệp mà ngành dịch vụ khác sống Với phát triển ngày nhanh xã hội, hình thức vận chuyển hàng hịa ngày nhiều địi hỏi ứng dụng tự động hóa để thúc đẩy lưu thơng hàng hóa liên tục Hình 1.1: Một số loại robot AGV thị trường AGV (automated guided vehicle) hay biết đến tên xe tự hành sản phẩm ứng dụng rộng rãi thên giới để đáp ứng nhu cầu thị trường Với tính trội an toàn, giảm thiệt hại vận hành giảm chi phí hoạt động sản xuất, AGV ngày ưa chuộng cơng nghiệp Ngồi ra, với bùng nổ dịch bệnh năm gần đây, đặc biệt chủng Corona Virus đẩy giới vào khủng hoảng xe tự hành khơng giải pháp cơng nghiệp mà cịn phương án dự phòng cho ngành khác, đặc biệt hệ thống y tế giảm trừ thiệt hại tối đa việc phòng bệnh, phun sát khuẩn từ xa, vận chuyển trang thiết bị mà không cần phải mặt đối mặt Với điều kiện phát triển ngày lớn mạnh lĩnh vực AGV, việc tự thiết kế xây dựng hệ thống xe tự hành giúp cho nhóm có kĩ kiến thức tảng để hịa nhập thích nghi với phát triển ngành nghề tương lai 1.3 Yêu cầu đặt cho hệ thống: Sử dụng Lidar để quét xử lí đồ xung quanh Điều khiển xe chạy đồ hiển thị vị trí xe đồ Tích hợp chế độ điều khiển để phù hợp với mục đích khác Chương 2.Cơ sở lí thuyết 2.1 Robot Operating System (ROS) Hình 2.1: Logo ROS Robot Operating System (ROS) hệ điều hành dành cho robot Cũng giống hệ điều hành cho PC, máy chủ thiết bị độc lập, ROS hệ điều hành đầy đủ cho robot hoạt động trung gian hệ điều hành khác Nó khơng cung cấp dịch vụ hệ điều hành tiêu chuẩn (trừu tượng hóa phần cứng, quản lý tranh chấp, quản lý quy trình) mà cung cấp chức cấp cao (các gọi không đồng đồng bộ, sở liệu tập trung, hệ thống cấu hình robot, v.v.) ROS bắt đầu với ý tưởng tạo thuận tiện chia sẻ dễ dàng sử dụng lại phần cứng robot khác mà không cần phải xây dựng lại từ đầu Việc xây dựng lại từ đầu cho tảng robot riêng biệt tốn nhiều thời gian cơng sức; bên cạnh đó, việc ứng dụng lại thành việc nghiên cứu trước để xây dựng thuật toán cao gặp nhiều khó khăn Từ lợi ích ROS mang lại, tổ chức nghiên cứu phát triển giới ROS góp phần mang lại nguồn thơng tin dồi phần cứng lẫn phần mềm Trên giới, có nhiều cơng ty tổ chức bắt đầu ứng dụng tảng vào ứng dụng họ để tạo sản phẩm có chất lượng tốt Nhờ vào đó, giới có nhiều thiết bị hỗ trợ framework Chương trình cốt lõi ROS, cơng cụ tiện ích thư viện phát hành phiên gọi ROS Distribution Những Distribution giống Linux Distribution đồng thời cung cấp chuỗi phần mềm tương thích ROS thực thi số loại giao tiếp khác giao tiếp kiểu RPC dạng đồng thông qua services, truyền liệu bất đồng thông qua topics lưu trữ liệu Parameter Server Khi ROS ứng dụng cho robotic khối lượng cơng việc kỹ thuật giảm, bên cạnh khối lượng công việc dành cho xây dựng hệ thống tăng cách đáng kể Do đó, dành thời gian cho việc nghiên cứu ứng dụng chuyên sâu, đạt hàm lượng khoa học cao dự án 2.2.1 Cấu trúc ROS Kiến trúc ROS có ba cấp khái niệm: Filesystem, Computation Graph Community Filesystem chủ yếu nguồn tài nguyên ROS thực thi nhớ lưu trữ hệ thống, bao gồm: Meta Packages: tệp kê khai gói nằm bên gói chứa thơng tin gói, tác giả, giấy phép, thành phần phụ thuộc, cờ biên dịch, v.v Các package.xml tập tin bên gói ROS file manifest gói Packages: đơn vị để tổ chức phần mềm ROS Một package chứa node (ROS runtime processes), thư viện đặc thù ROS, file cài đặt file cho việc tổ chức Mục đích package để tạo tập hợp chương trình có kích thước nhỏ để dễ dàng sử dụng lại Packages manifest: tệp kê khai gói nằm bên gói chứa thơng tin gói, tác giả, giấy phép, thành phần phụ thuộc, cờ biên dịch, v.v Các package.xml tập tin bên gói ROS file manifest gói Messages (.msg): loại thông tin gửi từ trình ROS đến trình ROS khác Chúng ta xác định thơng báo tùy chỉnh bên msgthư mục bên gói ( my_package/msg/ MyMessageType.msg) Phần mở rộng tệp Messages msg Services (.srv):là loại tương tác yêu cầu/trả lời quy trình Các kiểu liệu trả lời yêu cầu xác định bên file srv bên package ( my_package/srv/MyServiceType.srv) Repositories: Hầu hết cácCác gói ROS trì Version Control System ( VCS )chẳng hạn Git, subversion (svn), bleurial (hg), v.v Tập hợp gói chia sẻ VCS chung gọi kho lưu trữ Gói kho phát hành cách sử dụng công cụ tự động phát hành catkin gọi bloom Hình 2.2: Cấu trúc ROS filesystem (Nguồn: Internet) Computation Graph mạng nơi quy trình ROS kết nối với Bất kỳ node hệ thống truy cập vào mạng này, tương tác với node khác, trao đổi liệu nằm mạng Các khái niệm Computation Graph node, Master, Parameter Server, messages, services, topics bags Cụ thể: Node: quy trình dùng để tính tốn, điều khiển Một node tạo biên dịch package thành công package tạo nhiều node Khi node muốn giao tiếp, tương tác node khác thân node phải kết nối với mạng ROS Trong hệ thống, node có chức khác Master: ROS Master cung cấp tên đăng ký tra cứu phần lại Computation Graph Nếu khơng có ROS Master node khơng thể tìm thấy nhau, trao đổi message hay gọi service Parameter Server: Parameter Server cho phép liệu lưu trữ từ khóa vị trí trung tâm phần Master Với biến này, cấu hình node hoạt động để thay đổi hoat động node Messages: node giao tiếp với thông qua messages Một message đơn giản cấu trúc liệu, bao gồm trường định nghĩa integer, floating point, boolean, Messages bao gồm kiểu cấu trúc mảng lồng (giống kiểu struct C) Chúng ta tự phát triển kiểu message dựa message chuẩn Topics: messages định tuyến thông qua hệ thống vận chuyển, phân loại thành publish subscribe Một node gửi messages việc publishing message lên topic định trước Topic tên để nhận dạng nội dung message Một node subscribe topic có tên kiểu liệu khai báo Trong thời điểm, nhiều publishers subscribers truy cập vơ topic, node publish subscribe nhiều topic Nhìn chung, publishers subscriber nhận thức tồn Ý tưởng xây dựng trao đổi thông tin ROS nhằm tách rời nguồn tạo thông tin nơi sử dụng thơng tin Services: mơ hình publish/subscribe linh hoạt việc giao tiếp đặc điểm truyền đa đối tượng chiều Nhưng đơi lại khơng thích hợp cho việc truyền theo dạng request/reply, thường dùng kiểu hệ thống phân bổ Do đó, việc truyền nhận theo dạng request/reply dùng thông qua services Service định nghĩa cặp cấu trúc liệu: cho request cho reply Một node cung cấp service thông qua thuộc tính name, client sử dụng service việc gửi request message đợi phản hồi Bags: định dạng để lưu phát lại liệu tin nhắn ROS Túi chế quan trọng để lưu trữ liệu, chẳng hạn liệu cảm biến, khó thu thập cần thiết cho việc phát triển thử nghiệm thuật tốn robot Túi tính hữu ích làm việc với chế phức tạp robot ROS Community Level khái niệm nguồn tài nguyên ROS cộng đồng người dùng trao đổi với phần mềm kiến thức Các nguồn tài nguyên là: 2.2.1 Distributions: tổng hợp phiên stack mà cài đặt ROS Distributions có vai trò tương tự Linux Distributions Respositories : nguồn tài nguyên dựa cộng đồng mạng lưới tổ chức khác phát triển phát hành mơ hình riêng họ The ROS Wiki : gồm nhiều tài liệu ROS Bất chia sẻ tài liệu, cung cấp cập nhật, viết hướng dẫn, tài khoản mà họ đăng ký Các gói tài nguyên ROS sử dụng đồ án a Arduino Rosserial Arduino Arduino IDE vốn công cụ tuyệt vời để lập trình phần cứng cách nhanh chóng dễ dàng Bằng việc sử dụng “package” rosserial_arduino, kết nối ROS trực tiếp với Arduino IDE Rosserial cung cấp giao thức giao tiếp với ROS hoạt động thơng qua UART Arduino Từ đó, Arduino trở thành node thức, trực tiếp publish subscrible topic hệ thống ROS Vì vậy, việc điều khiển động cơ, đọc giá trị cảm biến trở nên xác dễ dàng Hình 2.3: Mơ hình gửi tín hiệu từ cảm biến lên ROS thông qua Rosserial_arduino b Slam Gmapping Đây package tạo thuật toán để xây dựng đồ 2D từ cảm biến laser tọa độ Robot Để sử dụng slam_gmapping, phải cung cấp thay đổi vị trí robot theo thời gian (gọi Odometry hay Odom) với liệu quét khoảng cách từ Lidar, đồng thời vị trí Lidar phải liên hệ với tâm Robot thông qua ma trận chuyển đổi khớp vector (gọi joint state) Hình 2.4: Bản đồ tạo Gmapping cảm biến lidar c Navigation Stack Hình 2.5: Sơ đồ tổng quan Navigation stack Navigation stack giả định robot cài đặt theo cấu hình để chạy Sơ đồ cho thấy tổng quan cấu hình Các thành phần màu trắng thành phần bắt buộc triển khai, thành phần màu xám thành phần tùy chọn triển khai thành phần màu xanh lam phải tạo cho tảng robot Các điều kiện tiên navigation stack gồm: + Tranforms Configuration: cung cấp thông tin mối quan hệ khung tọa độ + Sensor Information: sử dụng thông tin cảm biến để tránh vật cản (cảm biến lidar, utralsonic,…) + Odometry Information: sủ dụng phép đo lường để tính đường robot + Base Controller: gửi điểm tọa độ để robot di chuyển + Gmapping: xây dụng đồ 2.2 Phương pháp xác định tư robot (pose of robot) Để robot di chuyển khơng gian robot phải có khả đo lường ước lượng vị trí (vị trí định hướng) Trong trường hợp ô tô, GPS sử dụng để ước tính tư Tuy nhiên, GPS sử dụng nhà sử dụng, GPS có sai số lớn khơng thể sử dụng cho rơ bốt Ngày nay, hệ thống xác cao DGPS5 sử dụng, hệ thống vô dụng nhà đắt cho mục đích chung Để khắc phục vấn đề này, nhiều phương pháp khác nhận dạng điểm đánh dấu ước tính vị trí nhà đưa Tuy nhiên, xét giá thành độ xác chưa đủ cho nhu cầu sử dụng chung Hiện tại, phương pháp ước tính tư nhà sử dụng rộng rãi cho robot Dead Reckoning, phương pháp ước tính tư tương đối, sử dụng từ lâu bao gồm cảm biến chi phí thấp có mức độ xác định tư kết ước lượng Lượng chuyển động robot đo chuyển động quay bánh xe Tuy nhiên, có sai số khoảng cách tính tốn với vịng quay bánh xe khoảng cách di chuyển thực tế Phương pháp tính tốn Dead Reckoning cho robot dẫn động vi sai tiêu chuẩn: Hình 2.6: Robot với hai bánh dẫn động Các thơng số yêu cầu cho Dead Reckoning: Tọa độ trung tâm hai bánh xe dẫn động (x,y) Khoảng cách hai bánh dẫn đồg D Bán kính bánh dẫn động r Tính tốn lựa chọn động bánh xe Lựa chọn bánh xe: Bánh xe động cơ: Địa hình làm việc robot địa hình phẳng, giả thiết bỏ qua biến dạng bánh xe, bỏ qua lực cản không khí q trình robot di chuyển Các thơng số robot: Khối lượng robot ước tính: 25 (kg) Khối lượng hàng tối đa: 10 (kg) Hình 3.2: Bánh xe chủ động Thông số bánh xe là: đường kính 100 (mm), bề rộng bánh xe 40 (mm), tải trọng tối đa 350 (kg) Bánh xe bị động: Lựa chọn bánh xe bị động xoay (hình 4.6) chịu tải trọng 40kg, Toàn bánh xe làm sắt bi thép nên bền Đơn giản, gọn gàng dễ lắp đặt Hình 3.3: Bánh xe bị động Lựa chọn động cơ: Phân tích lực tác dụng lên bánh chủSơ động gồm 4tích lựclực tác dụng sau: Hìnhxe3.4: đồ phân Với: lực ma sát nghỉ bánh xe bề mặt sàn bê tông lực kéo sinh momen động phản lực mặt sàn nửa trọng lực xe: momen xoắn động nửa tổng trọng lượng robot hàng: Chọn phương án chuyển động robot chuyển động thẳng Hai bánh dẫn động di chuyển tốc độ phía trước với vận tốc v = 0,1 (m/s) Tốc độ quay bánh xe là: (*) Phương trình cân lực: Với a gia tốc xe Khi xe chuyển động Vận tốc không đổi v= 0,1 (m/s), nên gia tốc a = () Khi phản lực lên bánh bằng: Lực kéo sinh momen động là: Với: hệ số ma sát lăn = 0,015 di chuyển sàn bê tông Công suất cần thiết để xe di chuyển ổn định với vận tốc 0,1 (m/s) là: Khi xe tăng tốc Xe tăng tốc với gia tốc a = 0,5 (m/s:) để hàng không rơi Lực kéo sinh momen động là: Với hệ số ma sát tĩnh = Momen xoắn cần thiết để xe tăng tốc là: Công suất cần thiết để xe tăng tốc lên 0,1 (m/s) là: (**) Từ kết (*) (**) suy công suất động cần thiết 1.3 (W) tốc độ vòng yêu cầu 19,1 (v/p) => Chọn: Động Cơ Giảm Tốc 12-24V DS400 Điện áp hoạt động: 12-24V DC Tốc độ: 45-90 vòng/phút Công suất: 15W Tải trọng: khoảng 20 – 30kg Trọng lượng: 580g Hình 3.5: Động giảm tốc DS400 (Nguồn: Internet) 3 Lựa chọn Encoder Thông số kỹ thuật: Encoder HN3806-AB-600F cảm biến phát xung thông qua hai pha A B lệch Sản phẩm sử dụng để đo tốc độ quay đối tượng, đo góc, gia tốc, chiều dài đo lường chiều quay Nguồn cấp: 5-24 VDC Tốc độ học cho phép: 5.5V + Bảo vệ nhiệt: BTS7960 bảo vệ chống nhiệt cảm biến nhiệt tích hợp bên Đầu bị ngắt có tượng nhiệt + Kích thước: 40 x 50 x12mm Sơ đồ chân: + VCC : Nguồn tạo mức logic điều khiển ( 5V - 3V3 ) + GND : Chân đất + + + + + + + + R_EN = Disable nửa cầu H phải R_EN = : Enable nửa cầu H phải L_EN = Disable nửa cầu H trái L_EN = : Enable nửa cầu H trái RPWM LPWM : chân điều khiển đảo chiều tốc độ động RPWM = LPWM = : Mô tơ quay thuận RPWM = LPWM = : Mô tơ quay nghịch RPWM = LPWM = RPWM = LPWM = : Dừng R_IS L_IS : kết hợp với điện trở để giới hạn dòng qua cầu H Với ứng dụng bình thường R_EN , L_EN nối với GPIO (VD: chân digital 2,3) để điều khiển chiều quay động + Chân RPWM, LPWM nối chung lại nối với PWM (VD chân digital 5) để điều khiển tốc độ động Các thiết bị khác + Bao gồm khung robot thiết bị nguồn: Khung robot làm từ sắt + Sử dụng nguồn Acquy 12V, 7Ah + Nguồn sạc dự phịng 5V 5.1 Sơ đồ ngun lý Chương 5.Lập trình hệ thống 5.1 Kết nối máy tính raspberry Khi máy tính Pi sử dụng chung router mạng, ta điều khiển Pi từ máy tính thơng qua SSH Giả sử Raspberry Pi máy tính có địa IP Hình 5.1: Địa IP máy hệ thống Để truy cập vào Raspberry Pi từ máy tính ta sử dụng câu lênh sau với ubuntu tên Raspberry Pi: ssh ubuntu@192.168.43.90 Sau nhập mật Raspberry Pi, ta truy cập vào điều khiển Raspberry Pi từ máy tính Để nhận thơng tin xử lý từ cảm biến ROS để hiển thị đồ, cần đồng ROS máy tính Raspberry Pi Để làm điều cần thiết lập Raspberry Pi ROS master cách thiết lập giá trị ROS_MASTER_URI Thiết lập ROS_MASTER_URI cho node biết URI (uniform resource identifier) ROS master Khi ta thiết lập chung URI cho Raspberry Pi máy tính, truy cập vào topic Raspberry Pi từ máy tính Để thiết lập URI cho thiết bị ta làm sau: + Đối với Raspberry Pi: Mở terminal gõ lệnh sudo nano ~/.bashrc Thêm dòng sau vào cuối file bashrc export ROS_HOSTNAME=192.168.43.90 export ROS_MASTER_URI=http://192.168.43.90:11311 + Đối với máy tính remote: Mở terminal gõ lệnh sudo nano ~/.bashrc Thêm dòng sau vào cuối file bashrc export ROS_MASTER_URI=http://192.168.43.90:11311 5.2 Sơ đồ khối hệ thống Arduino: đọc giá trị cảm biến encoder gửi lên raspberry nhận liệu giá trị vận tốc từ raspberry để điều khiển động hai bánh Raspberry: đóng vai trị máy chủ ROS Nhận liệu encoder từ arduino để tính tốn tốc độ xe gửi arduino nhận liệu từ máy tính để tính tốn vị trí robot đồ Đọc tín hiệu từ cảm biến lidar xử lý tín hiệu sau gửi lên máy tính để trực quan hóa Laptop remote: đưa tín hiệu điều khiển robot từ bàn phím gửi raspberry Nhận tín hiệu cảm biến từ raspberry để trực quan hóa để người dùng theo dõi vị trí hướng di chuyển robot Hình 5.2: Sơ đồ khối hệ thống 5.3 Lưu đồ thuật toán Arduino Hình 5.3: Lưu đồ thuật tốn hàm main() Bắt đầu, khai báo chân linh kiện cần dùng thư viện dùng project Tiếp theo khai báo biến tồn cục cần thiết để tính tốn sau vận tốc v, vận tốc góc w, đường kính bánh xe D, giá trị encoder, … Sau khai báo xong hàm setup() chúng em cài đặt thiết lập ban đầu cho hệ thống thống số PID, pinMode, …Đến hàm loop em kiểm tra xem arduino có nhận tín hiệu từ raspberry khơng Nếu có cập biến tồn cục tính tốn tốc độ băm xung cho động sau truyền hàm hàm điều khiển đầu Nếu sai điều khiển theo giá trị ban đầu Hình 5.4: Lưu đồ chương trình Velcallback() Chương trình Velcallback() dùng để cập nhật giá trị nhận từ raspberry để tính tốn tốc độ cho bánh Hình 5.5: Lưu đồ chương trình updateMotor() Chương trình updateMotor() dùng để tính xung truyền cho động từ giá trị vận tốc v vận tốc góc w thuật tốn PID Sau cập nhật giá trị encoder để gửi lên raspberry Chương 6.Kết luận hướng phát triển ... phù hợp với mục đích khác Chương 2.Cơ sở lí thuyết 2.1 Robot Operating System (ROS) Hình 2.1: Logo ROS Robot Operating System (ROS) hệ điều hành dành cho robot Cũng giống hệ điều hành cho PC,... khoa học cao dự án 2.2.1 Cấu trúc ROS Kiến trúc ROS có ba cấp khái niệm: Filesystem, Computation Graph Community Filesystem chủ yếu nguồn tài nguyên ROS thực thi nhớ lưu trữ hệ thống, bao gồm:... package ( my_package/srv/MyServiceType.srv) Repositories: Hầu hết cácCác gói ROS trì Version Control System ( VCS )chẳng hạn Git, subversion (svn), bleurial (hg), v.v Tập hợp gói chia sẻ VCS chung