Thuật toán tránh vật cản
Trang 1Chương 2
THUẬT TOÁN TRÁNH CHƯỚNG NGẠI VẬT CHOROBOT TỰ HÀNH
2.1 GIỚI THIỆU
Bài toán lập quỹ đạo di chuyển cho robot tự hành có thể chia làm hai dạng : bài toán toàn cục (global) và bài toán cục bộ (local) Ở bài toán toàn cục, môi trường làm việc của robot được biết trước và từ đó đường đi tránh vật cản được tính toán từ lúc bắt đầu di chuyển Trong bài toán cục bộ, môi trường làm việc của robot hoàn toàn chưa bíết hoặc chỉ biết một phần Đối với bài toán này, các cảm biến gắn trên robot sẽ phát hiện vật cản để điều khiển hệ thống dẫn hướng robot từ điểm đầu đến điểm đích mà không chạm vật cản
Bài toán toàn cục tỏ rõ lợi thế là ta đã biết trước có đường đi (tối ưu ) tới đích hay không trước khi robot khởi hành Tuy vậy nó có hạn chế là đòi hỏi nhiều lệnh tính toán và bộ nhớ và trong thực tế, yêu cầu biết trước tòan bộ môi trường khó khả thi Trong khi đó, robot tìm đường cục bộ chỉ biết được môi trường xung quanh qua sensor cảm nhận môi trường Vì thế robot tìm đường cục bộ có thể không hoàn thành việc đến đích (mặc dù thực tế có đường đến đích )trong trường hợp đặc biệt Tuy nhiên, yêu cầu tính toán, dung lượng nhớ thấp cùng tính linh họat cao như tránh được vật cản ngay khi vật cản di chuyển động Hiện nay cách kết hợp toàn cục và cục bộ đang ngày càng phổ biến giúp robot có tính linh hoạt cao
Nội dung của luận văn tập trung giải bài toán cục bộ, với robot omni di chuyển trong mặt phẳng với các vật cản tĩnh, đích của robot là khuôn mặt người được bắt bằng một webcam Robot sẽ di chuyển tới vị trí người đang đứng và tránh các vật cản gặp phải trên
đượng đi Việc phát hiện vật cản được thực hiện bởi 3 cảm biến siêu âm Phần 2.2 dưới
đây sẽ trình bày các phương pháp xác định vật cản bằng cảm biến siêu âm hoặc camera, và
sẽ trình bày chi tiết thuật tóan sinh viên lựa chọn để thực hiện đề tài trong phần 2.3.2.2 CÁC PHƯƠNG PHÁP TRÁNH VẬT CẢN
2.2.1 Phương pháp bám tường ( wall-following method)
Ở phương pháp này, robot di chuyển dọc theo vật cản với một khoảng cách định trước Phương pháp này thích hợp khi chúng ta không có một bản đồ cụ thể môi trường hay một sự định vị rõ ràng Phương pháp này còn được áp dụng khi chỉ có những thông tin không đầy đủ, đại loại như “hành lang này sẽ dẫn đến cánh cửa kia ”, robot có thể sử dụng tường để định hướng quỹ đạo hoàn tất nhiệm vụ
Thuật toán sử dụng trong phương pháp bám tường dựa trên sự biểu diễn “nhận thức” (tri giác) Khái niệm này sử dụng thông tin từ các cảm biến siêu âm để thu nhận nhận thức tổng quát về môi trường lân cận Các thông tin này không có nghĩa là vị trí chính xác của vật cản và hướng của tường Ngược lại, các nhận thức tổng quát này giúp robot nhận biết chính nó trên một hướng hợp lý hơn là một vị trí
Trang 2trước bên trái, ở đằng xa hoặc rất chậm Việc mô tả này được thực hiện bằng
logic mờ và do đó, logic mờ sẽ là chìa khóa của vấn đề.
Một đề tài về robot bám tường đã được tiến hành ở trung tâm nghiên cứu robotic IKERLAN ở Tây Ban Nha đã cho thấy robot có thể tránh được tất cả chướng ngại vật trong nhiều trường hợp thử nghiệm Với một khoảng cách với tường cho trước là 0.6 m và vận tốc robot đạt được 0.45m/s dưới hai điều kiện : trước tiên robot không bị “mù” theo bất cứ hướng nào, tức là bất kì vật cản nào cũng sẽ bị phát hiện bởi ít nhất một cảm biến và thứ hai, tường và các vật cản phải tĩnh Vật cản được robot hiểu là một phần của tường và nếu khoảng cách giữa vật cản và tường quá lớn thì nó sẽ bỏ qua.
a Khái niệm nhận thức tổng quát :
Nhược điểm của cảm biến siêu âm là độ phân giải về hướng rất kém Mặc dù những cảm biến này rất chính xác phản ánh khoảng cách đến vật cản gần nhất bằng tính phản xạ, nhưng vật cản lại có thể nằm bất cứ đâu trong một góc quét của cảm biến Hơn nữa khoảng cách này lại phụ thuộc vào bề mặt của vật cản, khoảng cách và độ nghiêng của bề mặt so với trục cảm biến Vì vậy rất khó để ngay lập tức mô tả môi trường xung quanh từ dữ liệu cảm biến đưa về, chẳng hạn như độ cong của bức tường Khái niệm về nhận thức tổng quát tránh những khó khăn này bởi vì nó không bảo đảm điều gì về việc phác thảo môi trường xung quanh Thay vào đó, nó hướng tới việc tạo ra một nhận thức chung chung về môi trường xung quanh từ dữ liệu từ cảm biến và biểu diễn lại bằng vector, gọi là vector nhận thức tổng quát.
Để đáp ứng yêu cầu thì mỗi cảm biến siêu âm i được gán cho một vector nhận
thức p , hướng của nó trùng với trục của cảm biến và độ dài là một hàm củai
khoảng cách d đo được theo công thức:i
với dmaxvà dmin là khỏang cách xa nhất và gần nhất mà một vật cản được phát
hiện, p thì được giới hạn với các cận 0 và 1 theo công thức:i
Vector tổng quát p thì bao gồm các vectơ thành phần p Hướng của p là hướngi
của tổng các vector thành phần và chiều dài bằng vector thành phần dài nhất Độ biến thiên vector tổng quát theo thời gian là đại lượng vô hướng ptính theo
công thức:
Trang 3với pmaxlà biến thiên nhận thức khi robot di chuyển trực diện tới vật cản với
vận tốc lớn nhất v Hơn nữa, chỉ có giá trị dương của max p là được xem xét, do đói
biến thiên nhận thức tương đối của cảm biến được tính :
Hình 2.1 Robot tự hành trong 3 tình huống bám biên
Hình trên minh họa khái niệm nhận thức tổng quát trong 3 tình huống bám biên của robot Nhận thức tổng quát khi đối với góc tường (trường hợp a ) thể hiện bởi 3 vector Một cạnh tường gần hơn được nhận thức bằng một cảm biến, cạnh còn lại được nhận thức bằng hai cảm biến Nhận thức sau thì không mạnh bằng nhận thức đầu do khoảng cách xa hơn Mô tả về tình huống này dạng ngôn ngữ như sau: nhận thức tổng quát thì mạnh và liên quan đến phương pháp tuyến về bên phải và nơi nào đó phía trước Một tình huống hay gặp là robot ở vào vị trí “dead-end” (hình b) khi robot dang di chuyển dọc theo tường bên phải Khi robot đến cuối đường, vector nhận thức biến thiên nhanh hơn về phía trước Sự biến thiên nhanh hay chậm tùy thuộc vào vận tốc của robot Trong trường hợp góc tường mở (hình c), sự biến thiên mạnh hơn ở phía sau bên phải.
Khái niệm về nhận thức tổng quát thì hoàn toàn phù hợp với việc mô tả bằng ngôn ngữ với vô số tình huống của robot Sự mô tả này thì đơn giản, được thực
Trang 4trong giải thuật dùng logic mờ Lúc này thì hướng của chính xác của cảm biến không còn quan trong nữa Với giải thuật này robot có thể dễ dàng bám theo tường ngay cả khi chỉ có một cảm biến phát hiện tường.
Một điều cần lưu ý rằng khái niệm nhận thức tổng quát là sự tổng hợp nhận thức các cảm biến, do đó nó có tên là “tổng quát” Ngay cả những cảm biến theo hướng chuyển động là hướng về phía sau và nhận thức của chúng có vẻ không có giá trị nhưng sự đóng góp của chúng vào nhận thức tổng quát là như nhau Sử dụng ví dụ ở hình dưới, nếu bỏ qua các cảm biến mà ta cho rằng không đóng góp vào chuyển động của robot thì sẽ dẫn robot theo một hướng sai lầm Nếu dữ liệu của cảm biến 1 và 8 không được quan tâm thì góc giữa vector pvà vận tốc v sẽ nhỏ
hơn 900 Theo giá trị ngôn ngữ có thể hiểu rằng: vector nhận thức tổng quát nằm đâu đó ở giữa phía trước và bên trái Kết quả là robot sẽ di chuyển sang bên phải xa
dần bức tường Nhưng khi nó tiến gần bức tường đối diện thì vector p sẽ hướng
sang bên phải dop thì giảm còn 7 p thì tăng Cứ thế robot sẽ di chuyển qua lại2
giữa hai bức tường do bức tường mà robot bám theo dường như lúc nào cũng nằm phía sau robot do ta đã bỏ qua các cảm biến cần thiết.
Hình 2.2 Robot sẽ di chuyển qua lại hai bức tường nếu ta không xét đến các cảmbiến p và 8 p1
c Kết quả thực nghiệm :
Trang 52.2.2Phương phát phát hiện cạnh ( edge-detection)
Một phương pháp cũng khá phổ biến là dựa trên việc phát hiện cạnh (edge-detection) Thuật toán đưa ra trong phương pháp này tìm cách phát hiện vị trí các cạnh đứng và lái robot vòng qua các cạnh “thấy được” đó Đường nối hai cạnh “thấy được” xem như là biên của vật cản Phương pháp này cũng có thể dùng cảm biến siêu âm để phát hiện vật cản Điểm bất lợi của phương pháp này là robot phải dừng lại trước vật cản để thu thập thông tin Tuy nhiên đây không phải điều khó khắc phục với những máy tính xử lý nhanh trong tương lai.
Trong phương pháp dùng cảm biến siêu âm, robot đứng yên khi đang khi thực hiện việc quét toàn cảnh môi trường làm việc Sau khi áp dụng một số giải thuật line-fitting , một kế họach chuyển động toàn cục được thiết lập cho quỹ đạo kế tiếp của robot.
Hạn chế thường gặp của phương pháp này là độ chính xác của cảm biến siêu âm, thường rơi vào các nguyên nhân sau :
Khả năng định hướng kém : hạn chế việc xác định vị trí cạnh trong không gian, phụ thuộc vào khỏang cách tới vật cản, và góc giữa bề mặt và trục phát sóng.
Hình 2.3 robot đi vào gócnhỏ và có những khe hở nhỏgiữa các bức tường, robottìm được đường đi ngượclại.
Hình 2.4 Robot gặp vật cảnkhi bám tường, khi đó robotthay đổi quỹ đạo vòng quavật cản (B-C) rồi trở lạinhiệm vụ bám tường ( C-D)
Trang 6 Hiện tượng đọc chéo : gây ra bởi nhiễu sóng siêu âm từ các nguồn ngoài hay các cảm biến gây nhiễu lẫn nhau Các nhiễu này thường khó để lọc bỏ và gây khó khăn cho việc tiến hành giải thuật.
Sự phản xạ đều : khi góc của mặt phản xạ và trục cảm biến quá lớn, sóng phản xạ sẽ không trở về nơi phát và coi như vật cản không được phát hiện, hoặc nhận biết vật cản nhỏ hơn thực tế.
Bất cứ các nguyên nhân nào trên đây cũng đều ảnh hưởng đến thuật toán phát hiện cạnh của vật cản ở một vị trí sai, hậu quả là quỹ đạo đưa ra không phù hợp.
2.2.3 Phương pháp biểu diễn vật cản bằng sơ đồ lưới xác định
Một phương pháp biểu diễn xác suất của vật cản trong một mô hình môi trường dạng lưới ( grid-type world model) được phát triển tại đại học Carnegie-Mellon ở Pennsylvania, Mỹ Mô hình luới xác định này thì đặc biệt phù hợp với điều kiện các dữ liệu thu từ cảm biến thì không chắc chắn, trong trường hợp này là cảm biến siêu âm.
Trong lưới xác định ( certainty grid), vùng hoạt động của robot được biểu diễn bằng một mảng hai chiều các phần tử hình vuông, gọi là các cell Mỗi cell chứa một giá trị xác định ( certainty value) gọi là CV thể hiện mức độ đáng tin cậy rằng có vật cản xuất hiện trong cell đó Với phương pháp này, CV sẽ được cập nhật bằng một hàm xác suất có xét đến đặc điểm của cảm biến Với cảm biến siêu âm có một tầm quan sát hình nón sẽ trả về một giá trị đo hướng tâm khoảng cách đến vật cản gần nhất nằm trong vùng hình nón, do đó không xác định cụ thể vị trí góc của vật thể ( hình dưới thể hiện vùng A trong đó một vật thể phải được định vị để cho ra kết quả đo là d) Nếu một vật thể được phát hiện bởi cảm biến, nhiều khả năng vật thể này gần trục cảm biến hơn là phần biên của hình nón Trong phương pháp này hàm xác suất C sẽ tăng CV của các cell gần trục hơn là CV của các cell ởx
biên.
Trang 7Hình 2.5 Sơ đồ lưới: một giá trị d đo được chứng tỏ sự tồn tại củavật cản đâu đó trong vùng màu đen
Trong thí nghiệm, robot tự hành đứng yên khi thực hiện việc quét toàn cảnh môi trường với 24 cảm biến Kế tiếp, hàm xác suất C được áp dụng với mọi giá trịx
khoảng cách đo được để cập nhật lưới xác định Cuối cùng, robot di chuyển đến vị trí mới rồi dừng lại và lặp lại quá trình trên Khi robot di chuyển hết căn phòng theo cách này thì lưới xác định có thể xem như bản đồ tương đối chính xác của căn phòng Một quỹ đạo tổng quát có thể được tính toán off-line cho những lần hoạt động về sau.
2.2.4Phương pháp trường thế ( Potential Field Method)
Trong phương pháp này, vật cản gây ra một lực đẩy, khi mà mục tiêu lại áp dụng một lực kéo với robot Vector lực tổng hợp R bao gồm tổng của lực kéo từ mục tiêu và lực đẩy từ vật cản được dùng để tính toán cho một vị trí của robot Với R là lực gây nên gia tốc trên robot, vị trí mới cho robot được tính toán bằng các thuật toán Phương pháp Virtual Force Field do Borenstein đưa ra sử dụng luới hai chiều theo hệ tọa độ De-cac, gọi là luới biểu đồ ( histogram grid) C để biễu diễn vật cản Mỗi ô (i,j) trong lưới được gán một giá trị xác định (certainty value, CV ) kí hiệu là ci j,
thể hiện độ tin cậy việc tồn tại vật cản tại ô đó Việc biểu diễn này khá giống với certainty grid ở phần trên, ở histogram grid, các CV được tăng lên khi cảm biến siêu âm xác định sự hiện diện của vật cản tại ô đó.
Trang 8Hình 2.6 Histogram Grid
Khái niệm về trường thế được áp dụng vào histogram grid như hình trên Khi robot di chuyển một cửa sổ wsws ô đi kèm theo nó, nằm trên một vùng hình vuông của C Ta gọi vùng này là “active region” kí hiệu là C và các ô thuộc vùng này gọi là *
“active cells” kí hiệu là c*i j,
Trong thí nghiệm, kích thước của cửa sổ là 33x33 ô, và kích thước ô là 10cm x 10cm và cửa sổ luôn bao quanh vị trí hiện tại của robot Mỗi active cell gây ra một lực đẩy Fi j,
với robot, biên độ lực tỉ lệ thuận c*i j,
Trang 9x y : tọa độ của mục tiêu
Tổng lực kéo và lực đẩy sẽ được vector lực kết quả R:
Hướng của R kí hiệu là , đơn vị deg, dùng làm giá trị tham chiếu cho lệnh chuyển hướng của robot:
k
với k: hằng số tỉ lệ chuyển hướng : hướng hiện tại của robot
Phương trình này là cơ sở cho việc điều khiển robot Các hạn chế của phương pháp trường thế :
Sập bẫy khi di chuyển đến ngõ cụt tạo bởi nhiều vật cản phức tạp Không qua được khe giữa hai vật cản
Hình dưới minh họa trường hợp này, lực đẩy từ hai vật cản 1 và 2 lần lượt là
'1
F vàFr'2, tổng hay lực cản này sẽ hướng robot ra xa mục tiêu theo chiều ngược lại, nếu cộng với lực kéo từ mục tiêu F thì được lực kết quả R không t
hướng robot tránh vật cản.
Trang 10Hình 2.7 Trường hợp robot không qua được khe 2 vật cản
Dao động khi gặp vật cản : hạn chế này xảy ra ở việc tính toán thuật toán, không phân tích kĩ ở đây.
Dao động khi đi trong ngõ hẹp : nguyên nhân do robot nhận được lực đẩy từ cả hai bức tường.
2.2.5 Phương pháp dùng optical flow :
Khác với các phương pháp trên, phương pháp này chủ yếu sử dụng camera và đã được sinh viên Phan Tuấn Hải ( 40400725) thực hiện trong luận văn tốt nghiệp, ở đây chỉ trình bày tóm tắt cơ sở lý thuyết và giải thuật.
Khi camera di chuyển, nó sinh ra một chuỗi theo thứ tự các frame, mỗi frame là một ánh xạ từ không gian 3D lên một mảng pixel 2D Giả sử trong ảnh là một cái bàn, các điểm trên cạnh bàn là những điểm cần quan tâm Khi camera di chuyển thẳng ta sẽ nhận thấy sự di chuyển nhỏ của những điểm này theo chuỗi frame sinh ra Nếu cái bàn ở xa, sự dịch chuyển quan sát được sẽ nhỏ; khi bàn ở gần, độ dịch chuyển này sẽ lớn hơn Ta tiến hành tính tóan vector dịch chuyển cho một số điểm nhất định sẽ có thể định hình được vùng di chuyển của vật Những vùng này gọi là vùng optical flow Có hai cách tính toán các optical flow :
Thuật toán Dense Optical Flow ( Optical Flow đặc) : tính toán các vector này cho mọi điểm trong ảnh
Thuật toán Sparse Optical Flow ( Optical Flow thưa) : chỉ sử dụng cho các điểm đặc biệt ( ví dụ như cạnh)
Trang 11Hình 2.8 Optical Flow của bàn tay
Ngõ vào của một hệ optical flow là một chuỗi các ảnh thu được từ bên ngoải, chuỗi này sẽ chứa các thông tin để ước lượng các vector di chuyển Do đó, camera cũng phải di chuyển hết trong suốt quá trình lấy ảnh Giả sử ảnh đầu tiên được lấy ở thời điểm t, xét điểm (u,v) trên ảnh có cường độ I(u,v,t) Nếu khoảng thời gian giữa hai lần lấy ảnh là đủ nhỏ thì xem như cường độ điểm ảnh đang xét không đổi Xét cường độ điểm ảnh tại thời điểm t là I(u,v,t) Từ sự di chuyển của camera, cùng một điểm đó, nó sẽ xuất hiện ở frame tiếp theo nhưng ở vị trí khác Giả sử độ dịch chuyển đó được biểu diễn bằng vector
( , u v) Khi đó cường độ của điểm ảnh sẽ không đổi :
trong đó u,v lần lượt là hai trục nằm ngang và thẳng đứng trong hệ tọa độ của miền ảnh Khai triển Taylor ở vế trái biểu thức: