Thao tác mô phỏng 3D trong LabVIEW

Một phần của tài liệu Nghiên cứu thiết kế hệ thống nhận dạng chai bị lỗi trong dây chuyền sản xuất beer (Trang 68)

4.1.3.1 To các khi hình hc cơ bn

Để thiết kế và mô phỏng được các hệ thống phức tạp thì ta phải bắt đầu từ việc thiết kế các khối vật thểđơn giản trước.

Đầu tiên, ta khởi động LabVIEW sau đó thực hiện theo các bước sau:

Bước 1: Trên ca sFront Panel Lấy hàm 3D Picture trong thư viện Graph như

hình 4.4 :

Hàm 3D Picture được dùng để hiển thị kết quả mô phỏng (3D) trong LabVIEW. Thông thường ta sẽ lấy hàm này ra trước tiên và ta có thể phóng to, thu nhỏ khối 3D Picture trên cửa sổ FP sao cho kích thước của khung hiển thị phù hợp với không gian mô phỏng, xem hình4.5 :

Hình 4.5 : Hàm 3D Picture xuất hiện trên giao diện của chương trình

Để thiết kế các khối đơn giản (LabVIEW cho phép bạn vẽ các khối cầu, hộp, trụ, chóp nón) trong LabVIEW chúng ta sử dụng thư viện Graphics & Sound >> 3D Picture Control bên cửa sổ BD.

Đường dẫn tới thư viện 3D Picture Control: tại cửa Block Diagram ta Right Click

>> Programming >> Graphics & Sound >> 3D Picture Control

Bước 3: Ly hàm Creat Object, hàm Creat Object là 1 lệnh tạo một hình khối mới (cầu, trụ, hộp…) để hiển thị lên môi trường 3D của LabVIEW. Để lấy hàm Creat Object, tại cửa sổ Block Diagram ta Right Click >> Programming >> Graphics & Sound >> 3D Picture Control >> Object >> Creat Object.

Hình4.7 : Hàm Creat Object trong thư viện 3D Picture Control

Hình 4.8: Lấy hàm Create Object ra cửa sổ Block Diagram (BD)

Lấy các khối vật thể mà ta muốn tạo: LabVIEW cho phép ta thiết kế được các khối cầu, trụ, hộp, chóp nón…, các khối này có trong thư viện Geometries,

đường dẫn tới thư viện Geometries: trên cửa sổ BD ta Right Click >>

Programming >> Graphics & Sound >> 3D Picture Control >> Geometry: Các hình khối mà LabVIEW hỗ trợ trong thư viện 3D Picture Control

Tới đây giả sử ta muốn tạo khối cầu thì ta lấy hàm Create Sphere trong thư viện

Geometries ra, xem hình 4.9 :

Hình 4.9 : Lấy hàm Create Sphere để tạo khối cầu

Bước 5:Thiết lập các thông số cho khối vật thể: các thông số ởđây là kích thước

& màu sc của khối vật thể. Tùy theo khối vật thể ta tạo mà ta cần thiết lập các thông số kích thước khác nhau. Chẳng hạn như khối hộp chữ nhật thì ta cần thiết lập 3 thông số là chiều cao, chiều dài & chiều rộng, với khối trụ thì ta cần thiết lập 2 thông số là chiều cao và bán kính đáy của khối trụ. Và ởđây với khối cầu thì ta cần thiết lập 1 thông số kích thước duy nhất là bán kính của khối cầu (radius).

Hàm khối cầu và các thông số cần thiết lập

Hình 4.10 : Thiết lập bán kính cho khối cầu là 1 đơn vị chiều dài

Tiếp theo để thiết lập màu sắc cho khối cầu ta sử dụng hàm Color change trong thư viện Helpers, đường dẫn tới thư viện Helpers: trên cửa sổ

BD ta Right Click >> Programming >> Graphics & Sound >> 3D Picture Control >> Helpers >> Color Change

(adsbygoogle = window.adsbygoogle || []).push({});

Hàm Color Change và các thông số cần thiết lập

Theo hình trên, chân Color cho phép ta có thể chọn màu mà ta cần. chân Alpha có giá trị là 0 hoặc 1, nếu là 0 thì vật thể sẽ có màu trong suốt, là 1 thì vật thể có màu đục. Chân RGBA được nối tới chân Color của hàm

Creat Sphere (tạo khối cầu), R là viết tắt của Red, G là Green, B là Blue, A là Alpha.

Hình 4.11 : Thiết lập màu sắc cho khối cầu

Bước 6: Tiếp theo ta cần tạo không gian hoạt động cho vật thể bằng cách sử dụng hàm Invoke Node trong thư viện Application Control. Đường dẫn tới hàm Invoke Node trong thư viện Application Control: trên cửa sổ BD ta Right Click >>

Programming >> Application Control >> Invoke Node.

Hàm Invoke Node là một hàm đa năng được sử dụng cho nhiều ứng dụng khác nhau. Để sử dụng hàm Invoke Node ta cần thiết lập Class (lớp- nhiệm vụ) và Method (phương pháp thực hiện). Ở đây ta chọn Class là SceneObject và Method là Drawable, cách thiết lập xem hình sau:

Hình 4.12 : Thiết lập Class cho hàm Invoke Node

Hàm Invoke Node sau khi thiết lập Class và Method như hình 4.14 :

Hình 4.14 : Hàm Invoke Node sau khi thiết lập Class và Method

Bước 7: Thực hiện nối các hàm Creat ObjectCreat Sphere với các input của hàm Invoke Node. Chân Out của hàm Invoke Node nối tới hàm 3D Picure như sau:

Hình 4.15 : Thực hiện nối dây

Hình 4.16 : Kết quả hiển thị khối cầu

Chú ý: để thấy được quả cầu trong không gian ba chiều ta cần thiết lập chế độ

Camera bằng cách trên cửa sổ3D Picture ta Right Click >> Camera Controller. Tại đây ta có thể chọn các chế độ: Spherical, Flying, Oriented để nhìn thấy được các vị trí khác trên vật thể .

Hình 4.17 : Chỉnh góc quan sát vật thể

4.1.3.2 To nhiu vt th và gán ràng buc cho các vt th:

Trong thực tế các thành phần trong 1 cơ hệ thường chuyển động tương đối với nhau, nghĩa là chuyển động của thành phần này phụ thuộc vào chuyển động của thành phần khác. Ví dụ như một cánh tay máy 3 bậc tự do đang làm việc thì khâu

thứ 2 phải chuyển động theo chuyển động của khâu thứ nhất, khâu thứ 3 phải chuyển động theo khâu thứ nhất và thứ 2… Chính vì lý do trên ta phải ràng buộc các khâu với nhau đểđược một cơ cấu hay máy như ý muốn.

Để tạo thêm 1 vật thể và ràng buộc cho các vật thể ta dùng khối Invoke Node, với Class là SceneObject, Method Object. Add Object, hàm Invoke Node bây giờ ta gọi là hàm Object.Add Object :

Phương pháp gán ràng buộc cho các khâu

Theo hình trên vật SLAVE sẽ chuyển động theo vật thể MASTER. Như vậy vật được nối tới chân Reference của hàm Object.Add Object sẽ là vật chủ, vật

được nối tới chân Object sẽ là vật tớ (chuyển động theo), chân Reference OUT

được nối tới hàm hiển thị 3D Picture. Ta hãy xem ví dụ sau:

(adsbygoogle = window.adsbygoogle || []).push({});

Theo hình 4.17 ta thì thanh màu đỏ (Slave) được tạo từ hàm tạo khối hộp chữ nhật trong thư viện 3D Picture Control sẽ chuyển động theo vật cầu (MASTER).

Lưu ý: Các vật được tạo trên 3D Picture sẽđồng tâm với nhau.

4.1.3.3 To chuyn động cho các vt

Để tạo chuyển động giữa các vật ta sử dụng thư viện Transformations trong thư

viện 3D Pictrure Control, đường dẫn tới thư viện: trên cửa sổ BD ta Right Click

>> Programming >> Graphics & Soud >> 3D Picture Control >>

Transformations

Các hàm chuyển động trong thư viện Transformations

Thư viện Transformation gồm rất nhiều hàm có chức năng khác nhau nhưng vì mức độ ứng dụng thì ta chỉ quan tâm tới 3 hàm chính là Clear Transformation

(Xóa tất cả các di chuyển trước đó), Translate Object (tạo chuyển động tịnh tiến) và Rotate Object (Tạo chuyển động quay).

To chuyn động tnh tiến cho các vt

Giả sử ta muốn tạo khoảng cách cho 2 vật trên thì sử dụng hàm Translate Objectđể di dời vật màu đỏđi một khoảng cách nào đó. Ta lấy hàm ra cửa sổ BD:

Hàm Translate Object

- Nếu ta muốn tạo chuyển động cho vật MASTER (vật chủ) thì chương trình như sau:

Bây giờ giả sử ta muốn di chuyển vật MASTER di chuyển theo chiều 1 đơn vị theo chiều + của trục x ta nhập 2 vào Constant x như sau:

Tạo chuyển động 1 đơn vị theo chiều “+” trục x cho vật MASTER

Kết quả như sau:

Hình 4.19 : Di chuyển vật MASTER đi 1 đơn vị theo chiều “+” trục x

Nếu ta muốn tạo chuyển động tịnh tiến 1 đơn vị theo chiều “+” của trục x cho vật Slave thì chương trình như sau:

Thấy để tạo chuyển động cho Slave ta nối hàm Translate bject với ngõ Output Object của hàm Object.Add Object.

Kết quả như sau:

4.1.3.4 To chuyn động quay cho vt

Để tạo chuyển động quay cho vật ta dùng hàm Rotate Object, hàm Rotate Object có thểđược nối nối tiếp tới hàm Translate Object.

Hàm Rotate Object

Scene.Object In: đầu vào vật cần quay (adsbygoogle = window.adsbygoogle || []).push({});

Axit: chọn trục quay, 0 là ko quay, 1 là quay ngược chiều kim đồng hồ, -1 là quay cùng chiều kim đồng hồ

Angle: góc quay mong muốn Scene.Object Out: đầu ra hàm

Giả sử ta muốn cho vật MASTER quay quanh trục z theo chiều thuận chiều kim đồng hồ, chương trình như sau:

Quay MASTER 90 độ quanh trục z thuận chiều kim đồng hồ

Hình 4.21 : Quay MASTER 90 độ quanh trục z thuận chiều kim đồng hồ

Trong LabVIEW, có thể áp dụng những kiến thức cơ bản ở trên để thiết kế

& mô phỏng động học, động lực học những cơ hệ như ý muốn. Trong tài liệu sau sẽ trình bày làm thế nào để mô phỏng kết hợp LabVIEW với các ngôn ngữ và phần mềm mô phỏng khác như Solidworks, Google SketchUp, 3DS Max…

4.2 Xnh LabVIEW

4.2.1 Tng quan v xnh

Trong những năm gần đây, với sự phát triển của phần cứng máy tính làm cho bộ nhớ máy tính có dung lượng lớn hơn, tốc độ của chip vi xử lý nhanh hơn, đã cho phép các ứng dụng đồ họa phát triển mạnh mẽ và có nhiều ứng dụng trong cuộc sống. Trong đó, xử lý ảnh là một trong những công cụ phát triển rất nhanh do nhu cầu ứng dụng trong công nghiệp.

Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn. Kết quảđầu ra của một quá trình xử lý ảnh có thể là một ảnh tốt hơn hoặc một kết luận.

Hình 4.23 :Sơđồ quá trình xnh

Tùy vào mục đích thực hiện mà kết quả xử lý ảnh là khác nhau. Trong xử lý

ảnh nghệ thuật, kết quả là một ảnh mới có nhiều cải thiện về chất lượng, độ sáng, độ

rõ nét…, trong công nghiệp, người ta sử dụng xử lý ảnh đểđưa ra một kết luận đối với ảnh thu được nhằm xuất tín hiệu điều khiển sang cơ cấu chấp hành.

Trong sơ đồ hình 3, quá trình lấy ảnh được thực hiện thông qua thiết bị thu nhận ảnh (camera, webcam, máy quét ảnh…), sau đó ảnh này được đưa lên máy tính và thực hiện quá trình xử lý. Quá trình xử lý bao gồm: tiền xử lý: là bước sơ

chế, cải thiện chất lượng ảnh đầu vào, nhằm làm nổi bật lên đặc điểm đặc trưng của

ảnh; trích chọn đặc điểm: là bước lấy ra các đặc điểm đặc bề ngoài trưng nhất của

ảnh để xử lý (hình dạng, màu sắc, kích thước, dấu vết, chữ viết trên sản phẩm…); hậu xử lý: là bước gán giá trị cho ảnh do người lập trình quy định để đưa ra kết quả

là kết luận (đúng, sai, tốt, xấu, loại A,B,C…).

Xử lý ảnh trong công nghiệp ngày nay được ứng dụng nhiều trong lĩnh vực quản lý chất lượng, phân loại sản phẩm và điều khiển thông minh. Do yêu cầu vềđộ

chính xác của chi tiết gia công ngày càng trở nên khắt khe nên những vết lỗi nhỏ

trên sản phẩm cũng làm cho sản phẩm thành phế phẩm. Hơn nữa tốc độ sản xuất trong công nghiệp đòi hỏi nhanh để nâng cao năng suất nên không thể nhận dạng bằng mắt thường.

Mặt khác, chi phí để thực hiện xử lý ảnh thông thường không cao, chỉ với một chiếc webcam giá rẻ, người sử dụng có thể tự tạo cho mình nhiều ứng dụng khác nhau. Robot tự hành, một sản phẩm của hocdelamgroup là một sản phẩm ứng dụng xử lý ảnh bằng LabVIEW điều khiển xe mô hình có khả năng tự tránh vật cản chỉ

bằng webcam của laptop.

4.2.2 Xnh LabVIEW

Trong mảng xử lý ảnh, hãng National Instruments cung cấp cho người sử dụng module NI Vision builder for Automated Inspection . Module này là một phần mềm hoàn toàn độc lập với LabView và chuyên biệt dành cho xử lý ảnh. Module này có thư viện các hàm lớn với nhiều công cụ cho phép người sử dụng thực hiện công việc nhận dạng và xử lý ảnh bằng nhiều cách khác nhau, cho phép xử lý ảnh với dung lượng lớn, tương thích với nhiều loại camera. Tuy nhiên, nhược điểm của module này nằm ở khâu giao tiếp và xuất tín hiệu giữa phần mềm với cơ cấu chấp hành. Để có thể lấy tín hiệu đã xử lý từ phần mềm xuất ra, phần mềm yêu cầu phải (adsbygoogle = window.adsbygoogle || []).push({});

có card giao tiếp chuyên biệt do chính hãnh National Instrument độc quyền cung cấp và có giá khá cao, do đó, nó không thích hợp với những cơ sở sản xuất có quy mô nhỏ.

Để giải quyết vấn đề này, hãng National Instruments cho phép việc xử lý ảnh

được thực hiện ngay trên môi trường LabVIEW , với LabVIEW là công cụ làm nền

để thực hiện việc lập trình và giao tiếp, module NI Vision Acquisition hỗ trợ cho việc thu nhận ảnh, module NI Vision Assitant hỗ trợ cho việc xử lý ảnh và module NI VISA hỗ trợ giao tiếp, các module này được kết hợp với nhau trên nền LabVIEW. Theo một cách hiểu đơn giản, NI Vision Builder for Automated Inspection chính là một module tích hợp các công cụ xử lý ảnh trên LabVIEW.

Hình 4.25 :Giao din công c xnh NI Assitant trên LabVIEW (ng dng nhn dng bin s xe)

Việc lập trình xử lý ảnh trên LabVIEW phụ thuộc rất nhiều vào người lập trình, nghĩa là điều quan trọng nhất là người lập trình phải tìm ra công cụ và kết hợp

các công cụ để lập trình cho phần mềm nhận diện chính xác hình ảnh đồng thời lựa

chọn hàm tối ưu nhất trên LabVIEW để trích lọc, so sánh... các giá trị xuất ra, nó

không chỉ yêu cầu các kỹ năng sử dụng phần mềm mà đây còn là tư duy của người

giảm chi phí cho camera vì thay vì sử dụng một camera đắt tiền có độ phân giải cao

để lấy ảnh chất lượng cao thì người lập trình có thể cải thiện chất lượng hình ảnh

ngay trên phần mềm. Yêu cầu khi thực hiện lập trình xử lý ảnh trên LabVIEW đó là

người lập trình phải đạt được các kỹ năng lập trình LabVIEW căn bản và có kiến

thức về lập trình. Sơđồ xử lý ảnh trên LabVIEW được thể hiện ở hình 4.25.

Hình 4.27 : Sơđồ ni dây trên LabVIEW

4.2.2.1 Thu nhn nh

Việc thu nhận ảnh trong môi trường LabVIEW được thực hiện riêng thông qua

module Vision Acquisition. Đây là một module mở rộng được lập trình với chức

năng thực hiện việc tìm kiếm camera đang liên kết với máy, thu nhận ảnh, xuất ảnh

nhận được về môi trường LabVIEW và đưa dữ liệu xuất sang môi trường xử lý ảnh

(Vision Assistant). Trong LabVIEW, module này tương ứng với hàm Vision Acquisititon nằm trong thư viện Vision Express.

Sau khi lấy hàm Vision Acquisitionđể lập trình thu nhận ảnh, double click vào biểu

tượng của hàm, giao diện lập trình sẽ mở ra và việc thực thi quá trình thu nhận ảnh

được thiết lập hoàn toàn riêng biệt trên module này. Quá trình thu nhận ảnh được

thực hiện qua 4 bước:

Bước đầu tiên trong quá trình thực hiện thu nhận ảnh là chọn địa chỉ để phần (adsbygoogle = window.adsbygoogle || []).push({});

mềm lấy ảnh, Select Acquisition Source . Vision Acquisition cho phép thực hiện xử

lý ảnh tĩnh, ảnh động (trực tiếp từ camera hoặc lấy từ file video định dạng .AVI ).

Bước 2, lựa chọn kiểu thu nhận ảnh, Select Acquisition type , là lựa chọn cách

thức mà phần mềm sẽ lấy ảnh bao gồm: lấy một ảnh, lấy ảnh liên tục, lấy ảnh liên

Một phần của tài liệu Nghiên cứu thiết kế hệ thống nhận dạng chai bị lỗi trong dây chuyền sản xuất beer (Trang 68)