Xây dựng mô hình hệ thống cơ khí

Một phần của tài liệu 00 v3 (Trang 49)

3.1.1. Xây dựng lớp hình học thô

Hình 3.1: Lớp hình học thô hệ thống robot

Mô hình cơ khí đảm bảo được các yêu cầu và chức năng của Robot cụ thể sau:

 Thiết kế mô hình cơ khí đảm bảo chắc chắn, nhỏ gọn, khối lượng nhẹ, bền và ổn định trong quá trình di chuyển.

 Thiết kế mô hình đảm bảo cho các cơ cấu chấp hành và cơ cấu điều khiển được bố trí hợp lý nhất.

 Mô hình được thiết kế hợp lý nhằm giảm sai số cho hệ thồng điều khiển.

 Mô hình phải có tính thẩm mỹ cao.

 Dễ dàng sử dụng cho người dùng.

 Đảm bảo giá rẻ, giảm tối đa chi phí. Tham khảo bản vẽ cơ khí tại phụ lục 4

Thành phần của Robot bao gồm:

47

 Phần điện – điện tử: Bộ xử lí trung tâm, mạch điều khiển, mạch công suất, mạch cảm biến (RPLiDAR).

 Thiết kế khái quát

 Hình hộp chữ nhật, kích thước 280 x 350mm, cao khoảng 200 mm.

 Vật liệu chính: mica màu 2mm.

 Các bộ phận chính: Đế dưới, đế giữa, đế trên, mạch điện tử, cảm biến RPLiDAR, động cơ, …

3.1.2. Thiết kế hệ thống khung robot

Hệ thống cơ khí thiết kết trên Solidwork.

Trên base 2 có Raspberry Pi 3, động cơ JGB37-520, Arduino Uno, L298. Trên base 1 có màn hình raspberry 5 inch, RP Lidar A1.

Hình 3.2: Mô hình 3D khung cơ khí robot

3.1.3. Tính toán lựa chọn bánh xe

Bánh xe động lực: Bánh động lực cần phải chịu tải tốt, ma sát giữa bánh với mặt đất phải lớn để tránh bị trượt khi di chuyển gây ra sự không ổn định của xe trong quá trình làm việc. Dựa vào khối lượng các linh điện và khung xe trong quá trình làm việc nhóm chọn bánh động lực có kích thước như sau: Đường kính bánh xe 65mm, có phần khung làm từ nhựa đủ khả năng chịu tải tốt, đồng thời lớp vỏ ngoài là cao su chia làm các rãnh làm tăng ma sát.

48

Bánh dẫn hướng: hay còn gọi là bánh xe tự lựa giúp robot điều chỉnh hướng đi. Quay trái, quay phải, linh hoạt hơn.

Hình 3.3: Bánh xe dẫn động

Hình 3.4: Bánh xe dẫn hướng bị động

3.1.4. Tính toán lựa chọn động cơ

Đối với cơ cấu di chuyển của xe, lực cản tĩnh phụ thuộc vào khối lượng chuyên chở và khối lượng của xe, trạng thái đường đi (cong, thẳng, ...). Do vậy lực cản được tính theo công thức sau:

. .

c msl l

FF   m g (3.1)

Trong đó:

Fc: Lực cản chuyển động (N) m: Khối lượng của xe (kg) : Hệ số ma sát lăn ( 0,1)

49 g : Gia tốc trọng trường

Mô men của động cơ sinh ra để thắng lực cản chuyển động đó:

. [ . ] . b F R M N m i  (3.2) Trong đó: i: Tỉ số truyền từ trục động cơ đến bánh xe (i = 84) : Hiệu suất của cơ cấu truyền ( 0,9)

Rb: Bán kính bánh xe

Công suất của động cơ khi di chuyển có tải:

. [kW]

PF v (3.3)

Từ thực tế ta có được:

Khối lượng của xe + tải: m = 4 (kg) Bán kính bánh xe: Rb = 0.033 (m)

Vận tốc của xe: v = 0.15 (m/s) = 0.54 (km/h) Gia tốc của xe: a = 0.2 (m/s2)

Áp dụng định luật II New-ton: c FFma (3.4) 4.0, 2 0,1.10.4 4,8 (N) c F ma F      

Momen của động cơ:

3 . 4,8.0.033 2,09.10 ( . ) . 84.0,9 b F R M N m i    

Công suất của động cơ khi di chuyển:

. 4,8.0,54 2.6 (W)

50

Sau khi tính toán các thông số động cơ, công suất động cơ được lựa chọn dựa trên các thông số lớn nhất do yêu cầu đặt ra. Trong lúc hoạt động xe chịu nhiều ảnh hưởng bởi các lực cản bên ngoài môi trường. Vì vậy để đảm bảo công suất cho xe, nhóm đã quyết định lựa chọn động cơ DC encoder JGB37- 520 với các nguyên liệu chất lượng cao cho độ bền và độ ổn định vượt trội, động cơ được tích hợp thêm Encoder 2 kênh A B cho các ứng dụng cần độ chính xác cao.

Nhóm em lựa chọn động cơ DC encoder JGB37-520(12V/333RPM)

Hình 3.5: Động cơ DC encoder JGB37-520 12VDC

Động cơ DC Servo giảm tốc GA37 V1 là loại động cơ có hộp số và Encoder, thường được dùng trong các hệ cơ khí cần độ chính xác cao và các mô hình như xe dò line, xe chạy mê cung, xe 2 bánh tự cân bằng.

Động cơ DC Servo giảm tốc GA37 V1 tại Hshop.vn có chất lượng và độ bền cao, encoder sử dụng từ trường với lực từ mạnh giúp phản hồi xung chính xác, encoder có 2 kênh AB và bao gồm 11 xung, số xung sau giảm tốc là 363 xung/ 1 vòng cho độ chính xác cao.

51 Thông số động cơ:

 Điện áp định mức: 12VDC  Dòng tối đa: 3A

 Tốc độ động cơ trước hộp số giảm tốc: 10.000RPM  Tỉ số truyền: 1:33

 Tốc độ sau hộp số giảm tốc (trục chính): 10.000 / 33 = 303RPM  Đường kính trục: 6mm

Thông số Encoder:

 Điện áp cấp: 3.3VDC

 Encoder: Đĩa từ 11 xung, 2 kênh xung AB.

 Số xung Encoder sau giảm tốc: 11x33 = 363 xung / 1 vòng.

Sơ đồ chân Encoder:

 M1 - Red: chân cấp nguồn cho động cơ, tối đa 12VDC.  GND - Black: Chân Mass 0v của Encoder.

 C1 - Yellow: Kênh A của Encoder, xuất xung mức tín hiệu 3.3VDC  C2 - Green: Kênh B của Encoder, xuất xung mức tín hiệu 3.3VDC  3.3 - Blue: Nguồn dương 3.3VDC cấp cho Encoder hoạt động.  M2 - White: chân cấp nguồn cho động cơ, tối đa 12VDC.

52

3.2. Xây dựng hệ thống điện - điều khiển 3.2.1. Sơ đồ khối mạch điều khiển 3.2.1. Sơ đồ khối mạch điều khiển

Hình 3.6: Sơ đồ khối hệ thống điều khiển

Để xây dựng một con robot có khả năng di chuyển định vị và tạo lập bản đồ trong phòng nhóm đồ án chúng em đã nghiên cứu tìm hiểu tài liệu để xây dựng lên một sơ đồ điều khiển như trên hình. Và được xây dựng dựa trên thành phần cơ bản:

- Raspberry Pi 3 Module B: nhóm đã chọn Raspberry Pi 3 Model B những ưu điểm như công suất cao, tiêu thụ năng lượng thấp, bộ nhớ lớn, khả năng lập trình dễ dàng, tốc độ xử lý cao.

- Arduino Uno: Được nạp chương trình thông qua Raspberry Pi 3 Module B xuất tín hiệu điều khiển tới module điều khiển mạch động cơ L298. - Module điều khiển động cơ L298: được kết nối với Arduino Uno thông

qua các chân IO, L298 thu nhận tín hiệu điều khiển từ Arduino điều khiển hoạt động của động cơ. Mạch điều khiển động cơ DC L298 dễ sử dụng, chi phí thấp, dễ lắp đặt, là sự lựa chọn tối ưu trong tầm giá.

- Cảm biến RPLIDAR A1: RPLIDAR A1 kết nối với Raspberry thông qua cầu UART và đầu cắm chuyển đổi USB.

53

54

55

3.2.2. Lựa chọn thiết bị điều khiển

3.2.2.1. Chọn mạch vi điều khiển Arduino Uno R3

Ngoài ra, nhóm em có sử dụng thêm Ardunio uni R3 để điều khiển động cơ. Aduino uno R3 là một mạch vi điều khiển sử dụng phổ biến dễ dàng lập trình giá cả hợp lí. Bảng mạch được trang bị các bộ chân đầu vào/ đầu ra Digital và Analog có thể giao tiếp với các bảng mạch mở rộng khác nhau.

Hình 3.9: Arduino uno R3

Thông số kỹ thuật:

 Vi điều khiển: ATmega328 họ 8 bit

 Điện áp hoạt động: 5V DC (chỉ sử dụng nguồn cấp qua cổng USB)  Tần số hoạt động: 16 MHz Dòng điện tiêu thụ: khoảng 30mA Điện

áp đầu vào khuyên dùng: 7-12V DC  Điện áp vào giới hạn: 6 -20V DC

 Số chân Digital I/O: 14(6 chân hardware PWM)  Số chân Analog: 6 (độ phân giải 10 bit)

 Dòng tối đa trên mỗi chân I/O: 30mA Dòng ra tối đa (nguồn 5V): 500mA

56

 Bộ nhớ Flash: 32KB (ATmega328) với 0.5KB dùng bởi bootloader

 SRAM: 2KB (ATmega328)  EEPROM: 1KB(ATmega328)

3.2.2.2. Lựa chọn mạch công suất

Mạch điều khiển động cơ DC L298 có khả năng điều khiển 2 động cơ DC, dòng tối đa 2A mỗi động cơ, mạch tích hợp diod bảo vệ và IC nguồn 7805 giúp cấp nguồn 5VDC cho các module khác.

Hình 3.10: L298-Mạch điều khiển động cơ

Thông số kĩ thuật:

– IC chính: L298 – Mạch điều khiển động cơ – Điện áp đầu vào: 5~30VDC

– Dòng tối đa cho mỗi cầu H là: 2A, công suất tối đa: 25W/ 1 cầu – Mức điện áp logic: Low -0.3V~1.5V, High: 2.3V~Vss

57 3.2.2.3. Mạch phát hạ áp Buck DC-DC 5A XL4015 Hình 3.11: Mạch phát hạ áp Buck DC-DC 5A XL4015 Thông số kỹ thuật:  IC sử dụng XL4015 TO263  Điện áp vào 8 - 36V DC  Điện áp ra 1.25 - 32V DC  Dòng điện ra Max 5A  Hiệu suất 96%

 Thay đổi điện áp đầu ra: xoay biến trở

 Kích thước 54x23x18mm

3.2.2.4. Pin 3S-12V Li-ion 18650

Chúng em sử dụng pin 3S-12V Li-ion 18650 4000mAh để cấp nguồn cho động cơ.

58

3.2.3. Tính toán và lập trình điều khiển động cơ

Hình 3.13: Sơ đồ hệ thống điều khiển động cơ

Luật điều khiển thường được chọn trên cơ sở đã xác định được mô hình toán học của đối tượng phải phù hợp với đối tượng cũng như thỏa mãn yêu cầu của bài toán thiết kế.

 Phương trình toán học: ( ) ( ) p ( ) I ( ) D de t U t K e t K e t dt K dt     (3.5)  Ảnh Laplace: ( ) I P C d K G s K K s s    (3.6)

59

Hình 3.14: Sơ đồ khối bộ điều khiển PID

Khâu tỉ lệ, tích phân, vi phân được cộng lại với nhau để tính toán đầu ra của bộ điều khiển PID. Định nghĩa rằng u(t) là đầu ra của bộ điều khiển, biểu thức cuối cùng của giải thuật PID là:

0 ( ) ( ) ( ) ( ) ( ) e p I d de t u t MV t K e t K e t dt K dt      (3.7)

Trong đó các thông số điều chỉnh là:

 Độ lợi tỉ lệ, Kp: giá trị càng lớn thì đáp ứng càng nhanh do đó sai số càng lớn, bù khâu tỉ lệ càng lớn. Một giá trị độ lợi tỉ lệ quá lớn sẽ dấn đến quá trình mất ổn định và dao động.

 Độ lợi tích phân, Ki: giá trị càng lớn kéo theo sai số ổn định bị khử càng nhanh. Đổi lại là độ vọt lố càng lớn: bất kỳ sai số âm nào được tích phân trong suốt đáp ứng quá độ phải được triệt tiêu tích phân bằng sai số dương trước khi tiến tới trạng thái ổn định.

 Độ lợi vi phân, Kd: giá trị càng lớn càng giảm độ vọt lố, nhưng lại làm chậm đáp ứng quá độ và có thể dẫn đến mất ổn định do khuếch đại nhiễu tín hiệu trong phép vi phân sai số.

 Có một số phương pháp để chọn thông số PID như là:

1.Trước tiên bạn cài đặt hệ số P trước. từ nhỏ tới lớn đến khi nào đạt được độ cứng cần thiết của hệ thống.

60

2.Thứ 2 cài đặt tới hệ số I. Từ nhỏ tới lớn, quan sát đáp ứng của hệ thống khi các thông số thay đổi. Khi nào đạt được khi thôi

3.Cuối cùng chỉnh tới thông số D. Khi hệ số I tăng thì đáp ứng của hệ thống nhanh nhưng rễ mất ổn định, bị dao động. Bạn cũng tăng từ từ hệ số D lên.

 Nhóm sử dụng phương pháp thực nghiệm trên Arduino và động cơ để chọn thông số PID:

– Đưa các giá trị Ki = Kd đồng thời quy chúng về giá trị = 0. Sau đó; ta hiệu chỉnh giá trị Kp tăng dần đến khi nào hệ thống dao động tuần hoàn ổn định thì ngưng.

– Hiệu chuẩn time tích phân tương ứng với chu kỳ dao động tuần hoàn. – Kiểm soát lại giá trị Kp vừa khớp với yêu cầu bài toán. Trong qua trình

hiệu chỉnh; nếu xảy ra hiện tượng thay đổi do dao động đột biến thì ta hiệu chuẩn thêm giá trị Kd.

 Mạch điều khiển động cơ dùng cầu H

Mạch cầu H là nguyên lý khá phổ biến trong điều khiển đông cơ. Cấu trúc mạch cầu H là một giải pháp đơn giản có thể tạo ra điện áp lưỡng cực từ nguồn đơn cực.

Hình vẽ trên mô tả một mạch cầu H đơn giản dùng bốn tranzito. Bằng cách đóng mở các cặp tranzito khác nhau (Q1-Q3) hoặc (Q2-Q4), có thể có điện áp lưỡng cực qua tải từ một nguồn cấp đơn cực. Trong nhiều ứng dụng, các cặp tranzito trong cầu H có thể được điều khiển trực tiếp bởi đầu ra của một thiết bị số (TTL hoặc CMOS).

61

Nhóm thực hiên điều khiển động cơ qua ROS với gói “teleop_twist_keyboard” trên bàn phím máy tính.

Hình 3.16: Điều khiển động cơ bằng bàn phím kết hợp Rviz

Thuật toán được lập trình điều khiển trên Arduino Uno R3. Tham khảo phần code chi tiết tại phụ lục 1.

Sơ đồ hệ thống điều khiển robot tham khảo tại bản vẽ 4.

62

3.3. Thiết kế hệ thống định vị và dẫn đường 3.3.1. Xây dựng thuật toán quét bản đồ 3.3.1. Xây dựng thuật toán quét bản đồ

Hình 3.17: Lưu đồ thuật toán SLAM

Robot có thể thực hiện các gói phần mềm SLAM sử dụng các loại thuật toán khác nhau dựa trên nền tảng ROS như Gmapping, Cartographer, hector, karto, tuy nhiên sử dụng phổ biến nhất vẫn là Hector mapping. Với dữ liệu cảm biến laser quét 360 độ, robot vừa có thể tạo bản đồ, vừa có khả năng tự định vị mình trong bản đồ đó. Đối với thuật toán Hector mapping, robot sử dụng bộ lọc để tìm ra tọa độ gần với vị trí thực tế của robot trên bản đồ. Hình 3.6 biểu diễn lưu đồ thuật toán SLAM cho quy trình vừa định vị vừa cập nhật bản đồ vào cơ sở dữ liệu. Quá trình này diễn ra liên tục mỗi khi có dữ liệu từ cảm biến trả về, robot vừa định vị bản thân, vừa cập nhật bản đồ vào cơ sở dữ liệu tại cuối quá trình.

63

3.3.1.1. Thuật toán xây dựng bản đồ (mapping):

a) Cơ sở lý thuyết:

Thuật toán sử dụng để xây dựng bản đồ từ dữ liệu laser phổ biến là Gmapping. Bản đồ được tạo ra là bản đồ dạng lưới, là dạng bản đồ tiêu chuẩn trong các ứng dụng robot. Thuật toán này được đề xuất đầu tiên trong cuốn Rao- Blackwellized Particle Filtering for Dynamic Bayesian Networks của Kevin Murphy và Stuart Russell. Ý tưởng chính là sử dụng bộ lọc hạt Rao- Blackwelliezed. Sau đó chúng được cải tiến bằng cách tối ưu hóa các bản phân phối đề xuất và giới thiệu tính năng lấy mẫu lại thích ứng, làm cho thuật toán phù hợp hơn cho các ứng dụng thực tế. Sau đó nó được gọi là Gmapping (G trong grid có nghĩa là lưới). Trong bài tập lần này chúng em không đề cập sâu tới thuật toán này mà chỉ đề cập tới khái niệm và cách sử dụng các package để tái tạo bản đồ trên nền ROS.

Hình 3.18: Tập hợp điểm cảm biến laser quét được

b) Gmapping và Laser Scan Matcher trong ROS:

Đối với gmapping thì nó yêu cầu một dữ liệu odometry và một cảm biến laser. Trong Ros thì để ứng dụng Gmapping ta sử dụng node slam_gmapping. Để sử dụng slam_gmapping ta cần cung cấp dữ liệu Odometry và dữ liệu mà

64

cảm biến laser publish lên topic /scan. Đầu ra của package này là một bản đồ 2D (nav_msgs/OccupancyGrid), có thể nói như là mặt sàn của môi trường đang dựng. Tương tự như các package khác, chúng ta cần thiết lập launch file cho gmapping. Trong đó, chúng ta có các thông số quan trọng sau:

<param name="map_udpate_interval" value="2.0"/> <param name="delta" value="0.02"/>

<param name="xmin" value="-20"/> <param name="xmax" value="20"/> <param name="ymin" value="-20"/> <param name="ymax" value="20"/>

map_udpate_interval là thời gian giữa hai lần cập nhật map tính bằng giây. delta là độ phân giải của map (đơn vị là mét trên một khối occupancy grid). xmin, xmax, ymin, ymax là quy định kích thước của bản đồ (đơn vị là mét).

 Xác định tọa độ của robot so với frame gốc ban đầu

Để tính được dữ liệu Odometry hay xác định vị trí của robot so với frame

Một phần của tài liệu 00 v3 (Trang 49)

Tải bản đầy đủ (PDF)

(105 trang)