Công việc thiết kế Robot hiện nay không chỉ dừng lại ở sự vận hành tự động mà phải dùng để thu thập, truyền dữ liệu từ xa gửi về cho người dùng qua Internet, cũng như tương tác trực tiếp
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO TP HỒ CHÍ MINH PHÒNG GIÁO DỤC VÀ ĐÀO TẠO HUYỆN HÓC MÔN
TRƯỜNG THCS NGUYỄN AN KHƯƠNG
CUỘC THI KHOA HỌC KĨ THUẬT CẤP THÀNH PHỐ DÀNH CHO
HỌC SINH TRUNG HỌC Năm học 2018 – 2019
Tên dự án dự thi:
ROBOT IoRT THÁM HIỂM
Lĩnh vực dự thi: 20 – Robot và máy thông minh
HỌC SINH THỰC HIỆN: Đinh Quốc Huy
GIÁO VIÊN HƯỚNG DẪN: Cô Diệp Thị Thanh Thảo
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Hà Hoàng Kha
ĐỊA ĐIỂM THỰC HIỆN: 1 Trường THCS Nguyễn An Khương
2 Trường Đại Học Bách Khoa TPHCM
Tp Hồ Chí Minh, tháng 10 năm 2018
Trang 2Mục lục
LỜI CẢM ƠN
TÓM TẮT ĐỀ TÀI 1
Chương 1 GIỚI THIỆU 1
1.1 Tổng quan về Robot IoRTthám hiểm 1
1.2 Tình hình nghiên cứu 2
1.3 Mục tiêu đề tài và phương pháp thực hiện 2
1.3.1 Mục tiêu đề tài 2
1.3.2 Mô hình thực hiện 3
1.4 Bảng phân công công việc 3
Chương 2 PHƯƠNG PHÁP THỰC HIỆN 3
2.1 Giám sát từ xa qua Web RTC 3
2.2 Thiết kế phần cứng 4
2.2.1 Sơ đồ tổng quát hệ thống 4
2.2.2 Thiết kế phần cơ khí 5
2.2.3 Lựa chọn động cơ DC và Encoder 5
2.2.4 Lựa chọn mạch cầu H 7
2.2.5 Cảm biến IMU 8
2.2.6 Kit phát triển TM4C123GXL 9
2.2.7 Kinect Xbox 360 9
2.3 Lập trình giao tiếp ngoại vi với vi điều khiển 10
Chương 3 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 11
3.1 Kết luận 11
3.2 Một số hình ảnh thực tế 12
3.3 Hướng phát triển 15
TÀI LIỆU THAM KHẢO 15
Trang 3LỜI CẢM ƠN
Em xin chân thành gửi lời cảm ơn đến cô Diệp Thị Thanh Thảo đã tận tình định hướng, khơi dậy niềm đam mê khoa học và giúp đỡ trong suốt quá trình em thực hiện đề tài này
Em thật sự biết ơn thầy, cô giáo trường THCS Nguyễn An Khương
đã giảng dạy chu đáo, cung cấp những kiến thức nền tảng góp phần quan trọng để em có thể hoàn thành đề tài này Cám ơn bạn bè trong trường đã giúp đỡ và đóng góp ý tưởng
Em cũng xin gửi lời biết ơn đến những anh, chị và thầy, cô trong Khoa Điện – Điện tử trường Đại học Bách Khoa Tp Hồ Chí Minh Đặc biệt, sự hướng dẫn tận tình của hai anh Trần Minh Lợi và Hà Văn Bôn trong quá trình thực hiện đề tài
Sau cùng em xin tri ân đến gia đình luôn là động lực để vượt qua những khó khăn thử thách trong suốt quá trình học tập và rèn luyện
Tp.Hồ Chí Minh, ngày 20 tháng 10 năm 2018
Học sinh Đinh Quốc Huy
Trang 4TÓM TẮT ĐỀ TÀI
Ngày nay cùng với sự phát triển của công nghệ 4.0, việc ứng dụng nền tảng Internet of Thing (IoT) cho các ứng dụng trong xã hội trở nên phổ biến Do đó, thiết kế Robot kết hợp với IoT cho ra đời khái niệm The Internet of Robotic Things (IoRT) trở thành xu hướng trong những năm gần đây và trong trương lai Công việc thiết kế Robot hiện nay không chỉ dừng lại ở sự vận hành tự động mà phải dùng để thu thập, truyền dữ liệu
từ xa gửi về cho người dùng qua Internet, cũng như tương tác trực tiếp từ
xa để thay thế con người thực hiện nhiệm vụ ở nhưng nơi mà con người không thể đến Những ứng dụng điển hình như các nhà thám hiểm đi vào những nơi chưa ai đến hay dò địa hình ở những nơi có chất độc hại và bom mìn, hay phục vụ cho công tác cứu hộ khi người bị kẹt trong những hang động (điển hình như việc cứu hộ đội bóng thiếu niên kẹt trong hang động ở Thái gần đây) v.v Do đó việc chế tạo các Robot IoRT thám hiểm
là điều hết sức cần thiết cho nhu cầu của xã hội
The Robot IoRT thám hiểm là loại robot có khả năng tự di chuyển, thu thập thông tin hình ảnh và vẽ lại bảng đồ địa hình từ xa cũng như livestream hình ảnh và chuyển về người dùng thông qua mạng Internet Người dùng có thể quan sát và điều khiển từ xa thông qua giao diện người dùng cùng khả năng kết nối Internet Với Robot IoRT thám hiểm, người dùng có thể tương tác với môi trường xung quanh như di chuyển, nghe và nhìn qua môi trường Internet Đề tài tập trung giải quyết những yêu cầu cơ bản của một Robot IoRT thám hiểm Đầu tiên là thiết kế phần cứng hỗ trợ khả năng di chuyển và thị giác máy tính Thứ hai là Xử lý ảnh và để nhận dạng người và vật cản Thứ ba là khả năng xây dựng bản
đồ và định vị vị trí của robot trong bản đồ đã vẽ ra Cuối cùng là streaming video và điều khiển robot từ xa qua mạng Internet thông qua giao diện người dùng
Chương 1 GIỚI THIỆU
Robot IoRT thám hiểm là một loại robot có khả năng thực hiện tác vụ dưới sự điều khiển của người sử dụng từ xa thông qua các giao thức mạng, có khả năng streaming video và hiển thị ra một màn hình giao diện gắn trên robot, từ đó robot trở thành người đại diện cho người dùng đi vào những nơi nguy hiểm để quan sát và thu thập dư liệu thay cho con người Một số sản phẩm Robot thám hiểm có mặt trên thị trường như hình 1
Trang 5Hình 1 Một số sản phẩm Robot
Hiện nay việc nghiên cứu và chế tạo Robot khá phổ biến như cánh tay Robot, Robot tự hành, Robot điếu khiển bằng giọng nói hay sóng não… Robot IoRT thám hiểm là một hướng phát triển nghiên cứu còn khá mới mẻ ở Việt Nam Đây là một sản phẩm hứa hẹn sẽ góp phần không nhỏ cải thiện chất lượng công việc thám hiểm, làm đa dạng hóa các sản phẩm IoT được nghiên cứu chế tạo ở nước ta
1.3.1 Mục tiêu đề tài
Mục tiêu chính của đề tài là xây dựng robot RIoT với khả năng tự di chuyển đến đích và không bị va chạm cùng với khả năng giám sát và điều khiển từ xa qua mạng Internet Robot IoRT ở đây được áp dụng vào lĩnh vực thám hiểm nên đi vào những nơi nguy hiểm để thay thế con người Yêu cầu đầu tiên là khả năng tự vận hành và tránh vật cản Robot
di chuyển trong môi trường nhiều vật cản nên phải có khả năng tránh vật cản tự động Dùng camera Kinect với hệ thống các cảm biến và camera đảm nhiệm vai trò xác định vật cản và tính toán khoảng cách Để giao tiếp từ xa, Robot phải thực hiện chức năng streaming video và audio thời gian thực, một máy tính thực hiện xử lý và streaming video từ robot đến người dùng qua mạng Đồng thời máy tính này cũng nhận lệnh điều khiển từ người dùng và truyền xuống robot
Do đó nội dung chính của Robot thám hiểm:
Streaming Và Điều
khiển từ xa qua Internet Di chuyển tránh vật cản Vẽ Bản Đồ Và Định Vị
Trang 61.3.2 Mô hình thực hiện
Người dùng sử dụng máy tính hoặc điện thoại thông minh điều khiển robot từ xa thông qua WebRTC Trong khi điều khiển, người dùng có thể xem được luồng video stream từ robot trong thời gian thực Nhóm tự thiết kế và lắp ráp khung robot với động cơ, nguồn, vi điều khiển… Khung robot phải chịu được tải trọng của robot và có hình dạng giúp robot dễ dàng di chuyển và có Laptop kèm theo Laptop nhận dữ liệu từ camera và phát trực tiếp cho người dùng từ xa thông qua WebRTC Đồng thời laptop cũng thực hiện xử lý dữ liệu nhận được từ vi điều khiển để tính toán vị trí của robot Laptop thực hiện vẽ bản đồ môi trường từ thông tin vị trí và vật cản đo được qua Kinect Sau khi có bản đồ, robot có thể
tự di chuyển đến đích và tránh va chạm trên đường đi
Xây dựng Robot thám hiểm từ phần cứng đến phần mềm được nhóm
nghiên cứu phân công như bảng 1:
Tháng
1
Tháng
2
Tháng
3
Tháng
4
Tháng
5
Tháng
6
Thiết kế phần cứng,
lập trình hệ thống
nhúng Streaming video và
điều khiển với
WebRTC
Vẽ bản đồ và định vị
Robot
Thực nghiệm tổng
hợp báo cáo
Chương 2 PHƯƠNG PHÁP THỰC HIỆN 2.1 Giám sát từ xa qua Web RTC
Chức năng cơ bản của một Robot IoRT thám hiểm là cho phép người dùng tương tác với môi trường từ xa Người dùng có thể thấy hình ảnh thu được từ camera trang bị trên robot và điều khiển robot di chuyển theo
Hình 2 Mô hình tổng quát hệ thống Robot IoRT
Trang 7mong muốn Streaming video thời gian thực yêu cầu độ trễ thấp, tiết kiệm băng thông Trong khi đó điều khiển từ xa yêu cầu độ tin cậy trong quá trình truyền Để giải quyết bài toán điều khiển từ xa, nhóm nghiên cứu cần xây dựng ứng dụng cho phép người dùng tương tác và tìm hiểu giao thức mạng phù hợp để truyền dữ liệu giữa người dùng và robot
WebRTC là một Web API được Google phát triển nhằm hỗ trợ streaming video trực tiếp trên trình duyệt web Một số trình duyệt web đã
hỗ trợ WebRTC là Google Chrome, Mozilla Firefox và Opera WebRTC truyền dữ liệu theo mô hình point-to-point giữa robot và người dùng theo
mô hình kết nối như hình 3 Có ba bước chính thực hiện streaming với WebRTC là xử lý luồng media ở robot, báo hiệu trao đổi thông tin cần thiết để streaming và cuối cùng là stream dữ liệu point-to-point giữa robot và người điều khiển
Hình 3 Mô hình kết nối WebRTC giữa robot và người dùng
2.2 Thiết kế phần cứng.
2.2.1 Sơ đồ tổng quát hệ thống
Robot IoRT thám hiểm yêu cầu hệ thống có khung cơ khí, các ngoại
vi và mạch điều khiển đáp ứng được yêu cầu xử lý về stream camera, tự hành tránh vật cản, điều khiển tự hành từ xa Từ những yêu cầu trên, phần cứng được sử dụng gồm: khung xe, camera Kinect, vi điều khiển giao tiếp với ngoại vi và máy tính, động cơ DC bao gồm encoder, cầu H
để điều khiển động cơ, bo mạch kết nối các ngoại vi với vi điều khiển, cảm biến IMU đo góc quay của robot, nguồn điện cấp cho hệ thống, máy tính cài đặt hệ thống ROS trên hệ điều hành Linux như hình 4
Trang 8Hình 4 Sơ đồ khối hệ thống
2.2.2 Thiết kế phần cơ khí
Với chức năng chính của robot là tự hành tránh vật cản, phần cứng được thiết kế với hình dạng khung xe rùa như hình 5 Với hình dạng này robot có thể dựa vào bán kính khung xe và khoảng cách đến những vật cản xung quanh, sau đó máy tính thực hiện thuật toán tránh vật cản để đưa ra quyết định di chuyển cho robot Tải trọng chính của robot như bảng 1
Hình 5 Phần khung robot dạng xe rùa
PC
Nguồn cấp
Vi điều khiển
Cầu
H
Mạch đệm
Kinect
Encoder 2
Motor
2
IMU
Trang 9Bảng 1 Tải trọng của robot
(kg)
Nguồn acquy 12V-9Ah 2.78 Kinect Xbox 360 1.5 Laptop ASUS 1.5
2.2.3 Lựa chọn động cơ DC và Encoder
Với trọng tải robot lên đến 5.78 kg trong khi không yêu cầu về tốc
độ di chuyển nhanh, động cơ DC được yêu cầu phải có hộp số giảm tốc
để tăng momen xoắn giúp việc kéo tải của động cơ điện được dễ dàng Ngoài ra để điều khiển vị trí robot dựa vào số vòng quay của bánh xe yêu cầu động cơ cần có bộ phận phản hồi thông tin về số vòng quay mà bánh
xe đã quay được, bộ phận có thể đảm nhận chức năng được gọi là encoder
Hình 5 Encoder tương đối gồm 2 kênh A và B Nhóm nghiên cứu chọn động cơ DC giảm tốc GA37-V1 kèm encoder từ như hình 6
Hình 6 Động cơ DC giảm tốc GA37-V1 kèm encoder
Trang 10Bảng 2 Động cơ DC giảm tốc GA37-V1
Tỉ số truyền của hộp số 1:33 Điện áp hoạt động (Vdc) 6-24 Điện áp trung bình (V) 12 Tốc độ cực đại không tải (rpm) 303 Dòng điện cực đại có tải (A) 3
Bảng 3 Encoder
Điện áp hoạt động (Vdc) 3.3 Loại encoder Encoder tương đối
2.2.4 Lựa chọn mạch cầu H
Để điều khiển chiều quay, tốc độ động cơ yêu cầu cần có một mạch điện có khả năng đảo chiều dòng điện cũng như có thể điều khiển cường
độ dòng điện chảy qua động cơ Hình 7 là sơ đồ nguyên lý đơn giản của một mạch cầu H thực hiện chức năng trên:
Hình 7 Sơ đồ nguyên lý cầu H Lựa chọn cầu H thích hợp là một trong những yếu tố quyết định đến chất lượng điều khiển hệ thống motor Dựa trên dòng tải cực đại của motor GA37-V1 là 3A, ta có thể lựa chọn trên thị trường hiện nay là module cầu H VNH2SP30 như hình 8
Trang 11Hình 8 Cầu H VNH2SP30
2.2.5 Cảm biến IMU
IMU là một thiết bị điện tử kết hợp hai loại cảm biến là cảm biến gia tốc và cảm biến con quay hồi chuyển IMU được sản xuất với công nghệ MEMS cho phép xác định góc quay, vận tốc, vị trí của các hệ thống chuyển động trong không gian ba chiều một cách hiệu quả
Hình 9 Các chiều trong không gian Nhóm sử dụng cảm biến MPU6050 như hình 10 tích hợp cảm biến con quay hồi chuyển ba trục, cảm biến gia tốc ba trục và một chip xử lý DMP thu thập và xử lý dữ liệu
Hình 10 Module cảm biến MPU6050
Trang 122.2.6 Kit phát triển TM4C123GXL
Tiva TM4C123GXL là kit phát triển được tích hợp sẵn vi điều khiển TM4C123GH6PM của hãng Texas Instrument Đây là dòng vi điều khiển 32 bit
𝐴𝑅𝑀® cortex𝑇𝑀- M4 80MHz
Ngoại vi được kết nối với vi điều khiển như hình 11
Hình 11 Kết nối vi điều khiển với ngoại vi Trong đó:
PD6, PD7: được cấu hình để kết nối đến module QEI0
PC5, PC6: được cấu hình để kết nối đến module QEI1
PA6, PA7: được cấu hình để kết nối đến module I2C1(PA6: SCL và PA7: SDA)
PE4, PE5: ngõ ra của module PWM0 khối tạo xung 2
PB0, PB1: chân điều khiển chế độ hoạt động của cầu H thứ nhất VNH2SP30
PD0, PD1: chân điều khiển chế độ hoạt động của cầu H thứ hai VNH2SP30
2.2.7 Kinect Xbox 360
Kinect Xbox 360 là một thiết bị ngoại vi thu chuyển động được hãng Microsoft nghiên cứu chế tạo dựa trên công nghệ cảm biến đo độ sâu dùng hồng ngoại của PrimeSense Kinect được ứng dụng đầu tiên trên thiết bị chơi game Xbox 360 để có thể thu được chuyển động của người chơi chuyển thành lệnh điều khiển trong game Sau đó không lâu
Trang 13với nhu cầu phát triển những ứng dụng sâu hơn cho thiết bị mang công nghệ mới lạ này của những nhà phát triển, Microsoft đã tung ra phiên bản Kinect hỗ trợ giao tiếp PC qua cáp USB 2.0 như hình 12
Hình 12 Camera Kinect Xbox 360 Những thành phần chính của Kinect Xbox 360 gồm có:
Camera RGB có độ phân giải 640x480 pixel và 30 khung hình/giây
Cảm biến độ sâu gồm một máy chiếu chùm tia hồng ngoại và
camera thực hiện chức năng thu hồng ngoại có độ phân giải 320x240 pixel
Dãy đa microphone dọc theo thân Kinect gồm bốn microphone để ứng dụng trong điều khiển bằng giọng nói
Động cơ DC điều khiển góc ngẩng được gắn giữa thân và đế
Kinect giúp thay đổi góc quan sát của các camera
2.3 Lập trình giao tiếp ngoại vi với vi điều khiển
Giới thiệu về thƣ viện Tivaware
Tivaware là một bộ thư viện được viết bởi Texas Instrument cho phép truy cập đến những module ngoại vi của dòng vi điều khiển Tiva một cách dễ dàng Những điểm nổi bậc của bộ thư viện này là:
Được viết hoàn toàn bằng ngôn ngữ C với cấu trúc hàm dễ hiểu, gợi nhớ
Sách hướng dẫn chi tiết cách sử dụng các ngoại vi ở các chế độ thông dụng
Được thiết kế để sử dụng hiệu quả về bộ nhớ và luồng xử lý
Được cập nhật thường xuyên để có thể tối ưu hóa việc sử dụng phần cứng của dòng Tiva
Trang 14vi của hệ thống dựa trên các hàm của thư viện Tivaware
Ví dụ code Điều khiển động cơ DC
void pid_vel_cal(pid* pid_vel_motor, float vel, float
max_response, uint16_t T_sample)
{ pid_vel_motor->pid_err = pid_vel_motor->setpoint - vel;
>p_part = >Kp *
pid_vel_motor->pid_err;
>i_part += >Ki *
pid_vel_motor->pid_err * T_sample;
pid_vel_motor->d_part = pid_vel_motor->Kd *
(pid_vel_motor->pid_err - pid_vel_motor-(pid_vel_motor->pid_err_prev) / T_sample;
pid_vel_motor->pid_result += pid_vel_motor->p_part +
pid_vel_motor-
>i_part + pid_vel_motor->d_part;
// limit output
if (pid_vel_motor->pid_result >
max_response)
pid_vel_motor->pid_result = max_response;
else if (pid_vel_motor->pid_result < -1 *
max_response) pid_vel_motor->pid_result = -1 * max_response;
pid_vel_motor->pid_err_prev = pid_vel_motor->pid_err;
}
Chương 3 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
3.1 Kết luận
Nhóm nghiên cứu hoàn thành thiết kế Robot thám hiểm dựa trên nền tảng IoT với các kết quả như sau:
Về thiết kế phần cứng, nhóm đã hoàn thành thiết kế khung robot cùng với hệ thống nhúng giúp robot di chuyển trong nhà
video được stream từ robot thông qua WebRTC
Vẽ lại được mô hình thực tế
Robot có thể tự di chuyển tìm đường đi và tránh các vật cản để đến đích hoặc bám theo đối tượng