Tải bản đầy đủ
1 Hoạt động của robot

1 Hoạt động của robot

Tải bản đầy đủ

Hình 9:Giá đỡ hàng tiêu chuẩn và các kích thước (dài x rộng x cao) mm. Từ trên
xuống dưới, từ trái qua phải: 2a): châu Âu (1200 x 800 x 144) 2b): Mỹ 2c): Hàn
Quốc (1100 x 1100 x 150) 2d): Trung Quốc (1100 x 1100 x 150).

Xe tự động dùng 2 càng gắn ở đầu xe để móc vào 2 lỗ ở giá đỡ hàng.
Khoảng cách giữa hai càng đã được điều chỉnh cho đúng với khoảng cách giữa
hai lỗ trên giá đỡ. Với các pallet có chiều dài và chiều rộng khác nhau (kiểu EU
và kiểu Mỹ) trên mỗi mặt đều có 2 lỗ để móc vào nhưng kích thước và khoảng
cách giữa các lỗ không như nhau nên chương trình xử lý cần phân biệt được các
nhóm lỗ này. Với các pallet mà kích thước dài = kích thước rộng (pallet hình
vuông) như của Hàn Quốc và Trung Quốc (lục địa) thì không cần phân biệt sườn
dài hay sườn ngắn của pallet.
3.1.2 Hướng của giá đỡ hàng so với xe nâng tự động
Hệ toạ độ của chúng ta được ký hiệu với các trục Ox, Oy, Oz. Trong đó O là gốc
toạ độ.
OxyzW là hệ toạ độ của không gian thực với các trục Owxw, Oyxy, Ozxz.
Oxyzcamera là hệ toạ độ của camera với các trục Ocxc, Ocxc, Ocxc.
Oxyzfork là hệ toạ độ của càng xe nâng với các trục Ofxf, Ofxf, Ofxf.
Oxyzbody là hệ toạ độ của xe nâng với các trục Obxb, Obxb, Obxb.

44

Hình 10: Các hệ tọa độ

Nếu chúng ta chiếu song song xe nâng và giá đỡ lên mặt phẳng O wxwyw
thì góc giữa hình chiếu của trục đối xứng s-s của giá đỡ với trục O byb của xe
nâng được gọi là hướng của xe nâng với giá đỡ (hoặc ngược lại).
3.1.3 Khoảng cách từ xe tự động đến giá đỡ hàng
Đây là khoảng cách từ một điểm trên xe nâng đến một điểm trên giá đỡ.
Chúng ta có thể định nghĩa đó là khoảng cách giữa tâm hình học theo ba chiều
của xe nâng đến tâm hình học theo ba chiều của giá đỡ. Nó là khoảng cách từ
tâm điểm tiêu cự của camera gắn trên xe nâng đến điểm tâm hình học của mặt
trước của giá đỡ.
3.1.4 Xác định khoảng cách
Mô hình xác định khoảng cách sử dụng camera như sau:

45

Hình 11: Mô hình xác định khoảng cách sử dụng camera với hai mặt phẳng ảnh
và mặt phẳng đối tượng song song với nhau.

Giả sử mặt phẳng ảnh và mặt đối tượng song song với nhau. Các tia chiếu
và truc Ox cùng trong một mặt phẳng. Quan hệ giữa khoảng cách thực từ tiêu
điểm ống kính đến mặt phẳng đối tượng D và ảnh của đối tượng h, kích thước
thực của đối tượng H và tiêu cự f của ống kính. Các kích thước tính bằng
milimet.
=
Từ đó suy ra :
n: số pixel của ảnh biểu diễn kích thước theo hướng h.
k: hệ số thể hiện số milimét/pixel.

W: Kích thước tấm sensor cảm biến ảnh
N: độ phân giải của cảm biến ảnh.
Trong thực tế chúng ta thường sử dụng chương trình xử lý ảnh bằng máy tính
(PC hoặc một hệ thống tính toán khác) khi đó chúng ta ánh xạ tấm sensor cảm
biến lên một màn hình máy tính. Lúc này:
W là kích thước của màn hình theo phương tính toán tính bằng milimét.
N: Tổng số pixel của màn hình theo phương tính toán.

46

Trong trường hợp mặt phẳng ảnh của camera và mặt phẳng đối tượng
không song song với nhau chúng ta có mô hình. Trong mô hình này θ là góc
nghiêng của camera với mặt phẳng ngang theo phương đứng (góc til), Φ là góc
lệch của camera với trục đối xứng của đối tượng theo phương ngang (góc pan).

Hình 12: Mô hình camera pinhole khi mặt phẳng ảnh không song song mặt
phẳng đối tượng
3.1.5 Kích thước ảnh thực của đối tượng
Do tính đồng dạng của ảnh trên mặt phẳng ảnh và đối tượng trên mặt
phẳng đối tượng ta có thể xem xét quan hệ giữa kích thước thực X, Y và ảnh của
nó trên hai hướng tại mặt phẳng song song với mặt phẳng ảnh. Như vậy nếu ký
hiệu:
Ox là kích thước ảnh theo chiều ngang (tính bằng mm),
x là kích thước ảnh ngang - horizontal image dimension (tính bằng pixels),

47

Sx là kích thước sensor theo chiều ngang - the horizontal sensor size (tính bằng
mm),
Px kích thước sensor ngang - the horizontal sensor size tính bằng pixels.
Oy là kích thước ảnh đứng - vertical image dimension (tính bằng mm),
y là kích thước ảnh đứng - vertical image dimension (tính bằng pixels),
Sy kích thước sensor đứng - the vertical sensor size (tính bằng mm) và
Py là kích thước sensor đứng - vertical sensor size tính bằng pixels.
Chúng ta có quan hệ:

Khi đã biết f, Px, Sx,x, Ox chúng ta có thể tính ra D

Khoảng cách từ tiêu điểm đến đường tâm của đối tượng theo phương X có thể
được tính toán như sau:
 Chưa biết góc θ
Theo thông số kỹ thuật đã cho của ống kính và chiều cao hình học
của vị trí đặt camera chúng ta có kích thước và khoảng cách từ camera đến
đối tượng chiếu trên mặt phẳng xOy:

Đây là khoảng cách mà bộ xử lý điều khiển xe nâng hạ tự động cần biết để
điều khiển khi tiếp cận đến giá đỡ.
Các góc θ, λ và Φ có thể được tính từ các giá trị đã biết

48

 Trong trường hợp đã biết góc θ

Các khoảng cách đối tượng thực có thể được tính từ các các góc và các giá trị đã
biết như sau:

3.2 Ứng dụng xử lý ảnh để tính khoảng cách
3.2.1 Mô tả bài toán
Mục đích của bài toán là sử dụng camera thu ảnh và dựa vào ảnh để đưa ra
khoảng cách từ tâm điểm tiêu cự của camera gắn trên xe nâng đến điểm tâm hình
học của mặt trước của đối tượng với hai mặt phẳng ảnh và mặt phẳng đối tượng
song song với nhau và góc giữa camera gắn trên robot và đối tượng là vuông góc.
3.2.2 Quá trình thu ảnh và các yêu cầu của hệ thống
3.2.2.1 Đọc ảnh
Quá trình đọc ảnh trong C# thường là ảnh 24 bit, tức là mỗi pixel 24
bits=3bytes. Mô tả như sau: Pixel đầu tiên của ảnh chiếm 3 byte đầu(0,1,2), pixel
thứ 2 chiếm 3 byte tiếp(3,4,5), cứ như thế... Để biết ảnh bm có kích thước bao
nhiêu, C# cung cấp 2 thuộc tính: bm.Width: số pixel trên một hàng(độ rộng) và
bm.Height: số hàng(độ cao). Như vậy, mỗi hàng của bức ảnh sẽ dùng hết
bm.Width*3 bytes để lưu thông tin(do mỗi pixel 3 byte). Tuy nhiên khi lưu vào

49

máy tính thì mỗi hàng của ảnh phải dùng nhiều hơn số byte đó để lưu, vì mục
đích lưu cả thông tin của biên. Để biết thức sự số byte này là bao nhiêu, đầu tiên
phải chuyển bm sang một lớp đệm, lớp BitmapData. Ta sử dụng kỹ thuật
LockBits.
Rectangle rec= new Rectangle (0, 0, bm.Width, bm.Height);
BitmapData

bmData=

bm.LockBit(rec,

ImageLockMode.ReadWrite,

PixelFormat.Format24bppRgb);
Phương thức LockBits sẽ chuyển từ 1 ảnh, sang 1 vùng nhớ (bmData). Trên
ảnh bm, ta chỉ có thể xem nó, chứ không thể chỉnh sử pixel. Muốn sửa, phải
chuyển nó sang lớp BitmapData, trên đó có các thứ cần thiết để can thiệp vào
từng điểm ảnh.
Trong máy tính ảnh được biểu diễn như một dãy các byte nhớ đặt liên tiếp
nhau. Ta phải đọc file ảnh này vào một ma trận 2 chiều sao cho số hàng bằng
chiều cao của ảnh, số cột bằng chiều rộng của ảnh.
Tiến hành đọc các pixel của ảnh và tiến hành xử lý trên ma trận ảnh nhị phân
đã chuyển đổi.
3.2.2.2 Lọc nhiễu
Là phần tiền xử lý nhằm loại bỏ các nhiễu cơ bản trong quá trình thu ảnh.
Có rất nhiều loại nhiễu như: nhiễu cộng (additive noise), độc lập (independent),
nhiễu nhân, nhiễu đốm (speckle noise), nhiễu muối tiêu (salt-pepper noise).
Đối với nhiễu cộng ta dùng mạch xử lý tuyến tính để lọc nhiễu, còn đối với nhiễu
nhân thì ta dùng mạch xử lý phi tuyến để lọc nhiễu.
Đối với nhiễu đốm, nhiễu muối tiêu ta sử dụng thuật toán lọc trung vị. Ý tưởng
chính của thuật toán như sau: ta sử dụng một cửa sổ lọc (thường là ma trận 3×3)
quét qua lần lượt từng điểm ảnh của ảnh đầu vào input. Tại vị trí mỗi điểm ảnh
lấy giá trị của các điểm ảnh tương ứng trong vùng kích thước của ảnh gốc “lấp”
vào ma trận lọc. Sau đó sắp xếp các điểm ảnh trong cửa sổ này thành 1 dãy x 1 ;x2;

50