icantech
Lập trình Python
1674
25/10/2023

Tìm hiểu cách lập trình robot bằng Python đơn giản

Trong cuộc sống hiện đại, chắc hẳn bạn đã bắt gặp đâu đó những chú robot hút bụi, robot quét nhà, lau sàn. Những robot này hoạt động mà không cần sự can thiệp hoặc tác động trực tiếp từ con người. Một số robot thậm chí còn có khả năng giao tiếp với con người. Python là ngôn ngữ lập trình bậc cao được sử dụng rộng rãi trong lĩnh vực robot. Lập trình viên sử dụng Python để thu thập, xử lý dữ liệu, kiểm soát phần cứng cấp thấp thông qua hệ điều hành robot (ROS - Robotic Operating System) và các framework như OpenCV và TensorFlow.

1. Tìm hiểu môi trường của robot

Hầu hết quy trình chế tạo, lập trình robot bằng Python sẽ theo ba bước cơ bản như sau:

  • Bước 1: Nhận thức môi trường hoạt động của robot sẽ như thế nào
  • Bước 2: Lập kế hoạch để robot được điều hướng trong môi trường tốt nhất
  • Bước 3: Giai đoạn kiểm soát hoạt động của robot, làm thế nào để robot tương tác với các vật thể trong môi trường tốt nhất

1.1. Nhận thức của robot

Hiểu một cách đơn giản, khả năng nhận thức là khả năng “nhìn thấy” của robot. Trước khi đưa ra quyết định và hành động phù hợp, robot cần phải hiểu được môi trường mà nó tiếp xúc. Nhận thức của robot bao gồm việc xác định các dấu hiệu từ con người, đồ vật, cũng như nắm bắt tiến trình các sự kiện xung quanh nó. Hệ thống nhận thức của robot có cả phần cứng và phần mềm, gồm có:

  • Camera, cảm biến radar, cảm biến sonar và cảm biến LiDAR,...
  • Các framework như OpenCV và scikit-image

Chúng ta hãy xem 1 đoạn code ví dụ sau:

import tensorflow_hub as hub

import cv2

import numpy 

import pandas

import tensorflow as tf

import matplotlib.pyplot as plt

widget = 1028

height = 1028

# Load the image by OpenCV

image = cv2.imread('IMAGE_PATH')

# Resize the image to match the input size of the model

inp = cv2.resize(image, (widget, height))

# Convert the image to RGB from BGR

rgb = cv2.cvtColor(inp, cv2.COLOR_BGR2RGB)

# Converting to uint8

rgb_tensor = tf.convert_to_tensor(rgb, dtype=tf.uint8)

# Add the batch dimension

rgb_tensor = tf.expand_dims(rgb_tensor), 

Thông qua ví dụ, bạn sẽ biết cách:

  • Khai báo các thư viện cần thiết để xử lý hình ảnh
  • Tải từng hình ảnh bằng module imread của OpenCV. Sau đó, bạn thay đổi kích thước kích thước ảnh thành 1028 x 1028, tiếp tục chuyển đổi bảng màu của từng hình ảnh đầu vào từ RGB sang BGR.
  • Biểu thị hình ảnh ở định dạng số giống như cách chuyển đổi mảng.

1.2. Lập kế hoạch lập trình robot bằng Python và dự đoán hoạt động robot

Lập kế hoạch và dự đoán hoạt động của robot là bước quan trọng, chiếm nhiều thời gian và lặp đi lặp lại trong suốt quá trình bạn phát triển robot. Giai đoạn này đóng vai trò là trung gian giữa dữ liệu được thu thập và hành động tương ứng mà robot sẽ thực hiện.

Sau khi dữ liệu được thu thập từ các cảm biến, phần hữu ích sẽ được trích xuất, tiếp theo dữ liệu sẽ được xử lý bằng kỹ thuật Machine Learning (ML) và Deep Learning (DL). Các thuật toán lập kế hoạch như A* và RRT (Rapidly-exploring random trees) cần sử dụng để xác định đường đi hoặc chuyển động của robot. 

Chuyển động của robot sẽ bị giới hạn do các thiết lập mặc định ban đầu. Để mở rộng phạm vi hoạt động của robot, các lập trình viên sử dụng thuật toán dự đoán ML. Thuật toán ML cho phép robot tự động khám phá các quy tắc về cách thế giới vận hành. Ví dụ như hình ảnh được bạn thu thập từ camera được xử lý bằng OpenCV, sau đó đưa vào thuật toán được tạo bằng framework ML như TensorFlow để giúp robot xác định chính xác các đối tượng trong bất kỳ môi trường nào.

1.3. Điều khiển robot

Đây là giai đoạn kiểm soát về thao tác của robot cũng như cách robot tương tác với các vật thể xung quanh chúng. Ví dụ, trong trường hợp cánh tay robot được lập trình gắp và đặt, có nghĩa thao tác của nó là nắm lấy một vật thể và đặt nó vào hộp. 

Bộ điều khiển thông qua cơ chế điều khiển điện tử, để Robot thực hiện các nhiệm vụ bằng cách tương tác với môi trường của chúng. Vì các hạn chế về chuyển động và việc tối ưu hóa có thể có sẽ khác nhau tùy thuộc vào môi trường nên rất khó để lập trình một cách hiệu quả. Do đó, lập trình viên cần có các mô hình ML có khả năng thích ứng với những thay đổi trong khi vẫn đảm bảo tối ưu hóa chuyển động. 

2. Cách kích hoạt lập trình robot bằng Python

Để giúp bạn có được cái nhìn trực quan nhất, chúng ta sẽ tìm hiểu cách lập trình robot bằng Python để hiện thực hóa 1 robot hút bụi. 

Ví dụ của chúng ta sẽ gồm:

  • Linh kiện: 1 camera, 2 cảm biến siêu âm, 4 động cơ, cụm bánh xe mecanum và mạch điều khiển Raspberry Pi 
  • Frameworks của Python: OpenCV và TensorFlow 
  • Trường hợp sử dụng: tránh chướng ngại vật 
  • Bạn có thể sử dụng môi trường Lập trình robot Python dựng sẵn cho Windows hoặc Linux cùng với các tập lệnh Python ở trên để điều khiển robot.
cum-banh-xe-mecanum

2.1. Lắp ráp robot

Các bánh xe của robot phải được bố trí giống như trên một chiếc xe bình thường. Các cảm biến siêu âm được gắn ở cả phía trước và phía sau khung gầm của robot. Bạn nên gắn Camera ở vị trí cao ở phía trước khung máy và kết nối trực tiếp camera với bộ điều khiển. Các động cơ cũng cần phải được liên kết với một trình điều khiển động cơ.

2.2. Lập trình robot bằng Python

Bạn cần chuẩn bị Raspberry Pi bằng cách cài đặt môi trường chạy lập trình robot. Các tập lệnh chính của Python phải nhập là modules máy ảnh, động cơ và sóng siêu âm. Đồng thời chúng ta cũng sử dụng mô hình Python-OpenCV để phát hiện các hình ảnh khác nhau. Khi phát hiện một vật thể, chức năng cảm biến tiệm cận (cảm biến siêu âm) sẽ được sử dụng để đo khoảng cách giữa vật thể và robot. Khi khoảng cách của robot với vật thể dưới ngưỡng an toàn đã xác định, robot sẽ dừng.

2.3. Vận hành robot

Thông qua camera, bạn có thể kiểm tra được khoảng cách của đối tượng được phát hiện. Từ đó bạn cần thực hiện các chuyển đổi cần thiết và tính toán khoảng cách mà robot cần di chuyển sang phải hoặc trái, dựa trên nguồn cấp dữ liệu hình ảnh từ camera. Nếu vật thể hoàn toàn nằm ngoài tầm nhìn của máy ảnh, thì  lập trình hoạt động tiếp theo của di chuyển về phía trước.

3. Lời Kết

Trong bài viết này, chúng ta đã cùng nhau tìm hiểu cách lập trình robot bằng Python đơn giản. Python là ngôn ngữ lập trình rất hữu ích trong công nghệ Robotics. Trong tương lai, hứa hẹn sẽ có nhiều robot được tạo ra bằng Python và giúp ích cho đời sống con người. 

Nếu bạn đang quan tâm đến học lập trình Python thì hãy tham khảo ngay lộ trình học tại ICANTECH nhé

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình Python

Bài tương tự