Chương trình trên Smartphone

Một phần của tài liệu Robot vẽ bản đồ địa hình (Trang 51)

Trong phần thực nghiệm, smartphone được gắn vào Robot Lego để xử lý các thuật toán vẽ bản đồ. Thiết bị thực nghiệm điện thoại Fujitsu A202F, cấu hình như sau:

- CPU: Snapdragon™ 600 APQ8064T quad-core CPU, 1.7 GHz. - RAM: 2G

- Batery: 3000 mAh - OS: Android

Chương trình điều khiển chạy trên smartphone được viết bằng ngôn ngữ Java, chạy trên nền tảng Adroid.Các chức năng chính của phần mềm:

- Trao đổi thông tin với khối Lego qua giao tiếp bluetooth - Xử lý các thuật toán SLAM

- Hosting dịch vụ truyền thông tin tới máy giám sát.

while(!Button.ESCAPE.isDown()){

sensors[0]= (byte)us.getDistance();

try

{

//Gửi trạng thái sensor

dataOutputStream.write((byte)us.getDistance()); dataOutputStream.flush();

}

catch(Exception ex)

{

throwex;

Thông qua giao tiếp bluetooth, smart phone gửi các lệnh điều khiển tới chuyện động tới khối NXT.

Việc điều khiển chuyển động về bản chất là điều khiển 2 motor có gắn bánh xe. Vector chuyển động của robot là tổng hợp vector chuyển động của 2 bánh xe này. Do motor của Lego là động cơ bước, điều khiển được góc quay nên có thểtính được vector chuyển động khi biết đường kính bánh xe và góc quay của động cơ.

Để xác định được vị trí của feature (bao gồm tường bao, vật cản…), smartphone đọc giá trị của Ultrasonic sensor

Ngoài việc điều khiển chuyển động và đo khoảng cách, việc đo hướng của robot đóng vai trò quan trọng trong bài toán lập bản đồ. Trong phần thực nghiệm, Smartphone được gắn cố định trên robot theo phương nằm ngang có hướng trùng với hướng của robot.

Theo cách bố trí smartphone như hình 3.6. Hướng đo được của smartphone cũng chính là hướng của robot. Việc đo hướng được thực hiện như sau:

public void onSensorChanged(SensorEvent event) {

if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)

mGravity = event.values;

if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)

mGeomagnetic = event.values;

if (mGravity != null &&mGeomagnetic != null) { float R[] = new float[9];

float I[] = new float[9];

boolean success = SensorManager.getRotationMatrix(R, I, mGravity,

mGeomagnetic); if (success) {

float orientation[] = new float[3];

SensorManager.getOrientation(R, orientation);

azimut = orientation[0]; //cập nhật lại azimut

} } }

Để truyền thông tin của robot và bản đồ đến máy giám sát, phần mềm phía smartphone có thêm module hosting dịch vụ. Chiếc smartphone lúc này được sử dụng như một HTTP Server. Từ các client có thể gửi request đến smartphone thông qua môi trường wifi.

Để giảm thời gian hồi đáp từ server đến các client, các câu lệnh request được đánh mã. Việc trả về thông tin feature để tái hiện bản đồ được thực hiện cơ chế thêm dần feature. Theo đó, trừ lần request đầu tiên, các lần request tiếp theo có thêm tham số: s, t (skip, take).

Ví dụ: http://192.168.1.5:5000?c=2&s=200&t=50

Trong đó:

 Tham số c=2 tương ứng với lệnh đọc feature

 Tham số t=50 nghĩa là lấy 1 gói tin chứa tối đa 50 phần tử

Hình 3.6 Giao diện chương trình chạy trên mobile

Hình 3.6 là giao diện chương trình chạy trên mobile. Giao diện này chứa các thông tin về kết nối (địa chỉ IP, cổng, trạng thái kết nối…) Và thao tác bật tắt web services. 3.4. Chương trình giám sát trên PC

Chương trình trên máy PC có thể giám sát hoạt động vẽ bản đồ của Robot trong thời gian thực. Ngoài ra phần mềm cho phép người dùng có thể truyền những lệnh đơn giản để điều khiển Robot trong trường hợp cần thiết. Kết quả việc vẽ bản đồ được hiển thị trực quan và có thể lưu lại. Ứng dụng viết bằng ngôn ngữ C#, hệ điều hành Windows.

- CPU: Core i3, 2.2GHz - RAM: 4 GB

- OS: Windows

Hình 3.7 Giao diện chương trình trên máy PC

Giao diện chính của trương trình giám sát gồm những thành phần sau:

- Ô nhập địa chỉ IP, cổng dịch vụ: Cho phép người dùng nhập địa chỉ IP, cổng của robot

- Các “Chạy”, “Dừng” dùng để tạm ngừng/tiếp tục việc việc theo dõi robot - Các ô thông tin cập nhật pose của robot: Vị trí hiện tại, hướng robot và trạng

thái các sensor

- Hình ảnh hiển thị quá trình vẽ bản đồ: Dựa vào thông tin gửi từ robot, chương trình giám sát tái hiện lại hình ảnh robot và bản đồ. Trong hình 3.7, robot được

ký hiệu bằng biểu tượng hình tròn, hướng mũi tên chỉ hướng hiện tại của robot, những chấm nhỏ thể hiện các feature của bản đồ

Hình 3.8 Robot vẽ bản đồ trong phòng

Kết quả vẽ bản đồ sau khi so sánh với hình ảnh thực tế được mô tả trong hình 3.8. Các feature mà robot tìm được trùng khớp với vật cản và đường bao của bản đồ trong thực tế.

KẾT LUẬN

Trong bộ lọc Kalman chúng ta tìm thấy một giải pháp mà có thể tận dụng lợi thế của tất cả các dữ liệu có sẵn thống kê giảm thiểu tổng bình phương lỗi trong dự báo trạng thái. KF hoàn thành nhiệm vụ này bằng cách duy trì một dự đoán trạng thái và một ma trận hiệp biến chứa các giá trị tin cậy cho tất cả các mối quan hệ nhị phân trong môi trường. Chúng ta nhận thấy cách KF quy định như thế nào mỗi quan sát có thể được sử dụng để cập nhật tất cả các dự đoán feature, và tất cả các giá trị ma trận phương sai. Ngoài ra, chúng tacũng thấy rằng các dự đoán trạng thái và ma trận hiệp biến có kích thước cố định không phụ thuộc vào số lần lặp lại của bộ lọc. Do đó, KF cho phép robot lập bản đồ cho đến khi nào chúng ta muốn mà không làm tăng thời gian chạy mỗi lần lặp. Có thể nói rằng nếu có khoảng 200 featurechúng ta mong muốn bản đồ, một bộ lọc Kalman sẽ là phương pháp đúng để sử dụng.

Trong khi bộ lọc Kalman tối ưu, nó luôn tạo ra dự đoán trong thời gian thực. Để duy trì ma trận hiệp phương sai bậc hai có kích thước liên quan đến số lượng feature. Vấn đề này được xử lý bằng FastSLAM. FastSLAM tiếp cận SLAM từ Bayesian và rút ra từ quan sát độc lập có điều kiện cho các pose đúng của robot. Lỗi trong pose của robot được tính bởi việc duy trì một tập các pose được gọi là các Particle. FastSLAM sử dụng bộ lọc Kalman đơn giản để cập nhật dự đoán feture cho mỗi particle. Điều này cho phép ước lượng xấp xỉ tối ưu trong cùng một lúc làm cho nó có thể có nhiều feature hơn. FastSLAM thường nhanh hơn so với phương pháp tiếp cận dựa trên KF mặc dù là không tối ưu vì rất nhiều feature có thể được sử dụng trong một khoảng thời gian nhất định.

Nếu xem xét trong tình hình ngược lại khi mà số các feature đủ để có hiệu quả sử dụng phương pháp tiếp cận dựa trên lọc FastSLAM hoặc Kalman. DP-SLAM sử dụng cách khác để thể hiện bản đồ. Phạm vi laser dò tìm được sử dụng tạo ra ô lưới chứ không phải là vectơ của feature và FastSLAM loại bỏ việc các quan sát liên quan đến nhau. Việc duy trì nhiều particle làm giảm thiểu ảnh hưởng của lỗi trong

pose robot và mỗi particle có một bản đồ tương ứng. Điều này được thực hiện bằng việc giữ một cây tổ tiên và chỉ lưu trữ sự chênh lệch giữa 1 con và 1 cha. Chúng ta cải thiện hiệu quả để nhận được thông tin occupancy tương ứng với ô lưới cụ thể bởi việc phân bố thông tin từ tất cả các particle trên một bản đồ particle đơn. Bản đồ phân bố particle này lưu trữ tất cả các thông tin liên quan đến mỗi ô vuông trong một cây cân bằng để tìm kiếm nhanh chóng.

Tóm lại, trong môi trường có vài trăm feature có sẵn và ước lượng tốt nhất có thể được thực hiện cho mỗi feature, cách tiếp cận KF là tốt nhất. Trong môi trường có hàng chục nghìn feature có sẵn thì FastSLAM là một giải pháp tốt hơn hai phương pháp còn lại. DP-SLAM lại có lợi trong môi trường không có feature nào. Cả ba phương pháp đều thể hiện cho một cách giải quyết bài toán thực tế SLAM trong một môi trường có lượng feature bất kỳ.

TÀI LIỆU THAM KHẢO

[1]Austin Eliazar and Ronald Parr.“DP-SLAM: Fast, Robust Simultaneous Localization and Mapping Without Predetermined Landmarks”. IJCAI'03 Proceedings of the 18th international joint conference on Artificial intelligence Pages 1135-1142 Morgan Kaufmann Publishers Inc. San Francisco, CA, USA ©2003

[2]Castellanos, J.A., Neira, J., and Tardos, J.D. “Limits to the consistencyof the EKF-based SLAM. In Intelligent Autonomous Vehicles (IAV-2004) (Lisboa, PT, July 2004), M.I.Ribeiro and J.Santos-Victor, Eds., IFAC/EURON, IFAC/Elsevier.

[3]Castellanos, J.A., Neira, J., and Tardós, J.D. “Multisensor fusion for simultaneous localization and map building”. IEEE Transactions on Robotics and Automation 17, 6 (December 2001), 908-914.

[4]Durrant-Whyte, Hugh “Localization, Mapping, and the Simultaneous Localization and Mapping Problem.” AustralianCenter for Field Robotics. Sydney. 2002.

[5]Durrant-Whyte, H. and Bailey, T. (2006). “Simultaneous localisation and mapping (slam): Part i the essential algorithms. robotics and automation magazine”, IEEE Robotics and Automation Magazine, 2:2006.

[6]Durrant-Whyte, “Uncertain geometry in robotics,” IEEE Trans. Robot. Automat., vol. 4, pp. 23–31, 1988.

[7]Gerardo Oliveira, Ricardo Silva, Tiago Lira, Luis Paulo Reis. “Environment Mapping using the Lego Mindstorms NXT and leJOS NXJ". the 14th Portuguese Conference on Artificial Intelligence, EPIA'2009

[8]Kalman, R.-E. “A New Approach to Linear Filtering and Prediction Problems”,

[9]Li, J., Cheng, L., Wu, H., Xiong, L., and Wang, D., “An Overview of the Simultaneous Localization and Mapping on Mobile Robot”, Proceedings of 2012 International Conference on Modeling, Identification and Control, Wuhan, China, June 24‐26, 2012, pp. 358‐364.

[10] M. Montemerlo, S. Thrun, D. Koller, and B. Wegbreit. “FastSLAM: A factored solution to the simultaneous localization and mapping problem”. In AAAI-02, Edmonton, Canada, 2002. AAAI.

[11] MWMG Dissanayake, P Newman, S Clark, HF Durrant-Whyte, M Csorba.” A solution to the simultaneous localization and map building (SLAM) problem”. Robotics and Automation, IEEE Transactions, 229-241.

[12] Montemerlo, M. and Thrun. “Simultaneous localization and mapping with unknown data association using fastslam”.Trucco., and Alessandro Verri. “Introductory Techniques for 3-D Computer Vision”. Prentice Hall, 1998. [13] Stachniss, C., and Burgard, W. “Exploration with active loop-closing for

fastslam”. In IROS (Sendai (Japan), Sep 2004), IEEE/RSJ.

[14] SB Williams, G Dissanayake, H Durrant-Whyte. “An efficient approach to the simultaneous localisation and mapping problem”. Robotics and Automation, 2002. Proceedings. ICRA'02. IEEE International.

[15] Scharstein, Daniel “Computer Vision.” MiddleburyCollege. Middlebury. 2006 [16] Simon, D. “Optimal State Estimation”. New York: Wiley, 2006.

[17] Tuna, G., Gulez, K., Gungor, V. C., and Mumcu, T. V. “Evaluations of Different Simultaneous Localization and Mapping (SLAM) Algorithms”. 38th Annual Conference on IEEE Industrial Electronics Society, Montreal, Canada, Oct. 25‐28, 2012, pp. 2693‐ 2698

[18] Trucco., and Alessandro Verri. “Introductory Techniques for 3-D Computer Vision”. Prentice Hall, 1998.

Một phần của tài liệu Robot vẽ bản đồ địa hình (Trang 51)

Tải bản đầy đủ (PDF)

(60 trang)