Tải bản đầy đủ (.pdf) (19 trang)

Thiết kế lập trình cánh tay robot gắp vật

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.74 MB, 19 trang )

MỤC LỤC
Phần 1. Tóm tắt cơng trình.............................................................................1
Phần 2. Đặt vấn đề..........................................................................................2
2.1. Cấu tạo robot.......................................................................................2
2.1.1. Hệ thống thiết bị.............................................................................2
2.1.2. Chức năng của thiết bị:...................................................................3
2.2. Thiết kế mơ hình tay robot..................................................................4
Phần 3. Kết quả..............................................................................................6
3.1. Ý tưởng bài toán..................................................................................6
3.2. Câu lệnh G28.......................................................................................7
3.3. Bài toán kiểm tra hàng đợi Queue.......................................................8
3.4. Bài toán nội suy chuyển động theo đường thẳng................................9
3.5. Lập trình GUI để điều khiển sản phẩm.............................................10
3.5.1. Giao diện Winform.......................................................................10
3.5.2. Giao tiếp giữa Winform và Adruino IDE.....................................13
Phần 4. Kết luận...........................................................................................14
4.1. Những ưu điểm..................................................................................14
4.2. Những hạn chế..................................................................................14
4.3. Hướng phát triển...............................................................................14
Phần 5. Tài liệu tham khảo...........................................................................15


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

LỜI MỞ ĐẦU
Hiện nay, khi công nghệ hiện đại ngày càng phát triển, máy móc thiết bị
cũng ngày một hiện đại hơn. Nền cơng nghiệp tự động hóa, cơng nghiệp hóa
dần dần thay thế cho sức người trong những công việc nhàm chán, lặp đi lặp lại
hay thậm chỉ là nguy hiểm cho con người.


Đi đơi với phát triển về ngành cơ khí chế tạo, thì ngành cơng nghệ thơng tin
đang được nâng tầm để trở thành những lĩnh vực đi đầu trong cuộc sống hiện
đại, về lập trình ứng dụng phần mềm, quản lý dữ liệu trên khơng gian mạng,
phân tích xử lí số liệu bằng trí tuệ nhân tạo, lập trình cho robot thông minh,…
Đặc biệt đối với ngành cơ điện tử, kiến thức về cơ khí chế tạo và kỹ thuật lập
trình càng cần được song hành để tối ưu được sức mạnh, giá trị của ngành nghề.
Ứng dụng trong dây chuyển sản xuất tự động, tay robot gắp hàng hóa trên
băng tải được sử dụng phổ biến rất nhiều, mang lại nhiều lợi ích như tăng tính
an tồn trong sản xuất, tăng năng suất lao động, giải phóng sức lao động con
người ,…
Nắm bắt được những điểu đó, nhóm chúng em đã vận dụng những kiến thức
của môn học “ Kỹ thuật lập trình trong cơ điện tử “ dưới sự hướng dẫn của thầy
TS.Trương Công Tuấn để thực hiện bài tập lớn với đề tài “ Thiết kế lập trình
cánh tay robot gắp vật “.

2


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

PHẦN 1. TĨM TẮT CƠNG TRÌNH
Điều khiển cánh tay robot là một ứng dụng thực tế mà hiện nay đang phát
triển mạnh mẽ, đa dạng và sinh động, nó được ứng dụng nhiều trong các nhà
máy sản xuất nhằm giảm bớt công sức lao động của con người đồng thời nâng
cao số lượng cũng như chất lượng của sản phẩm, nên nó phù hợp nhiều ứng
dụng thực tế,…
Nhóm chúng em lên ý tưởng vẽ mơ hình sau đó in ra bằng máy in 3D. Tay
robot có bốn bậc tự do, điểu khiển các khâu bằng động cơ bước, sử dụng vi điểu

khiển là mạch arduino kết hợp với module điểu khiển mở rộng Ramps 1.4, điểu
khiển sản phẩm qua giao diện GUI (A graphical user interface). Kiến thức sử
dụng chính là lập trình hướng đối tượng trong C++, lập trình giao diện
Winform, lập trình code trên arduino IDE tận dụng những thư viện có sẵn.

Hình 1.1. Sơ đồ tổng quan
Nhận lệnh G-code từ máy tính và sẽ được đưa vào hàng đợi Queue. Sau đó
đưa vào Command để lấy thơng tin từ lệnh ( cụ thể ba tọa độ X,Y,Z của khâu
cuối và tốc độ F mong muốn di chuyển tới). Phản hồi lại trạng thái của hai Class
này sẽ là Logger ( Ví dụ: câu lệnh sai cú pháp, báo lỗi chưa kết nối vi điều
khiển,…). Tiếp theo là cụm nội suy Interpolation, khi truyền vào toạ độ của
điểm mong muốn thì thông qua việc nội suy đường thẳng sẽ nội suy ra các toạ
1


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

độ tức thời. Cuối cùng xử lý bài toán động học ngược Inverse Kinematic lấy tọa
độ

X E ,Y E , Z E

của khâu cuối để tìm ra được các góc quay của các khâu rồi

truyền cho động cơ bước sẽ quay theo các góc tương ứng đó.

PHẦN 2. ĐẶT VẤN ĐỀ
2.1. Cấu tạo robot

2.1.1. Hệ thống thiết bị
STT

Tên thiết bị

Số lượng

1

Arduino mega 2560

1

2

Ramps 1.4

1

3

Module Driver
A4988

3

4

Servo Gripper


1

5

Endstop

3

6

Stepper motor

3

Bảng 2.1. Bảng các thiết bị sử dụng

2

Hình ảnh


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

Hình 2.1. Sơ đồ nối dây
2.1.2. Chức năng của thiết bị:
- Arduino mega 2560: Là một vi điều khiển hoạt động dựa theo chip
ATmega2560.
- Ramps1.4: Mạch điều khiển máy in 3D RAMPS 1.4 là board mạch được

sử dụng để làm máy in 3D thơng dụng nhất hiện nay, mạch có thể kết hợp với
3


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

Arduino Mega 2560 và Các loại Driver Motor bước 16 chân như A4988,
DRV8825,...
- Module Driver A4988: là driver điều khiển động cơ bước cực kỳ nhỏ gọn,
hỗ trợ nhiều chế độ làm việc, điều chỉnh được dòng ra cho động cơ, tự động
ngắt điện khi quá nóng. Mạch điều khiển A4988 hỗ trợ nhiều chế độ hoạt động
của động cơ bước lưỡng cực như: Full, 1/2, 1/4, 1/8 và 1/16.
- Servo Gripper: Là 1 cơ cấu cơ khí hỗ trợ giữ gắp sản phẩm.
- Endstops: Một loại cơng tắc hành trình điểm dừng.
- Stepper motor: là một loại động cơ chạy bằng điện có nguyên lý và ứng
dụng khác biệt với đa số các động cơ điện thông thường. Chúng thực chất là
một động cơ đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các
xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển
động của rơto có khả năng cố định roto vào các vị trí cần thiết.
2.2. Thiết kế mơ hình tay robot

Hình 2.2. Mơ hình tham khảo

4


Đại học Bách Khoa Hà Nội


Viện Cơ Khí

Hình 2.3. Mơ hình vẽ trên Solidworks
Hiện nay có hai kiểu robot phổ biến là robot nối tiếp và robot song song.
Sau đây là bảng so sánh về hai kiểu robot. Nhóm em đã chọn sử dụng robot
song song dựa trên những so sánh này.
STT

Tính năng

Robot nối tiếp

Robot song song

1

Độ chính xác

Thấp hơn

Cao hơn

2

Không gian làm việc

Lớn hơn

Nhỏ hơn


3

Độ cứng vững

Thấp hơn

Cao hơn

4

Tỉ số dài / khối lượng

Thấp hơn

Cao hơn

5

Tải trọng quán tính

Lớn hơn

Nhỏ hơn

6

Tốc độ làm việc

Thấp hơn


Cao hơn

7

Độ phức tạp thiết kế / điểu khiển

Đơn giản

Phức tạp

8

Mật độ điểm kì dị

Ít hơn

Nhiều hơn

Bảng 2.2. So sánh robot nối tiếp và robot song song
5


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

PHẦN 3. KẾT QUẢ
Mã Gcode
G0 / G1
G28

G90
G91
M3
M5

Ý nghĩa
Nội suy chuyển động theo đường thẳng
Về vị trí gốc
Hệ tọa độ tuyệt đối
Hệ tọa độ tương đối
Bật cơ cấu gắp
Tắt cơ cấu gắp
Bảng 3.1. Bảng các mã Gcode

3.1. Ý tưởng bài tốn

Hình 3.1. Sơ đồ khối chính
- Đầu tiên, sẽ khởi tạo và đặt các tham số cần thiết ( độ dài các khâu, các
chân kết nối, cơng tắc hành trình,…). Tiếp theo trước khi hoạt động, cần đưa
robot về một vị trí gốc ban đầu đã được cài đặt sẵn thông qua câu lệnh G28.
6


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

Tiếp theo sẽ kiểm tra đến hàng đợi, nếu thỏa mãn thì thực hiện lệnh Gcode vừa
gửi đi.
3.2. Câu lệnh G28


Hình 3.2. Sơ đồ khối lệnh G28
- Động cơ quay về hướng định sẵn phía Endstop.
- Cho đến khi các câu chạm điểm dừng Endstop, động cơ Step chạy ngược
lại một đoạn phần gọi là phần offset ( vì khi chạm điểm dừng thì động cơ chưa
dừng lại ngay mà cần thời gian để dừng nên bị dôi đi một đoạn rất nhỏ, vậy nên
cần bù ngược lại để robot về vị trí gốc cho chính xác với cài đặt mà mình mong
muốn ).
- Nếu chưa chạm điểm dừng Endstop thì động cơ Step tiếp tục chạy thực
hiện vòng lặp.

7


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

3.3. Bài tốn kiểm tra hàng đợi Queue

Hình 3.3. Sơ đồ khối kiểm tra hàng đợi
- Sau khi gửi câu lệnh, sẽ kiểm tra các điều kiện. Nếu hàng đợi Queue chưa
đầy thì tiếp tục kiểm tra tới các điều kiện có mã nào trong bộ nhớ đệm khơng.
Nếu có thì sẽ đọc và kiểm tra cú pháp mã Gcode, sau đó đẩy vào hàng đợi

8


Đại học Bách Khoa Hà Nội


Viện Cơ Khí

Queue. Trong trường hợp các điểu kiện trên khơng thỏa mãn, thì bỏ qua ln
câu lệnh.
Tiếp theo, nếu vẫn cịn lệnh trong hàng đợi và lệnh trước đã hồn thành thì sẽ
đẩy lệnh Gcode ra và gửi xuống vi điểu khiển. Nếu sai điều kiện, câu lệnh được
giữ nguyên và kết thúc.
3.4. Bài tốn nội suy chuyển động theo đường thẳng

Hình 3.4 Sơ đồ khối lệnh G0/G1
9


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

- Muốn di chuyển khâu cuối từ điểm A hiện tại đến điểm B mong muốn,
nhập lệnh Gcode truyền các tham số tọa độ của điểm B ( Ví dụ
G01X50Y60Z40F50 ).
Tiếp theo kiểm tra tọa độ điểm B là tương đối hay tuyệt đối so với điểm gốc.
Nếu là tương đối thì tính lại điểm B theo tuyệt đối, quy chung về bài tốn tính
trong hệ tuyệt đối. Sau khi hồn thành, nếu kết quả đúng thì kết thúc ln bài
tốn. Ngược lại sai thì nội suy ra các điểm tức thời trên đường thẳng nội suy, kết
hợp với kiểm tra điều kiện biên. Sau đó giải bài tốn động học ngược, tính ra
các góc quay tương ứng của từng khâu, rồi phát xung cho động cơ Step quay,
tiếp tục vòng lặp đến khi hồn thành tới vị trí điểm B. Nếu điều kiện biên khơng
thỏa mãn thì kết thúc ln bài tốn.
3.5. Lập trình GUI để điều khiển sản phẩm
3.5.1. Giao diện Winform


Chọn tốc độ BaudRate
Nút ấn kết nối

cho vi điều khiển

thiết bị ngoại vi
Chọn cổng COM kết
nối thiết bị ngoại vi

Hình 2.x. Giao diện kết nối
Trạng thái khi
chưa kết nối

10


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

- Sử dụng các Toolbox có sẵn ( cổng kết nối Serial Port, các Button, Radio
Button, ComboBox, MenuStrip ).
- Tìm tất cả các cổng COM đang kết nối với cú pháp ( array<Object^>^
namePort = SerialPort::GetPortNames(); ) rồi đưa vào các lựa chọn trong
Combo box ( this->combo_Box_COM->Items->AddRange(namePort); ).
- Tạo danh sách BaudRate với cú pháp ( this->combo_Box_BAUND>Items->AddRange(gcnew cli::array< System::Object^ >(8) { L"4800",
L"9600", L"144000", L"19200", L"38400",L"56000", L"57600", L"115200"};).

Nút về gốc qua lệnh

Chọn chế độ nhập

G28

lệnh Gcode

Vùng thông báo các

Nhập và gửi lệnh

lệnh đã gửi

Điểu khiển
khâu gắp

Hình 2.x. Giao diện làm việc chính
Trạng thái đã kết
nối

11

Vùng điều khiển bằng
nút bấm


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

- Sử dụng các Panel để phân vùng làm việc, tiện cho việc quản lí và sử

dụng.
- Ban đầu khi vừa kết nối, chọn nút Home để đưa robot về vị trí gốc ban đầu
đã được cài đặt sẵn trước. Tiếp theo tùy chỉnh điểu khiển robot có thể nhập gửi
lệnh hoặc dùng các nút bấm thủ cơng.
- Với kiểu nhập lệnh, có thể chọn nhập từng mã Gcode lần lượt hoặc nhiều
mã liền thành một đoạn.
- Với điều khiển bằng tay qua nút bấm, có thể tăng giảm các toạ độ X, Y, Z
theo 2 mức 5 và 10. Ví dụ tăng X lên 5

, giảm Y đi 10

.

Chọn chế độ Learn
Mode
Nút học

Nút chạy

Ví dụ về file Gcode

Hình 2.x. Giao diện ở chế độ Learn Mode
12


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

- Ở chế độ “ học lệnh “ này, có thể tạo sẵn các file mã lệnh Gcode rồi mở

lên cho robot “ learn ” và “ run ”.
3.5.2. Giao tiếp giữa Winform và Adruino IDE
- Giao tiếp truyền thông UART ( Universal Asynchronous Receiver
Transmitter

).



chuẩn

giao tiếp nối tiếp với sự hỗ trợ của phần cứng –

hardware. Phần cứng được sử dụng cho UART là một mạch tích hợp bên trong
vi điều khiển của board Adruino. UART là chuẩn giao tiếp đơn giản nhất và
được sử dụng nhiều nhất trong các kỹ thuật giao tiếp nối tiếp đặc biệt giao tiếp
không dây : Bluetooth, Wifi, …
-

UART sẽ truyền dữ liệu nhận được từ một bus dữ liệu (

Data

Bus

).

Bus dữ liệu được sử dụng để gửi dữ liệu đến UART bởi một thiết bị khác như
CPU, bộ nhớ hoặc vi điều khiển. Dữ liệu được chuyển từ bus dữ liệu đến UART
truyền ở dạng song song. Sau khi UART truyền nhận dữ liệu song song từ bus

dữ liệu, nó sẽ thêm một bit start, một bit chẵn lẻ và một bit stop, tạo ra gói dữ
liệu.

Tiếp theo, gói dữ liệu được xuất ra nối tiếp từng bit tại chân Tx.

UART

nhận đọc gói dữ liệu từng bit tại chân Rx của nó. UART nhận sau đó chuyển đổi
dữ liệu trở lại dạng song song và loại bỏ bit start.

Hình
2.x. Nguyên lý hoạt động UART
13


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

14


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

PHẦN 4. KẾT LUẬN
4.1. Những ưu điểm
- Các thành viên giành thời gian họp mỗi tuần, nâng cao khả năng làm việc
theo nhóm.

- Đã biết cách áp dụng công thức, những kiến thức của học phần đã học vào
bài toán thực tế.
- Hiểu được cách hoạt động của một bài toán điều khiển.
- Biết cách lập trình các bài tồn cơ bản, lập trình hướng đối tượng và thiết
kế giao diện người dùng.
- Biết sử dụng vi điểu khiển.
4.2. Những hạn chế
- Chưa tối ưu được cơ cấu vận hành, các khâu còn va chạm vào nhau.
- Chưa tối ưu được code giao diện.
- Điều khiển nhiều khi vẫn gặp lỗi, bị treo khi hoạt động lâu.
- Hạn chế về mua thiết bị, đồ dùng cho phần cứng.
- Hệ thống đang là điều khiển vịng hở, khơng có vịng phản hồi nên khó
kiểm sốt được độ chính xác của vị trí khâu cuối.
- Do dịch bệnh nên hầu như các thành viên khác không được tận tay debug
code, thử nghiệm phần cứng mà phải liên hệ qua nhau.
4.3. Hướng phát triển
- Nâng cao khả năng thiết kế về hệ thống cơ khí để mơ hình gọn gàng và
thẩm mỹ hơn.
- Bổ sung thêm những tính năng cho sản phẩm, tìm hiểu để ứng dụng thêm
nhiều bài toán trong thực tế.
- Học tập, rèn luyện thêm kiến thức về lập trình hướng đối tượng, thiết kế
giao diện và bộ vi điểu khiển.
- Thay thế động cơ Step bằng động cơ Servo, có tín hiệu phản hồi để nâng
cao độ chính xác cho cơ cấu.
15


Đại học Bách Khoa Hà Nội

Viện Cơ Khí


- Là bước đầu phát triển để hình thành những kiến thức cơ bản chuẩn bị cho
kiến thức chuyên ngành.

16


Đại học Bách Khoa Hà Nội

Viện Cơ Khí

PHẦN 5. TÀI LIỆU THAM KHẢO
- />- />- />- Objects, abstraction, data structures and design using C++ (Elliot
B.Koffman, Paul A T.Wolfgang)

17



×