TRƢỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ ĐIỆN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐIỀU KHIỂN CÁNH TAY ROBOT PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC DÙNG XỬ LÝ ẢNH PHAN VĂN DŨNG THÀNH PHỐ HỒ CHÍ MINH, NĂM 2018 TRƢỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ ĐIỆN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐIỀU KHIỂN CÁNH TAY ROBOT PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC DÙNG XỬ LÝ ẢNH GVHD ThS NGUYỄN NGỌC ANH TUẤN SVTH PHAN VĂN DŨNG LỚP DHDKTD10B MSSV 14038601 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2018 Đồ án tốt n.
TRƢỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ ĐIỆN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐIỀU KHIỂN CÁNH TAY ROBOT PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC DÙNG XỬ LÝ ẢNH PHAN VĂN DŨNG THÀNH PHỐ HỒ CHÍ MINH, NĂM 2018 TRƢỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ ĐIỆN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐIỀU KHIỂN CÁNH TAY ROBOT PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC DÙNG XỬ LÝ ẢNH GVHD: ThS NGUYỄN NGỌC ANH TUẤN SVTH: PHAN VĂN DŨNG LỚP: DHDKTD10B MSSV: 14038601 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2018 Đồ án tốt nghiệp SVTH: Phan Văn Dũng PHIẾU GIAO ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên đƣợc giao đề tài Phan Văn Dũng; MSSV: 14038601; Lớp: DHDKTD10B Tên đề tài Nghiên cứu điều khiển cánh tay robot phân loại sản phẩm theo màu sắc dùng xử lý ảnh Nội dung Arduino điều khiển băng tải truyền sản phẩm đến vị trí gặp cảm biến băng tải dừng Camera thu nhận ảnh sản phẩm, sau truyền tín hiệu vào máy tính, máy tính xử lý ảnh để nhận dạng màu sắc, truyền tín hiệu xuống arduino, arduino điều khiển động servo cánh tay robot, cánh tay gắp hàng thả hàng vị trí đặt theo màu sắc Kết Cánh tay robot gắp sản phẩm từ băng tải thả vào vị trí yêu cầu theo vị trí màu Tp HCM, ngày Giảng viên hướng dẫn tháng năm 2018 Sinh viên thực I Đồ án tốt nghiệp SVTH: Phan Văn Dũng NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN - II Đồ án tốt nghiệp SVTH: Phan Văn Dũng NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN - III Đồ án tốt nghiệp SVTH: Phan Văn Dũng MỤC LỤC PHIẾU GIAO ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN II NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN III LỜI CAM ĐOAN IX LỜI NÓI ĐẦU X Chƣơng 1: TỔNG QUAN ĐỀ TÀI .1 1.1 Tính cấp thiết đề tài .1 1.2 Mục đích nghiên cứu 1.3 Đối tƣợng nghiên cứu phạm vi nghiên cứu đề tài 1.4 Phƣơng pháp nghiên cứu .1 Chƣơng 2: CƠ SỞ LÝ THUYẾT XỬ LÝ ẢNH 2.1Giới thiệu xử lý ảnh .2 2.2 Hệ thống xử lý ảnh 2.2.1 Phần thu nhận ảnh (Image Acquisition) .3 2.2.2 Phân tích ảnh 2.2.3 Hệ định 2.2.4 Lƣu trữ ảnh 2.3 Những vấn đề hệ thống xử lí ảnh .7 2.3.1 Ảnh điểm ảnh 2.3.2Độ phân giải ảnh .7 2.3.3 Mức xám ảnh 2.3.4 Quan hệ điểm ảnh 2.3.5 Hệ màu 2.4 Xử lý ảnh C# 13 2.4.1 Một số kỹ thuật trợ giúp xử lý ảnh 14 2.4.2 Biên phƣơng pháp phát biên 14 2.4.3 Biến đổi Hough tìm hình chữ nhật 15 Chƣơng GIỚI THIỆU CHUNG VỀ ROBOT 18 IV Đồ án tốt nghiệp SVTH: Phan Văn Dũng 3.1 Giới thiệu robot công nghiệp 18 3.1.1 Q trình phát triển robot cơng nghiệp 18 3.1.2 Ứng dụng robot cơng nghiệp q trình sản xuất 19 3.1.3 Cấu trúc Robot công nghiệp 19 3.1.3.1 Kết cấu chung 19 3.1.4 Phân loại robot 24 3.1.4.1 Phân loại theo kết cấu 24 3.1.4.2 Phân loại theo điều khiển 24 3.1.4.3 Phân loại theo hệ thống truyền động .25 3.1.4.4 Phân loại theo ứng dụng 25 3.2.1 Yêu cầu hoạt động 26 3.2.1.1.Phần khí .26 3.2.1.2.Phần động lực 27 3.2.1.3.Chức hoạt động robot .27 3.2.2 Phân tích hoạt động 27 3.2.3 Thiết kế kiểu dáng 28 3.2.4 Cơ cấu chấp hành 30 3.2.4.1 Giới thiệu động RC Servo 30 3.2.4.2 Động sử dụng mô hình thơng số 31 3.2.5 Vật liệu làm mơ hình 34 3.2.6 Phần gia cơng lắp ráp mơ hình 35 Chƣơng : ỨNG DỤNG XỬ LÝ ẢNH ĐIỀU KHIỂN CÁNH TAY ROBOT 36 4.1 Giới thiệu ngôn ngữ C# 36 4.1.1 Ngơn ngữ lập trình C# gì? 36 4.1.2 Các đặc trƣng C# 36 4.2 Giới thiệu SharpDevelop 37 4.3 Thiết kế mạch điều khiển 39 4.3.1 Bộ điều khiển .39 4.3.1.1 Giới thiệu Aduino 39 4.3.1.2 Giới thiệu bo mạch Arduino Uno R3 SMD 39 4.3.1.3 Mạch Rơ le 42 V Đồ án tốt nghiệp SVTH: Phan Văn Dũng 4.3.2 Nguồn sử dụng mơ hình 43 4.4 Một số phép biển đổi xử lý ảnh 43 4.5 Lƣu đồ giải thuật chƣơng trình 46 47 4.6 Code chƣơng trình điều khiển 48 Chƣơng 5: KẾT LUẬN HƢỚNG PHÁT TRIỂN ĐỀ TÀI 57 5.1 Kết 57 5.2 Ƣu điểm 57 5.3 Các hạn chế cánh tay Robot 57 5.4 Hƣớng phát triển đề tài 57 5.5 Ý nghĩ ứng dụng xử lý ảnh để điều khiển robot phân loại sản phẩm 57 5.6 Kiến nghị, đề xuất .58 TÀI LIỆU THAM KHẢO 59 LỜI CẢM ƠN .60 VI Đồ án tốt nghiệp SVTH: Phan Văn Dũng DANH MỤC HÌNH Hình 2.1 hệ thống xử lý ảnh .2 Hình 2.2: Lân cận điểm ảnh tọa độ (x,y) Hình 2.3.Khơng gian màu RGB 10 Hình 2.4.Khơng gian màu CYMK 11 Hình 2.5 Không gian màu HSV .11 Hình 2.6 hình trịn biểu diễn màu sắc (Hue) 12 Hình 2.7 Hình chữ nhật có gốc tọa độ nằm 15 Hình 2.8 Hình chữ nhật không gian Hough 16 Hình 3.1 Các thành phần tạo nên robot cơng nghiệp .20 Hình 3.2 Kết cấu chung robot 21 Hình 3.3 Tay máy kiểu tọa độ đề 22 Hinh 3.4 Tay máy kiểu tọa độ trụ 22 Hinh 3.5 Tay máy kiểu tọa độ cầu 23 Hinh 3.6 Hệ Scada 23 Hình 3.7 Kiểu tọa độ góc .24 Hình 3.8 Mơ hình tổng thể thực tế 28 Hình 3.9 Phần đĩa quay robot 28 Hình 3.10 Các khớp cánh tay robot 29 Hình 3.11 Tay gắp robot 30 Hình 3.12 Băng tải dùng mơ hình 30 Hình 3.13 Động kéo băng tải 32 Hình 3.14 Bản vẽ kích thước động kéo băng tải .33 Hình 3.15 Bản vẽ kích thươc động dùng cho khớp 34 Hình 3.16 Các vật liệu dùng để làm mơ hình 35 Hình 4.1 Arduino Uno R3 39 Hình 4.2 Board Arduino mặt trước mặt sau .39 Hình 4.3 Các linh kiện bo mạch Arduino Uno .40 Hình 4.4 Sơ đồ mạch nguyên lý 41 VII Đồ án tốt nghiệp SVTH: Phan Văn Dũng Hình 4.5 Sơ đồ mạch layout 41 Hình 4.6 Sơ đồ chân mạch rơle .42 Hình 4.7 sơ đồ nguyên lí mạch rơ le .42 Hình 4.8 Nguồn dùng cho động servo cánh tay 43 Hình 4.9 Nguồn dùng cho động băng tải 43 Hình 4.10 Chuyển đổi ảnh đen trắng 44 Hình 4.11 Chuyển đổi ảnh âm 45 Hình 4.12 Lọc màu 46 Hình 4.13 Giao diện điều khiển .56 VIII Đồ án tốt nghiệp SVTH: Phan Văn Dũng case 3: r = c.R - 255; g = c.G - 255; b = c.B; break; } r = Math.Max(r, 0); b = Math.Max(b, 0); g = Math.Max(g, 0); kq.SetPixel(cot, hang, Color.FromArgb(r,g,b)); } return kq; } Hình 4.12 Lọc màu 4.5 Lƣu đồ giải thuật chƣơng trình 46 Đồ án tốt nghiệp SVTH: Phan Văn Dũng 47 Đồ án tốt nghiệp SVTH: Phan Văn Dũng 4.6 Code chƣơng trình điều khiển * Created by SharpDevelop * User: Bullshit * Date: 5/6/2018 * Time: 6:30 PM * * To change this template use Tools | Options | Coding | Edit Standard Headers */ using System; using System.Collections; using System.Collections.Generic; using System.Drawing; using System.IO.Ports; using System.Windows.Forms; using Emgu.CV; using System.Net; using Emgu.CV.CvEnum; using Emgu.CV.Structure; using Emgu.CV.Util; using System.Threading; namespace ArmController { public partial class MainForm : Form { VideoCapture camera; Mat frame = new Mat(); private object lockObject = new object(); Mat hsv = new Mat(); Mat mask = new Mat(); 48 Đồ án tốt nghiệp SVTH: Phan Văn Dũng const string HOME_POSITION = "1=90;2=90;3=60;"; const string GRIP_POSITION = "1=180;2=60;3=155;"; const string POSITION_1 = "1=70;2=105;3=160;"; const string POSITION_2 = "1=80;2=45;3=90;"; const string POSITION_3 = "1=100;2=45;3=90;"; string[] POSITIONS = new string[]{ "", POSITION_1, POSITION_2, POSITION_3 }; const string START_SCROLLER = "7=0;"; const string STOP_SCROLLER = "7=1;"; const string OPEN_GRIP = "4=40;"; const string CLOSE_GRIP = "4=80;"; const float W_SELECT_BOX = 3f / 8; const float H_SELECT_BOX = 1f / 8; const int WIDTH = 640; const int HEIGHT = 480; int product_number = -1; bool detect = false; bool done = true; bool isTaking = false; Rectangle selectBox = new Rectangle((int)(WIDTH / - WIDTH * W_SELECT_BOX), (int)(HEIGHT / - HEIGHT * H_SELECT_BOX + 30), (int)(WIDTH * W_SELECT_BOX * 2), (int)(HEIGHT * H_SELECT_BOX * 2)); ScalarArray[][] ALL_COLORS = new ScalarArray[][] { new ScalarArray[] { new ScalarArray(new MCvScalar(225 / 2, 40 * 2.55, 20 * 2.55)), new ScalarArray(new MCvScalar(290 / 2, 255, 255)) }, new ScalarArray[] { new ScalarArray(new MCvScalar(90 / 2, 40 * 2.55, 10 * 2.55)), new ScalarArray(new MCvScalar(150 / 2, 255, 255)) 49 Đồ án tốt nghiệp SVTH: Phan Văn Dũng }, new ScalarArray[] { new ScalarArray(new MCvScalar(40 / 2, 50 * 2.55, 40 * 2.55)), new ScalarArray(new MCvScalar(70 / 2, 255, 255)) }, }; public MainForm() { InitializeComponent(); foreach (string port in SerialPort.GetPortNames()) { arduinoPortCB.Items.Add(port); } serialPort1.DataReceived += port_DataReceived; } private void ProcessFrame(object sender, EventArgs arg) { camera.Retrieve(frame); //nh?n khung h?nh CvInvoke.CvtColor(frame, hsv, ColorConversion.Bgr2Hsv); for (int i = 0; i < ALL_COLORS.Length; i++) { ScalarArray lowerColor = ALL_COLORS[i][0]; ScalarArray upperColor = ALL_COLORS[i][1]; CvInvoke.InRange(hsv, lowerColor, upperColor, mask); var element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(30, 30), new Point(-1, -1)); CvInvoke.Erode(mask, mask, element, new Point(-1, -1), 1, BorderType.Reflect, default(MCvScalar)); 50 Đồ án tốt nghiệp SVTH: Phan Văn Dũng CvInvoke.Dilate(mask, mask, element, new Point(-1, -1), 1, BorderType.Reflect, default(MCvScalar)); var contours = new VectorOfVectorOfPoint(); var hierarchy = new Mat(); CvInvoke.FindContours( mask, contours, hierarchy, RetrType.External, ChainApproxMethod.ChainApproxSimple ); CvInvoke.DrawContours(frame, contours, -1, new MCvScalar(255, 255, 0)); for (int j = 0; j < contours.Size; j++) { var c = contours[j]; var rect = CvInvoke.MinAreaRect(c); bao l?y biên var p = new Point(); p.X = (int)rect.Center.X; p.Y = (int)rect.Center.Y; if (selectBox.Contains(p)) { product_number = i + 1; CvInvoke.PutText(frame, "San pham " + product_number, p, FontFace.HersheySimplex, 1.0, new MCvScalar(255, 255, 0), 2, LineType.AntiAlias); if (!isTaking) { if (done && detect && autoCheckBox1.Checked && serialPort1.IsOpen) { isTaking = true; 51 Đồ án tốt nghiệp SVTH: Phan Văn Dũng print("Take product " + product_number); new Thread(() => { sendToArduinoAndWait(STOP_SCROLLER); sendToArduinoAndWait(HOME_POSITION); sendToArduinoAndWait(OPEN_GRIP); sendToArduinoAndWait(GRIP_POSITION); sendToArduinoAndWait(CLOSE_GRIP); sendToArduinoAndWait(HOME_POSITION); sendToArduinoAndWait(POSITIONS[product_number]); sendToArduinoAndWait(OPEN_GRIP); sendToArduinoAndWait(HOME_POSITION); sendToArduinoAndWait(START_SCROLLER); isTaking = false; }).Start(); } } } } } CvInvoke.Rectangle(frame, selectBox, new MCvScalar(255, 0, 255)); 52 Đồ án tốt nghiệp SVTH: Phan Văn Dũng lock (lockObject) { pictureBox1.Image = frame.Bitmap; } } void waitDone() { while (!done) { Thread.Sleep(10); } } void ComboBox1SelectedIndexChanged(object sender, EventArgs e) { } private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { while (serialPort1.BytesToRead > 0) { var data = serialPort1.ReadTo(";"); print("Receive: " + data); if (data.Equals("done")) { done = true; } else if (data.Equals("detect")) { detect = true; } else if (data.Equals("not detect")) { detect = false; } } } void print(String s) { System.Diagnostics.Debug.WriteLine(s); } 53 Đồ án tốt nghiệp SVTH: Phan Văn Dũng void GroupBox1Enter(object sender, EventArgs e) { } void OpenCameraClick(object sender, EventArgs e) { camera = new VideoCapture(cameraAddressTB.Text + "/video"); camera.ImageGrabbed += ProcessFrame; camera.Start(); } void ConnectCOMClick(object sender, EventArgs e) { done = true; if (serialPort1.IsOpen) { serialPort1.Close(); connectCOM.Text = "K?t n?i"; } else { connectCOM.Text = "Ng?t k?t n?i"; serialPort1.PortName = "" + arduinoPortCB.SelectedItem; serialPort1.Open(); // done = true; } } void Button3Click(object sender, EventArgs e) { sendToArduino(POSITION_1); } void Button1Click(object sender, EventArgs e) { sendToArduino(START_SCROLLER); } void Button2Click(object sender, EventArgs e) { sendToArduino(STOP_SCROLLER); 54 Đồ án tốt nghiệp SVTH: Phan Văn Dũng } void Button4Click(object sender, EventArgs e) { sendToArduino(HOME_POSITION); } void Button5Click(object sender, EventArgs e) { sendToArduino(GRIP_POSITION); } void FocusClick(object sender, EventArgs e) { new Thread(() => new WebClient().DownloadString(cameraAddressTB.Text + "/focus")).Start(); } void sendToArduino(String s) { serialPort1.Write(s); done = false; print("Sent command: " + s); } void sendToArduinoAndWait(String s) { sendToArduino(s); waitDone(); } void Button6Click(object sender, EventArgs e) { sendToArduino(POSITION_2); } void Button7Click(object sender, EventArgs e) { sendToArduino(POSITION_3); } 55 Đồ án tốt nghiệp SVTH: Phan Văn Dũng void Button8Click(object sender, EventArgs e) { sendToArduino(OPEN_GRIP); } void Button9Click(object sender, EventArgs e) { sendToArduino(CLOSE_GRIP); } } Giao diện điều khiển cánh tay robot Hình 4.13 Giao diện điều khiển 56 Đồ án tốt nghiệp SVTH: Phan Văn Dũng Chƣơng 5: KẾT LUẬN HƢỚNG PHÁT TRIỂN ĐỀ TÀI 5.1 Kết - Sau tháng tìm hiểu, nghiên cứu chế tạo cánh tay robot thực yêu cầu nhận dạng màu sắc vật thực gắp thả vật theo màu sắc với vị trí đặt - Mơ hình chế tạo gọn gàng đẹp mắt - Các khớp cánh tay hoạt động trơn tru 5.2 Ƣu điểm - Hệ thống bật ứng dụng xử lý ảnh để điều khiển cánh tay robot, nhận dạng tất vật, xử lý nhanh - Có độ xác cao 5.3 Các hạn chế cánh tay Robot - Cánh tay hoạt động rung, giật kết cấu khí chưa vững - Khơng thể gắp vật có khối lượng nặng - Cánh tay thiết kế hoạt động khớp nên chưa linh hoạt - Động phía băng tải hoạt động cịn gây tiếng ồn 5.4 Hƣớng phát triển đề tài Sau thực đề tài, với số thiếu sót giới hạn phía người thực yếu tố kỹ thuật thiết bị Để đề tài thực tốt đem lại kết cao cần phát triển số vấn đề sau: - Cải tiến kỹ thuật phần cứng nâng cao chất lượng thu nhận ảnh dùng thiết bị có độ phân giải cao - Nhận dạng vật thể nhiều hình dạng phức tạp đa màu sắc - Điều khiển linh hoạt khớp lúc, phát triển lên 5, bậc tự 5.5 Ý nghĩ ứng dụng xử lý ảnh để điều khiển robot phân loại sản phẩm Tơi tìm hiểu nghiên cứu ứng dụng xử lý ảnh điều khiển cánh tay robot kết q trình học tập tơi Tơi mong muốn khai thác sử dụng mơ hình cánh tay robot cách thật hiệu Những vấn đề trình bày đồ án tơi hi vọng người tiếp tục tìm hiểu nghiên cứu để cánh tay robot hồn thiện tìm nhiều ứng dụng hiệu việc áp dụng xử lý ảnh Điều 57 Đồ án tốt nghiệp SVTH: Phan Văn Dũng giúp cho phát triển khoa học công nghệ áp dụng vào đời sống sản xuất, giảm sức lao động người 5.6 Kiến nghị, đề xuất Dù cố gắng thời gian có hạn kiến thức cịn hạn chế nên việc thực đề tài gặp nhiều thiết sót Tơi hy vọng đề tài phát triển hồn thiện để ứng dụng vào sản xuất Và sau vài đề nghị tôi: - Đề tài cần tiếp tục nghiên cứu chế tạo hoàn thiện để áp dụng vào thực tế sản xuất Có thể mở rộng phạm vi nghiên cứu ứng dụng vào mục đích khác - Lắp đặt thêm cảm biến camera xử lý hình ảnh tốt để xử lý ảnh thực nhiệm vụ phức tạp khó khăn xử lý nhận dạng mặt người, biển số phát sản phẩm lỗi không đơn nhận dạng màu sắc Trên vấn đề mà đề tài nghiên cứu chưa thực mong đóng góp ý kiến từ thầy giáo bạn để đề tài hồn thiện 58 Đồ án tốt nghiệp SVTH: Phan Văn Dũng TÀI LIỆU THAM KHẢO Đỗ Văn Chuyên Ứng dụng xử lý ảnh điều khiển cánh tay robot công nghiệp Luận văn thạc sĩ khoa khoa học máy tính 2013 PGS TS Đỗ Năng Tồn, TS Phạm Viết Bình Xử Lý Ảnh 2007 PGS.TS Nguyễn Quang Hoan Giáo trình xử lý ảnh Học viện Cơng Nghệ Bưu Chính Viễn Thơng Hà Nội 2006 TS.Nguyễn Mạnh Tiến Điều khiển Robot công nghiệp NXB Khoa học kỹ thuật 2007 Cộng đồng Arduino Viêt Nam arduino.vn Lương Mạnh Bá, Nguyễn Thanh Thủy Nhập môn xử lý ảnh số NXB Khoa họcvà kỹ thuật 2002 Khuyet Danh Giáo trình ngơn ngữ lập trình C# 59 Đồ án tốt nghiệp SVTH: Phan Văn Dũng LỜI CẢM ƠN Để có thành cơng, bên cạnh việc nổ lực cố gắng khơng ngừng thân gắn liền với giúp đỡ, hỗ trợ người xung quanh, dù hay nhiều, dù trực tiếp hay gián tiếp mặt tinh thần hay vật chất Từ nhận đề tài bắt đầu cơng việc làm đồ án hồn thành Tôi nhận quan tâm, giúp đỡ, bảo thầy cơ, gia đình bạn bè xung quanh “Ăn nhớ kẻ trồng cây”, biết ơn em xin gửi lời cảm ơn chân thành đến quý thầy cô Trường đại học công nghiệp TP.HCM dùng tri thức tâm huyết để truyền đạt cho tơi vốn kiến thức quý báu suốt khoảng thời gian học tập năm trường Đặc biệt em xin chân thành cảm ơn thầy giáo ThS.Nguyễn Ngọc Anh Tuấn tận tâm bảo hướng dẫn em qua buổi nói chuyện, thảo luận đề tài nghiên cứu Nhờ có lời hướng dẫn, dạy bảo dẫn nhiệt tình thầy, khóa luận tơi hồn thành cách tốt Một lần nữa, em xin gửi lời cảm ơn chân thành đến thầy Với tìm tòi, học hỏi, nghiên cứu khoảng thời gian tháng kiến thức cịn hạn hẹp nên khơng thể tránh khỏi sai sót, hạn chế Tơi mong nhận ý kiến đóng góp quý thầy bạn để khóa luận dần hồn thiện Tôi xin chân thành cảm ơn! Cuối xin chúc quý thầy cô bạn mạnh khỏe, hạnh phúc thành công! Tp.HCM ngày 60 tháng năm 2018 ... cứu điều khiển cánh tay robot phân loại sản phẩm theo màu sắc dùng xử lý ảnh Nội dung Arduino điều khiển băng tải truyền sản phẩm đến vị trí gặp cảm biến băng tải dừng Camera thu nhận ảnh sản phẩm, ... tính xử lý ảnh để nhận dạng màu sắc, truyền tín hiệu xuống arduino, arduino điều khiển động servo cánh tay robot, cánh tay gắp hàng thả hàng vị trí đặt theo màu sắc Kết Cánh tay robot gắp sản phẩm. .. tay robot phân loại sản phẩm theo màu sắc dùng xử lý ảnh? ?? Là đề tài muốn nghiên cứu nhằm ứng dụng xử lý ảnh vào điều khiển robot 1.2 Mục đích nghiên cứu Tìm hiểu ngôn ngữ C# để xử lý ảnh áp dụng