3.2.3. Chương trình điều khiển
Chương trình điều khiển khối Lego được viết bằng Java, chạy trên nền hệ điều hành LEJOS. So với ngôn ngữ mặc định của Lego được viết theo kiểu “brick”, ngôn ngữ Java linh hoạt hơn rất nhiều với đầy đủ sức mạnh của ngôn ngữ hướng đối tượng như packet, lớp, kế thừa,…Thêm vào đó, các API được cung cấp bởi LeJOS không chỉ hỗ trợ cho việc lập trình trên robot Lego mà còn hỗ trợ cả cho các thiết bị khác như PC, Smartphone,…
Vì các thuật toán đều được cài đặt trên smartphone (được trình bày ở phần 3.1.2. của luận văn) nên chương trình viết trên khối NXT có nhiệm vụ là thông báo trạng thái sensor cho Chương trình trên smartphone xử lý:
Để giao tiếp với smart phone, trong khi thực thi chương trình, khối LegoNXT phải mở kết nối Bluetooth. Thông qua kết nối này, smart phone sẽ gửi các tín hiệu điều khiển bằng cách dùng API của LEJOS.
3.3. Chương trình trên Smartphone
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.