4.1.1Tổng quan về mô phỏng
Mô phỏng là gì? – Mô phỏng là tái hiện giống thật động học, động lực học của một vật, một hệ thống, một hay nhiều robot…
Mô phỏng (2D, 3D) là tái hiện giống thật động học, động lực học của một vật, một robot, một hệ thống. Kĩ thuật mô phỏng từ lâu đã đóng vai trò hết sức quan trọng trong giáo dục đào tạo và công nghiệp. Trong giáo dục việc mô phỏng những mô hình sẽ giúp cho người học tiếp cận vấn đề nhanh hơn. Việc mô phỏng những mô hình thực tế sẽ giúp giảm chi phí đầu tư trang thiết bị mà vẫn đảm bảo chất lượng đào tạo. Trong công nghiệp việc mô phỏng sẽ giúp ta phát hiện sai số, nhanh chóng điều chỉnh trước khi đi vào sản xuất. Nhờ vào việc đó mà chúng ta có thể tiết kiệm thời gian và chi phí gia công, sản xuất. Ngoài ra, việc mô phỏng cũng giúp chúng ta giới thiệu ý tưởng tới các đối tác một cách nhanh chóng, tiện lợi mà không cần có một sản phẩm thực.
Mô phỏng 3D sử dụng phần mềm LabVIEW là một giải pháp hiệu quả giúp cho các giáo viên, giảng viên, các kĩ sư và các nhà nghiên cứu khoa học nói chung có thể thực hiện được ý tưởng của mình một cách nhanh chóng.
Các phần mềm mô phỏng 2D, 3D: Inventor, Solidwork, EasyRob (Mô phỏng robot), LabVIEW v.v..
4.1.2 Giới thiệu về 3d trong labVIEW 4.1.2.1Công cụ cần thiết gồm: - LabVIEW 2009 Evaluation - Kiến thức cơ bản về vật lý - Tính toán động học, động lực học các hệ cơ học. 4.1.2.2 3D trong LabVIEW - Thiết kế các hình khối 3D như: khối cầu, khối hình lập phương, khối trụ, khối chóp nón hay các hình khối có hình dạng phức tạp…
Hình 4.1 :Các khối hình học trong môi trường 3D Picture - Mô phỏng động học & động lực học:
Động học là gì? - Là nghành khoa học nghiên cứu sự thay đổi vị trí của vật này so với vật khác.
Động lực học là gì? - Là nghành khoa học nghiên cứu về sự tương tác lực giữa các chất điểm với nhau.
4.1.2.3 Một số demo mẫu
Hình 4.3: Mô phỏng động học cánh tay 2 bậc tự do
4.1.3 THAO TÁC MÔ PHỎNG 3D TRONG LabVIEW
4.1.3.1 Tạo các khối hình học cơ bản
Để 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 cửa sổFront 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: Lấy 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 sắc 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
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 Object và Creat 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 Tạo nhiều vật thể và gán ràng buộc cho các vật 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 là 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:
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 Tạo chuyển động cho các vật
Để 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).
Tạo chuyển động tịnh tiến cho các vật
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 Tạo chuyển động quay cho vật
Để 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
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 Xử lý ảnh LabVIEW
4.2.1 Tổng quan về xử lý ảnh
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 xử lý ảnh
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 Xử lý ảnh 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
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 diện công cụ xử lý ảnh NI Assitant trên LabVIEW (ứng dụng nhận dạng biển 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