1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Kỹ thuật cơ điện tử: Thiết kế máy quét 3D sử dụng kinect sensor

86 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế máy quét 3D sử dụng Kinect Sensor
Tác giả Phạm Đức Hiền
Người hướng dẫn TS. Lê Thanh Hải
Trường học Trường Đại học Bách Khoa
Chuyên ngành Kỹ thuật Cơ điện tử
Thể loại Luận văn Thạc sĩ
Năm xuất bản 2017
Thành phố Tp. HCM
Định dạng
Số trang 86
Dung lượng 50,26 MB

Cấu trúc

  • CHƯƠNG 2: CƠ SỞ LÝ THUY T Trong chương này sẽ trình bày cơ sở lý thuyết hoạt động của cảm biến Microsoft (23)
  • CHUONG 3: CH TẠO MAY QUETTH NGHIEM Với nguyên lý hoạt động và mô hình đã dé cập ở các chương trước, trong chương (37)
  • Z'=4|(Z~AŸ +F (3.24) (57)
  • TÀI LIỆU THAM KHẢO (84)

Nội dung

Cácnội dung nghiên cứu của luận văn bao g m: Tìm hiểu nguyên lý, phương pháp t nh tọađộ sử dụng Kinect, đưa ra phương án tìm ch nh xác khoảng cách từ tâm camera h ngngoại của Kinect tới

CƠ SỞ LÝ THUY T Trong chương này sẽ trình bày cơ sở lý thuyết hoạt động của cảm biến Microsoft

2.1 Cảm bién Kinect Kinect là một thiết bị đầu vào, là cảm bién chuyển động do hãng Microsoft sản xuất dành cho Xbox 360 và máy tính Windows Dựa trên một webcam kiểu add-on ngoại VI cho Xbox 360, nó cho phép người dùng điều khiến và tương tác với Xbox 360 mà không cần phải dùng đến một bộ điều khiến tay cầm, thông qua một giao diện người dùng tự nhiên bang cử chỉ và lệnh nói.

Thiết bị được giới thiệu vào tháng 11 năm 2010 như một phụ kiện của Xbox 360.

Cảm biến chiều sâu (depth sensor) được sử dụng trong Kinect được phát triển bởi Zeev

Zalevsky, Alexander Shpunt, Aviad Maizels va Javier Garcia năm 2005 Kinect đã ch nh thức được công bố vào ngày 01 tháng 6 năm 2009, dưới cái tên "Project Natal", (Natal là tên một thành phố ở Brazil, nơi sinh của | giám đốc dự án này).

Khả năng nhận dạng cử chỉ của Kinect dựa trên 2 đặc tính sau: Thông tin về độ sâu ảnh (depth map), khả năng phát hiện và bám theo đặc t nh cơ thể người (body skeleton tracking) Bên cạnh phục vụ much đ ch chơi game, san phẩm Kinect còn được dùng vào mục d ch nghiên cứu xử lý ảnh 3D, phát hiện cử chỉ, bám theo người [7-9].

Chương 2: Cơ sở lý thuyết e Câu tạo phan cứng

Hình 2.2: Cau tao Kinect e Sod khối các thành phan cơ bản của Kinect

IR light Oepth image Color image (W8 Optiona

4 external digital PS ô4 _contoi. audio sources fag data

Hình 2.3: Sơ đô khối của Kinect e _ Hệ thống cảm biến chiều sâu

- Baog mbộppháth ng ngoại (Infrared light) va camerah ng ngoại (depth image

CMOS) Kích cỡ ảnh là 640x480 pixel, tốc độ chụp 30 khung hình mỗi giây.

Chương 2: Cơ sở lý thuyết

+ Phạm vi mặc định có san trong cả hai bộ cảm biên Kinect cho Windows và các cảm biến Kinect cho Xbox 360.

+ Phạm vi gân là chỉ có trong cảm biên Kinect cho Windows.

IMUnknown L_—_]Too Near GM Too Far Hi Normal Values

Hinh 2.4: Khoang cach lam viéc cua Kinect

- Theo tính toán cua Nicolas Burrus [10], ông đã công thức hóa được quan hệ giữa giá trị khoảng cách thật z (m) và giá trị độ chênh lệch d. c= |

Trong đó d là số nguyên biểu diễn dưới dang 11 bit (0-2047) Với kết quả thực nghiệm trên thư viện OpenNI, giá trị z biến thiên trong khoảng 0.5 - 6.0m và band độ sâu 6n định trong khoảng 0.5 - 5.0m Do đó giá trị d thực sự biến thiên trong khoảng 434-1030 Như vậy trong không gian từ 0 - 0.5m ph a trước, Kinect không thể đưa ra bản đ độ sâu, đây cũng là một nhược điểm của thiết bị Kinect. e Camera RGB-D

- _ Chức năng ch nh của camera là nhận biết 3 màu co bản là đỏ, xanh lá cây va xanh da trời (Red-Green-Blue) Quá trình chụp bao g _m việc chụp một ảnh màu (RGB) và thực hiện một phép đo độ sâu (D) Cảm biến hình ảnh kết hợp với cảm biến l6

Chương 2: Cơ sở lý thuyết chiều sâu nam ở gan nhau, cho phép sáp nhập bản đ_, cho ra hình ảnh 3D Thông tin ảnh RGB-D được lưu trữ Với kích cỡ 1280x960 pixel, tốc độ 12 khung hình/giây Với kích cỡ 640x480 pixel, tốc độ chụp 30 khung hình/giây Từ đây cho thấy, khi thiết lập độ phân giải thấp hơn thì tốc độ chụp và truyền hình ảnh là cao hơn Với dữ liệu sâu thu được, nó sẽ tạo ra một bản đ về bộ XƯƠng người đứng ở trước cảm biến Và với bộ xương đó, nó có thé xác định được cử chỉ, hành động của người sử dụng. e Động cơ, máy đo gia tốc, micro - _ Động cơ: Năm ở dé của cảm biến Kinect Nó có khả năng làm cho cảm biến hướng lên trên cao và hạ xuống thấp Với khả năng nay sẽ giúp cho cảm biến có thé thu được hình ảnh cao hơn rất nhiều so với khi không có bộ động cơ.

- May do gia tốc: Kinect sử dụng nó dé xác định người đứng trước, đứng sau trong khi đo.

- Micro: Bao g m 4 micro nhỏ, hoạt động như nhau ở 16 bit với tốc độ lay mau là 16kHz (số mẫu/giây). e Phần mềm hỗ trợ - Thu viện Libfreenect: Libfreenect là thư viện được phát triển bởi OpenKinect.

Cộng đ ng Openkinect phát triển bởi Libfreenect thành một mã ngu n mở cho các hệ điều hành khác nhau Windows, Linux Hiện tại Libfreenect được đóng gói cho việc sử dụng trên nhiều ngôn ngữ lập trình.

- QOpenNI: Thư viện OpenNI được xem là thư viện pho biến nhất trước sự có mặt của Kinect SDK 1.0, thư viện này hỗ trợ đa ngôn ngữ trên nhiều platform khác nhau, giúp cho việc tiếp cận lập trình trên Kinect dễ đàng tương tác tự nhiên (NI:

- Thu viện Kinect SDK: Cung cấp cho nhà phát triển những bộ cảm biến có chiều sâu, camera cảm biến màu sắc và xác định ngu n âm thanh Các nhà phát triển cũng có thé theo dõi ảnh ở dạng khung sườn của một hay hai người đang di chuyển

Chương 2: Cơ sở lý thuyết trong vùng hoạt động của Kinect, để từ đó các nhà phát triển có thể tạo ra những ứng dụng hướng theo cử chỉ. e Ngu n cung cấp và công suất tiêu thụ - Kinect cần nhiều điện năng dé hoạt động nên công chia USB của Xbox-360 không thé đáp ứng mà phải qua một cong chia dé chia thành 2 kết nối riêng là USB và kết nỗi ngu n 12VDC được lay từ adapter Với kết nối USB, Kinect hoàn toàn có thể giao tiếp với máy tính.

Kinect Adapter Kinect 09485 Adaptateur Kinect Kinecttr>2— 7222 ơ—————

Hình 2.5: Nguon làm việc cho Kinect

- Công suất tiêu thụ theo thực nghiệm [11]

Power consumption (idle) ~3.3W Power consumption (active) | ~4.7W e Khong gian lam viéc

Vung hoạt động của hệ thong là 43 độ dọc, 57 độ theo chiều ngang.

Chương 2: Cơ sở lý thuyết

Hình 2.6: Không gian làm việc cua Kinect

Phương pháp nay sử dụng 1 cảm biến Kinect và một cơ cau dé xoay vật thé Vật thé được quét sẽ được đặt trên bàn xoay 360 độ [12-14] Trục của bàn xoay theo phương thăng đứng.

Kinect có cạnh dưới song song với mặt bàn xoay Khoảng cách từ Kinect tới trục bàn xoay không cần thiết phải cỗ định như các phương pháp sử dụng laser Khoảng cách này chỉ cần thỏa mãn yêu cầu năm trong vùng hoạt động của Kinect Tuy nhiên để tối ưu hóa giá trị sai số cũng như giới hạn k ch thước khu vực quét Đề tài lựa chọn khoảng cách tự trục bàn xoay tới Kinect dao động trong khoảng Im.

Một van dé đặt ra tiếp theo là t nh ưu điểm của máy quét sử dụng Kinect khi không cô định khoảng cách tới trục bàn xoay tức khoảng cách này không biết trước Và đây cũng trở thành khó khăn trong quá trình xác định khoảng cách này Kinect có thé trả về kết quả là khoảng cách, do đó để xác định khoảng cách từ Kinect tới tâm bàn xoay, sẽ chế tạo một mặt phăng tham chiếu chứa trục bàn xoay Sau đó sẽ lập trình tính toán

Chương 2: Cơ sở lý thuyết khoảng cách từ Kinect tới mặt phang tham chiếu này chính là khoảng cách từ Kinect tới trục bàn xoay.

Hình 2.7: Mô hình máy quét

Chương 2: Cơ sở lý thuyết

2.3 Nguyên lý phương pháp quét sử dụng Kinect

Một trong những đặc tính quan trọng nhất của Kinect đó là thu về giá trị độ sâu hay giá trị khoảng cách tới vật thể trong thế giới thực Sau đây sẽ nói về nguyên lý hoạt động của Kinect trong việc tính toán giá trị này.

CH TẠO MAY QUETTH NGHIEM Với nguyên lý hoạt động và mô hình đã dé cập ở các chương trước, trong chương

3.1 Câu tạo phan cứng máy quét Sod khối máy quét thử nghiệm

PC | Khối điều Kinect < khién

Hình 3.1: So đô khối hệ thong điều khiển Các thành phan chính của máy quét thử nghiệm trong đề tài bao g m: o | kinect Xbox 360. o | máy tính cá nhân. o 1 động cơ bước + driver. o Mạch điều khiển động cơ bước Arduino Uno.

Mạch điều khiến là thiết bị trung gian giữa máy tính và thiết bị, làm nhiệm vụ nhận và xử lý thông tin từ máy t nh sau đó cung cấp thông tin tới thiết bị.

Hệ thống bao g m khối thu hình anh và độ sâu ảnh từ Kinect được kết nối với máy tinh qua công USB, khối điều khiến là Arduino nhận tín hiệu điều khiển từ máy tính thông qua giao tiếp RS232, Arduino điều khiến việc xoay động cơ bước, động cơ được

Chương 3: Chế tạo máy quét thử nghiệm cấp ngu n 12V từ mạch ngu n được tao ra từ IC LM7812 Máy tinh là trung tâm điều khiến và xử lý thông tin.

Mô hình sử dụng mạch điều khiển Arduino Uno R3 dùng dé điều khién chuyên động xoay cho động cơ bước Arduino là tên gọi của bộ hardware va software mã ngu n mở rat phố biến sử dụng các MCU ATmega của AVR Arduino board có rất nhiều phiên bản với hiệu năng và mục d ch su dụng khác nhau như: Arduino Mega, Arduino LilyPad

Trong số đó, Arduino Uno R3 là một trong những phiên bản được sử dụng rộng rãi nhất bởi chi ph vat nh linh động của nó.

Serial Out (TX) Serial In (RX) Analog Reference Pin

„4 7 mm ARDUINO se Reset Button

Analog In 3.3 Volt Power Pin Pins (0-5)

Hinh 3.2: Mach diéu khién Arduino Uno Thông số cơ bản của Arduino Uno R3

Chip điêu khiến chính ATmega328 họ 8bit Dién ap hoat dong 5V DC (chi được cấp qua công USB)

Dòng tiêu thụ ~ 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới han 6-20V DC

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

Chương 3: Chế tạo máy quét thử nghiệm

Dòng tôi đa trên mỗi chân I/O | 30 mA Dòng ra tôi đa (5V) 500 mA Dòng ra tôi đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader SRAM 2 KB (ATmega328)

Arduino là một môi trường phát triển tích hop mã ngu n mở đa nên tang, cho phép người dùng có thé lập trình và tải lên board mach Phan mém này cung cấp sự hỗ trợ cho một hầu hết các bo mạch Arduino Ngôn ngữ phố biến cho Arduino là C và C++.

File Edit Sketch Tools Help int Distance = 0; long angle=0; int per_step = 16; long destination =0; int time000; long step_time; char control=0; long data; int buttonl = 2; int button2 = 4; bool stateStatusl = false; void setup() {

Serial.begin (9600); pinMode (button1, INPUT) :| pinMode (button2, INPUT); pinMode (8, OUTPUT) ; v

Hình 3.3: Giao diện phan mêm viết code cho Arduino

Chương 3: Chế tạo máy quét thử nghiệm Động cơ được sử dụng là động cơ bước Động cơ bước có những ưu điểm như điều khiến vị tr , toc độ chính xác không cần mạch phản h 1 (điều khiến mạch hở) do quay theo từng bước Tạo được mô men giữ trong vùng tốc độ nhỏ (nhờ vào tác dụng hãm lại của từ trường rotor).

Thông số động cơ bước:

- - Điện áp định mức 4 - 5.5VDC - Dong định mức: 1 - I.5A - D6 phân giải: 200 bước/ chu ky (1.8 độ/bước) - Luc kéo (Holding Torque): 65N.cm

- Duong kính trục: 5mm Driver động cơ bước TB6560

Modul điều khiến động cơ bước TB6560 là module chuyên dụng dé điều khiến các loại động cơ bước lưỡng cực Module có các chê độ điêu khién full bước, nửa bước va vi

Chương 3: Chế tạo máy quét thử nghiệm bước Phương pháp điều khiến đơn giản, cho phép tùy chon dong ra điều khiến động cơ từ 0.3A đến 3A.

Thông số kỹ thuật e Điện áp đầu vào: Từ 10V — 35 VDC. e Dòng tối đa đầu ra: 3.5A. e K chthước: 70mm x 50mm x 35mm. e Su dụng chip TB6560AHQ của Toshiba có chức năng bao vệ quá nhiệt và quá dòng. e Su dụng thích hợp với động cơ bước 3A, 3.5A. e Chức năng tự động giảm 1/2 dòng điện khi quá tai. e Làm việc với các chế độ: Full step, half step, 1/8 step, 1/16 step.

Chương 3: Chế tạo máy quét thử nghiệm

CÁCH LY QUANG >| DRIVER DONG CƠ BƯƠC > DONG CO

TIN HIEU DIEU KHIEN THIẾT LẬP CHEDO +

Hình 3.6 Sơ đô khối module điều khién động cơ bước

So d kêt nỗi với mạch điêu khiên

MẠCH CW- MODULE | ạ _| BƯỢC ĐIÊU TB6560

Hình 3.7: Sơ đồ kết noi driver với động cơ, mạch điều khiển

Chương 3: Chế tạo máy quét thử nghiệm e© Thiết kế cơ kh

Mô hình máy quét thử nghiệm sử dụng nhựa Polycarbonat chiều dày 5mm để chế tạo khung thân cho máy quét thử nghiệm Sau khi thiết kế băng phần mém solidword, sẽ xuất ra bản vẽ dạng thiết kế tam phang dé sử dụng phương pháp cắt lazer dé tạo hình.

Các chi tiệt được ghép nôi với nhau băng ôc vít.

Hình 3.8: Mô hình thiết kế trong solidworks

Hình 3.9: Mô hình thiết kế nhìn từ trên xuống

Các bộ phận chính cua máy quét bao g m:

- Bé đỡ Kinect: Yêu cầu độ cứng vững cao, phang, dễ dàng canh chỉnh vị trí của

- Ban xoay vật thé 360 độ: Yêu cau độ cứng vững cao, phăng, dé dàng cho chuyển động xoay quanh trục.

Chương 3: Chế tạo máy quét thử nghiệm

- Thanh định hướng quét vật thé: Dùng để định hướng quét và di chuyển khoảng cách tương đối giữa bệ đỡ Kinect và bàn xoay vật thé.

Dẫn động quay cho bàn xoay sử dụng động cơ bước Để giảm thiểu ma sát của bàn xoay khi chuyển động cũng như làm mặt tựa chịu lực của vật thể cần quét lên bàn xoay.

Thiết kế sử dụng vòng bi đũa chặn chuyên dùng cho cơ cấu bàn xoay.

Hình 3.10: Vong bi đũa chan Mô hình máy quét thực nghiệm

Hình 3.11: Mô hình máy quét thực nghiệm

Chương 3: Chế tạo máy quét thử nghiệm

Bồ trí Kinect và vật thể quét trên khung máy quét.

3.2 Hiệu chuẩn thông số kinect

\ u Ri, fi,” kệ Z 7m + |v Pie ‘ MS, 1 ` e

Hình 3.13: Mô tả các thông số quá trình hiệu chỉnh?l Quá trình ca-líp cho Kinect là quá trình kết hợp ca-líp cho camera và cảm biếnh ng ngoại Quá trình ca-líp cho camera sử dụng mô hình pinhole truyền thông.

Chương 3: Chế tạo máy quét thử nghiệm intrinsics K

R: Ma trận xoay của camera. t: Vector tịnh tiễn của camera.

K: Ma trận thông SỐ nội.

(Cy, Cy) tọa độ tâm quang của camera trên ảnh. fe =F.Sy

F: Tiêu cự camera theo milimet, (Sx, Sy) số pixel trên một đơn vị dài milimet.

Chương 3: Chế tạo máy quét thử nghiệm s: Hệ sô biên dạng, khi trục x và y của cảm biên vuông góc với nhau thì s = 0 Nêu x và y không vuông góc với nhau s = ƒ; tan

Hình 3.15: Hệ số biến dang được đặc trưng bằng góc a

Ngoài ra còn có sự biên dạng của thâu kính - Radial distortion (gây ra do hình dáng của lens kính).

Negative radial distortion No distortion Positive radial distortion pincushion “barrel”

Hình 3.16: Sự bién dạng méo ảnh do cấu tạo của thấu kính

Các điêm biên dạng được biêu diễn theo công thức sau:

(Xaistorea, Vaistorea) Tọa độ điểm ảnh bị méo.

(x,y) Tọa độ mới điểm sau khi đã hiệu chỉnh. kạ, ko, kz hệ số méo. r”=x +yŸ (3.5) - Tangential Distortion (do quá trình lắp đặt hệ thong bên trong camera).

Chương 3: Chế tạo máy quét thử nghiệm

Zero Tangential Distortion Tangential Distortion

Lensand sensor are paralle Lens and sensor are not parallel

Hình 3.17: Sự biến dang do thấu kính lap không song song Các điểm biến dạng được biểu diễn theo công thức:

Xjisoned =X+| 2-P, XY + p2 (r? +227) (3.6) Vaistorted — y+] nút +2y?)+2.p; xu” (3.7)

(Xdistored, Vaistorea) Toa độ diém anh bi méo (x,y) Tọa độ mới điểm sau khi đã hiệu chỉnh.

P1,P2 hệ số méo Tangential của thấu kính. r?=x?+y?

Thực hiện quá trình calipbrate camera thực chất là tìm các thông số của camera g m5 thông số nội (fx, fy Cx Cy, v), 3 thông số ma trận xoay(, ở, 6), 3 thông số của vector tịnh tiễn (Tx,Ty,Tz) và 5 hệ số distortion (k1, Ka, p1, 0a, k3).

Z'=4|(Z~AŸ +F (3.24)

| = “cos (3.26) d: Kích thước bề ngang mặt phăng tham chiếu mà Kinect thay được, k ch thước nay được giới hạn băng chương trình.

Thay (3.25) và (3.26) vào công thức (3.24) ta được:

Trong chương trình điều khiến, k ch thước mat phang tham chiếu mà Kinect có thé thay được được giới han bề ngang d = 4 (mm), giả sử quá trình lắp đặt tạo nên góc lệch của mặt phẳng tham chiếu so với mặt phắng cảm biến là a = 5” và với khoảng cách Z 1 (m) thay vào công thức (3.29) ta được

Chương 3: Chế tạo máy quét thử nghiệm

Như vậy với việc sử dụng lập trình dé giới hạn mặt phăng tham chiếu cho kết quả Z’ xap xỉ bang Z (khoảng cách lý thuyết) trong trường hợp mặt phang tham chiếu không song song với mặt phăng cảm biến Do đó việc xác định khoảng cách từ Kinect tới trục bàn xoay cho ra kết quả đáng tin cậy.

Hình 3.21; Quá trình xác định khoảng cách tới trục bàn xoay, hình bên trái mô hình cùng với mặt phăng tham chiêu, hình bên phải dam máy diém mặt phăng tham chiêu

Chương 3: Chế tạo máy quét thử nghiệm

Giải thuật chương trình xác định khoảng cách từ Kinect tới trục bàn xoay.

Khởi tạo thông số chương trình Ỷ

Giới hạn kích thước mặt phang tham chiều

Truy cập từng diém ảnh

Kiém tra điểm ảnh thuộc mặt phăng tham chiêu

Dua ra gia tri khoang cach Z theo mm

Chương 3: Chế tạo máy quét thử nghiệm

Kết quả chạy chương trình.

8 sketch_170505a | Processing 2.2.1 ©mnHn - sketch 170505a [fv] void drawPointCloud() {

Mat phang tham chiéu duoc da được giới han lraw the 3d point de int{] depthMap = kinect int steps = 1; to sf int index;

PVector realWorldPoint; stroke(255); for (int y=8;y < kinect { for (int x=0;x < kine stroke(kinect.depth index = x + y * kin if (depthMap[index]

Hình 3.22: Kết qua chương trình chạy tìm khoảng cách tới trục ban xoay

Sau khi chạy chương trình, kết quả trả về khoảng cách Z = 1040.0(mm) đây chính là khoảng cách từ tâm camera h ng ngoại của Kinect tới trục xoay của bàn xoay Kết quả này sẽ được sử dụng để chuyển đối hệ trục tọa độ theo công thức (2.15).

3.4 Tổng quan về chương trình điều khiến Chương trình được viết trên môi trường processing 2.2.1 Processing là một ngôn ngữ lập trình mở với mục đ ch lập trình đ họa trên nhiều môi trường khác nhau: Linux, window, Mac, Android ban đầu được hình thành bởi phòng thí nghiệm đa phương tiện học viện công nghệ MIT (Massachusetts Institute of Technology) Processing hiện tại có cộng đ ng sử dụng rất lớn, liên tục được chia sẻ và cập nhật những t nh năng mới.

Chương 3: Chế tạo máy quét thử nghiệm

00 HHEEE t SimpleOpenNI.*; Accessing kinect data A

| port processing.serial.*; import processing.opengL.*; port kinectOrbit.+; Visualize 3D space Initialize Orbit and simple-openni Objects KinectOrbit myOrbit;

Serial Parameters Serial myPort; Initialize the Serial boolean serial = true; er unicat String turnTableAngle = "0"; = f Arduine

Initialize the ArrayLists for the pointClouds and Array t scanPoints = new

Array t

Ngày đăng: 09/09/2024, 04:15