Điều khiển Robot là quá trình thu thập dữ liệu ngõ vào từ Camera Kinect bằng gói thƣ viện Openni_tracker để xử lí và đƣa ra ngõ ra là PWM_left và PWM_right để điều khiển động cơ giúp Robot chuyển động nhƣ mong muốn, muốn điều khiển đƣợc hai động cơ thì cần phải điều khiển thông qua Angular_kinect (góc) và Linear_kinect(khoảng cách). Và khi điều khiển hai thành phần này chúng ra dùng thuật toán PID mà cụ thể ta chỉ thay đổi thành phần KP trong thuật toán PID để làm tăng tốc độ đáp ứng của hệ thống cụ thể đƣợc trình bày ở phần dƣới.
a. Điều khiển Angular của Robot.
- Sự thay đổi của Angular_Kinect ảnh hƣởng đến sự thay đổi vận tốc của bánh xe trái (V_left) và bánh xe phải (V_right).
67 Khi Angular_Kinect nhỏ tức là khi đó con ngƣời đang đi chuyển về bên trái của Robot thì khi đó tốc độ bánh xe bên phải sẽ lớn hơn tốc độ của bánh xe bên trái để Robot có thể xoay theo ngƣời sang trái, theo nhƣ kết quả hình 5.21.
Hình 5.21: Tốc độ của 2 bánh xe khi Angular_Kinect nhỏ.
Khi Angular_Kinect lớn:
Khi Angular_Kinect lớn tức là khi đó con ngƣời đang đi chuyển về bên phải của Robot thì khi đó tốc độ bánh xe bên trái sẽ lớn hơn tốc độ của bánh xe bên phải để Robot có thể xoay theo ngƣời sang phải, theo nhƣ kết quả hình 5.22.
68 Để so sánh vận tốc của hai bánh xe khi Angular_Kinect thay đổi thì chúng ta có biểu đồ nhƣ sau:
Hình 5.23:Biểu đồ vận tốc khi con người đứng ở giữa Kinect.
69
Hình 5.25: Biểu đồ vận tốc khi con người đứng bên trái Kinect.
Từ ba biểu đồ trên cho chúng thấy đƣợc sự ảnh hƣởng rất lớn của Angular_Kinect đến tốc độ của hai bánh xe. Ở hình 5.23 là hình đồ thị khi con ngƣời đứng ở giữa Kinect tƣơng ứng Argular_Kinect xấp xỉ bằng 0 thì tốc độ hai bánh xe của Robot cũng xấp xỉ bằng nhau và lúc đó Robot sẽ chuyển động đi thẳng. Ở hình 5.24 là khi con ngƣời đứng lệch về bên phải thì ta thấy tốc độ bánh xe trái sẽ chuyển động nhanh hơn tốc độ bánh xe phải lúc này Robot sẽ rẽ phải còn ở hình 5.25 là khi ngƣời đi lệch về bên trái thì ta thấy tốc độ bánh xe phải sẽ nhanh hơn tốc độ bánh xe trái lúc đó Robot sẽ rẽ trái.
- Xét sự ảnh hƣởng của Kp_Angular đến sự thay đổi tốc độ của bánh xe. Với Kp_Angular = 2
70 Với Kp_Angular = 6
Hình 5.27: Tốc độ của 2 bánh xe khi Kp_Angular bằng 6.
Từ hình 5.26, 5.27 có thể cho chúng ta thấy đƣợc sự thay đổi của Kp_Angular ảnh hƣởng rất lớn đến sự đáp ứng về tốc độ của bánh xe Robot mà cụ thể là khi Kp_Angular càng lớn thì tốc độ đáp ứng của tốc độ hai bánh xe càng nhanh.
- Xét sự di chuyển của con ngƣời thay đổi theo thời gian để thấy đƣợc ảnh hƣởng của Angular_Kinect.
Cụ thể ở đây khi con ngƣời di chuyển liên tục từ trái qua phải thì tốc độ của hai bánh xe cũng thay đổi, khi con ngƣời ở bên trái thì V_right sẽ lớn hơn V_left lúc này Robot sẽ xoay trái, khi di chuyển đến giữa thì tốc độ hai bánh xe sẽ bằng nhau lúc này Robot sẽ đi thẳng và khi con ngƣời di chuyển sang đến bên phải thì V_left sẽ lớn hơn V_right lúc này Robot sẽ xoay phải, sự thay đổi này thể hiện ở hình 5.28.
71
Hình 5.28: Sự thay đổi tốc độ bánh xe khi con người di chuyển từ trái sang
phải.
b. Điều khiển Linear của Robot.
- Sự thay đổi của Linear_Kinect ảnh hƣởng đến sự thay đổi vận tốc của bánh xe trái (V_left) và bánh xe phải (V_right).
Nếu ở mục a chúng ta xét về sự thay đổi của Angular_Kinect là sự thay đổi về góc thì ở phần này chúng ta xét về sự thay đổi của Linear_Kinect là sự thay đổi về di chuyển thẳng của Robot.
Khi Linear_Kinect nhỏ:
Khi Linear_Kinect nhỏ tức là khi đó con ngƣời di chuyển về gần Robot hơn, lúc này tốc độ của hai bánh xe bằng nhau và khi con ngƣời đứng đúng vị trí giới hạn (0,5m) của Robot thì khi đó tốc độ hai bánh xe bằng 0 và Robot đứng yên nhƣ hình 5.29.
72
Hình 5.29: Tốc độ của 2 bánh xe khi Linear_Kinect nhỏ.
Khi Linear_Kinect lớn:
Khi Linear_Kinect lớn tức là khi con ngƣời di chuyển ra xa Robot, theo phƣơng thẳng thì lúc đó tốc độ hai bánh xe lớn và bằng nhau, nếu đi chuyển ra xa hơn so với tầm nhìn của Kinect thì Robot không còn nhận thấy con ngƣời nữa và khi đó Robot sẽ đứng lại, theo kết quả nhƣ hình 5.30.
73 Để so sánh tốc độ hai bánh xe khi Linear_Kinect thay đổi thì chúng ta có biểu đồ nhƣ sau:
Hình 5.31: Biểu đồ thể hiện tốc độ 2 bánh xe khi con người di chuyển lại gần
Robot.
Hình 5.32: Biểu đồ thể hiện tốc độ 2 bánh xe khi con người di chuyển ra xa
Robot.
Từ hình 5.31, 5.32 cho chúng ta thấy đƣợc khi Linear_Kinect thay đổi thì hai bánh xe Robot luôn có tốc độ bằng nhau. Đối với hình 5.32 thì khi chúng ta đứng gần Robot với khoảng cách nhỏ hơn hoặc bằng 0,5m thì lúc này tốc độ hai bánh xe bằng 0 và Robot đứng yên. Với hình 5.32 thì khi chúng ta di chuyển ra xa Robot thì càng di chuyển tốc độ của hai bánh xe càng tăng. Từ đó chúng ta nhận thấy rằng
74 Linear_Kinect chỉ điều khiển tốc độ bánh xe Robot dựa vào khoảng cách giữa Robot và con ngƣời chứ không giống nhƣ Angular_Kinect là điều khiển tốc độ bánh xe dựa vào góc quay.
- Xét sự ảnh hƣởng của Kp_Linear đến sự thay đổi tốc độ của bánh xe. Khi Kp_Linear = 0.1
Hình 5.33: Tốc độ của 2 bánh xe khi Kp_Linear bằng 0.1.
Khi Kp_Linear = 0.5
75 Từ hình 5.33, 5.34 chúng ta có thể thấy đƣợc Kp_Linear ảnh hƣởng rất lớn đến sự thay đổi tốc độ của hai bánh xe, khi Kp_Linear càng lớn thì sự thay đổi càng nhanh. Ban đầu khi ta đứng yên tùy theo khoảng cách mà Robot sẽ chạy nhanh hay chậm, nhƣng khi chúng ta di chuyển ra xa thì tốc độ của hai bánh xe Robot bắt đầu tăng.
- Xét sự di chuyển của con ngƣời thay đổi theo thời gian để thấy đƣợc ảnh hƣởng của Linear_Kinect.
Cụ thể ở đây khi con ngƣời liên tục di chuyển lại gần hoặc ra xa Robot thì tốc độ hai bánh xe sẽ bằng nhau và hai tốc độ này sẽ cùng tăng hoặc cùng giảm tuyến tính theo sự thay đổi của con ngƣời, theo kết quả nhƣ hình 5.35.
Hình 5.35: Sự thay đổi tuyến tính của tốc độ của bánh xe khi con người di
chuyển.