1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐIỀU KHIỂN ROBOT tự HÀNH đề tài ứng dụng SLAM trong điều khiển robot tự hành (ROBOT dạng 2 bánh – differential drive)

45 32 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 2,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Điều khiển robot tự hành Giảng viên TS Bùi Đình Bá TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CƠ KHÍ BỘ MÔN CƠ ĐIỆN TỬ ĐIỀU KHIỂN ROBOT TỰ HÀNH Đề tài Ứng dụng SLAM trong điều khiển robot tự hành (ROBOT dạng 2 bánh – Differential Drive) Giảng viên hướng dẫn TS Bùi Đình Bá Nhóm sinh viên thực hiện Nhóm 14 Lê Xuân Tùng ( 20170979) Nguyễn Văn Tùng ( 20170987) Nguyễn Văn Việt ( 20170955) Hà Nội, tháng 6 năm 2021 Lê Xuân Tùng, Nguyễn Văn Tùng, Nguyễn Văn Việt Điều khiển robot tự hành Giảng viên TS Bùi Đì.

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CƠ KHÍ

BỘ MÔN CƠ ĐIỆN TỬ -* -

ĐIỀU KHIỂN ROBOT TỰ HÀNH

Đề tài: Ứng dụng SLAM trong điều khiển robot tự hành

(ROBOT dạng 2 bánh – Differential Drive)

Giảng viên hướng dẫn: TS Bùi Đình Bá Nhóm sinh viên thực hiện: Nhóm 14

Lê Xuân Tùng ( 20170979)Nguyễn Văn Tùng ( 20170987)Nguyễn Văn Việt ( 20170955)

Hà Nội, tháng 6 năm 2021

Trang 3

BẢN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Giáo viên hướng dẫn: TS Bùi Đình Bá

Nhóm sinh viên thực hiện: Lê Xuân Tùng, Nguyễn Văn Tùng, Nguyễn Văn Việt

1 Nội dung

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

2 Nhận xét của giáo viên hướng dẫn ………

………

………

………

………

………

………

Hà Nội, ngày……….tháng………năm Giáo viên hướng dẫn ký tên

Trang 4

MỤC LỤC

Chương 1: Tổng quan về robot 2 bánh chủ động (Differential Drive Robot) 81.1 Giới thiệu robot 2 bánh (Differential Drive Robot - DDR): 8

1.1.2 Nguyên lý di chuyển, mô hình động học thuận của robot: 101.2 Tổng quan cơ cấu chấp hành, mạch điện của robot Omni 12

2.2.1 Thuật toán xây dựng bản đồ (mapping): 22

2.3.4 Thuật toán lập kế hoạch đường đi (path planning): 33

4 Nền tảng cho máy tính PC: ROS Melodic trên nền Ubuntu 18.04 42

Trang 5

5 Nền tảng cho máy tính nhúng Raspberry Pi: ROS Kinectic trên nền

Ubuntu 16.04, sử dụng Lubuntu của Ubiquity Robot: 42

Trang 6

DANH MỤC HÌNH ẢNH

Hình 1 16 Module chuyển đổi USB sang UART CP2102 15

Hình 2 5 Một phần dữ liệu nhận được từ Lidar 23Hình 2 6 Rviz mô phỏng lại dữ liệu nhận được từ scan 23Hình 2 7 Tạo map bằng gmapping không sử dụng laser scan matcher 25Hình 2 8 Tạo map sử dụng gmapping kết hợp laser scan matcher 26

Trang 7

Hình 2 22 Mô tả thuật toán Dijkstra 37

Trang 8

LỜI MỞ ĐẦU

Cùng với cuộc phát triển của con người, các ngành khoa học kỹ thuậtkhông ngừng tìm kiếm ra các công nghệ mới, đặc biệt là robot đang dần thaythế các công việc của con người Để robot hoạt động được, ta không chỉ cần cómột phần cơ cấu chấp hành hoàn hảo mà còn cần cả một bộ điều khiển để đápứng các nhu cầu điều khiển robot Tuy nhiên, chỉ khi có một bộ não hoàn hảo,robot mới có thể hoạt động một cách chính xác Chính vì vậy trong quá trìnhđiều khiển robot, chúng ta cần sử dụng các thuật toán điều khiển, các hàm điềukhiển để làm cho hệ thống ổn định, ít ảnh hưởng với nhiễu nhất có thể Các bộđiều khiển ngày nay đã và đang đáp ứng được rất nhiều yêu cầu điều khiển phứctạp Do đó, điều khiển thông minh trên robot ngày càng được chú trọng và ứngdụng rộng rãi trong các ngành công nghiệp, thay thế cho các hoạt động của conngười trong các môi trường độc hại, nguy hiểm Và robot tự hành là một trongcác loại robot được ứng dụng rộng rãi nhất

Robot tự hành có rất nhiều loại, với nhiều ứng dụng khác nhau ví dụ nhưrobot phun khử khuẩn trong dịch covid 19, robot hút bụi, Đặc điểm của cácloại robot tự hành đang sử dụng phổ biến hiện nay đều là các robot di chuyểnbằng bánh xe Và đơn giản và dễ điều khiển, dễ ứng dụng nhát đó là loại robot 2bánh (differential drive robot)

Vì vậy, trong khuôn khổ môn học Điều khiển robot tự hành , chúng em

lựa chọn đề tài “Ứng dụng SLAM trong điều khiển robot tự hành” để tiến hành

nghiên cứu và điều khiển robot Và trong bài tập lớn này, chúng em lựa chọnbài toán như sau:

Sử dụng RP-Lidar để quét map và định vị cho robot trong môi trường,sau đó dùng Path Planning để đưa ra điểm đích cho robot, robot sẽ tự động tínhtoán, tìm ra đường đi và đi đến vị trí đó Phần lập bản đồ, định vị và pathplanning được điều khiển trên nền tảng ROS trên linux, sau đó gửi về bộ điềukhiển trung tâm để điều khiển robot

Em xin cảm ơn thầy Bùi Đình Bá đã nhiệt tình hướng dẫn cho chúng emtrong môn học Trí tuệ nhân tạo trong robot này, kính chúc thầy có nhiều sứckhỏe!

Trang 9

PHÂN CHIA CÔNG VIỆC

Để hoàn thành bài tập lớn này chúng em đã tiến hành phân chia công việc nhưsau:

Lê Xuân Tùng: Lập trình điều khiển robot, ghép nối hệ thống PC vàrobot, test robot, thuyết trình

Nguyễn Văn Tùng: Nghiên cứu, ghép nối Raspberry Pi với lidar, sử dụngROS trên linux, ghép nối các package để hoàn thành hệ thống SLAM chorobot

Nguyễn Văn Việt: Tìm hiểu về Mapping, amcl và các thuật toán định vịrobot trong môi trường, tìm hiểu package amcl trên ROS Hỗ trợ làmslide thuyết trình

Trang 10

Chương 1: Tổng quan về robot 2 bánh chủ động

(Differential Drive Robot)1.1 Giới thiệu robot 2 bánh (Differential Drive Robot - DDR):

Robot DDR là một loại mobile robot di chuyển nhờ 2 động cơ riêng biệtđược đặt ở 2 bên của robot Nó có thể thay đổi hướng nhờ việc thay đổi tốc độcủa 2 bánh Thông thường robot loại này thường có thêm từ 1 đến 2 bánh phụ(bánh bị động) hay còn gọi là bánh đa hướng dùng để dẫn hướng và giữ thăngbằng cho robot

Hình 1 1 Hình ảnh một số loại robot DDR.

Ở hình trên, 2 bánh màu đen là 2 bánh chủ động, được gắn với động cơ

để điều khiển robot Bánh màu vàng là bánh đa hướng Các robot có thêm 2bánh đa hướng sẽ giữ thăng bằng tốt hơn tuy nhiên 4 bánh sẽ khó đồng phẳngnhau hơn so với loại 3 bánh

Trang 11

Hình 1 2 Một số hình ảnh robot DDR của nhóm.

Hình 1 3 Một số hình ảnh robot DDR của nhóm.

Trang 12

Hình 1 4 Mô hình vẽ 3D robot DDR của nhóm.

1.1.1 Cấu trúc robot của nhóm:

Khung robot được thiết kế với biên dạng hình tròn, bao gồm 3 tầng, tầng trên cùng cố định lidar mà mạch Raspberry Pi, tầng giữa cố định các mạch điều khiển trung tâm STM32 và driver điều khiển động cơ, tầng dưới cùng để pin và động cơ

Robot sử dụng bánh xe thường loại đường kính 65mm và 2 bánh xe đa hướng dạng hình cầu, động cơ giảm tốc có encoder GA25

Hình 1 5 Mô hình thiết kế của nhóm.

1.1.2 Nguyên lý di chuyển, mô hình động học thuận của robot:

Dựa vào những đặc điểm về cách thiết kế khung xe và bánh xe như trên

Trang 13

thì ta có sơ đồ robot như sau:

Hình 1 6 Mô hình động học robot DDR.

Robot DDR với 2 bánh chủ động được bố trí ở 2 bên

- :là tọa độ và góc của robot theo hệ tọa độ cố định

- : là tốc độ tịnh tiến theo phương x,y và tốc độ góc của robot

- : khoảng cách giữa trục của 2 bánh xe

- : vận tốc của các bánh xe, có thể là m/s hoặc rad/s

- : Góc của robot khi chuyển động theo cung tròn với tâm quay ICC

- : Độ dài cung tròn

- : Bán kính cung tròn

Các phương trình động học:

- Vị trí của robot được xác định bởi tọa độ

- Vận tốc tịnh tiến và tốc độ góc của robot:

- Công thức biến đổi vận tốc từ hệ tọa độ cố định sang hệ tọa độ động gắntrên robot Để đơn giản ta gọi vận tốc góc của robot khi quay xung quanhtâm quay ICC với bánh kính R là

- Khi đó ta có:

Trang 14

+ Nếu , robot sẽ đi thẳng Bán kính quay R bằng vô cùng, tốc độgóc của robot bằng 0

+ Nếu , robot quay tròn tại tâm robot Bán kính quay R=0

+ Nếu , robot quay với tâm quay là bánh trái Bán kính quay khi đóbằng 1 nửa khoảng cách giữa 2 bánh xe R=l/2 Ngược lại đối với trườnghợp

+ Trong các trường hợp khác thì robot sẽ chuyển động theo cungtròn với bán kính quay là R xung quanh tâm quay ICC

Phương trình động học thuận của robot:

Vị trí của tâm quay ICC:

Vị trí của robot ở một thời điểm bất kì

1.2 Tổng quan cơ cấu chấp hành, mạch điện của robot Omni

1.2.1 Khối cơ cấu chấp hành bao gồm:

- 2 động cơ giảm tốc GA25 12V có encoder, tốc độ 280RPM

Trang 15

Hình 1 7 Động cơ giảm tốc GA25 12V 280RPM.

Trang 16

Mạch điều khiển chính (main) có vai trò điều khiển các động cơcủa robot Trong quá tr

ình di chuyển của robot, main nhận dữ liệu sai lệch góc từ các cảmbiến như (la bàn, camera) để tính toán cấp xung điều khiển robot mộtcách chính xác

- La bàn số (cảm biến gia tốc góc MPU6050 kết hợp với bộ xử lý)

Hình 1 10 La bàn số.

La bàn số có nhiệm vụ tính toán góc quay của robot trong quá trình

di chuyển, sau đó gửi dữ liệu về main để main tính toán đưa ra vận tốc

phù hợp cho các bánh robot

- Nguồn nuôi robot: Pin lithium 3cell

Hình 1 11 Pin lithium.

- Máy tính nhúng Raspberry Pi 3:

Trang 17

Hình 1 12 Máy tính nhúng Raspberry Pi 3.

Máy tính nhúng Pi có nhiệm vụ làm master cho ROS, chạy chươngtrình lidar, sau đó thông qua ROS publish các thông tin về máy tính đểmáy tính xử lý quá trình tạo map cũng như định vị cho robot Sau khithực hiện xong, máy tính giao tiếp với pi thông qua các Node để đưa ratín hiệu điều khiển xuống main

- RP Lidar A1

Hình 1 13 RP Lidar A1.

Cảm biến Laser Radar (Lidar) RPLIDAR A1 360°Laser RangeScanner được sản xuất bởi hãng SLAMTEC được sử dụng cho các ứngdụng phát hiện vật cản, lập bản đồ bằng tia Laser trong xe, robot tự hành,

hệ thống chống trộm, , cảm biến có độ ổn định và độ chính xác cao

- 2 Driver điều khiển động cơ:

Trang 18

Hình 1 14 Driver điều khiển động cơ encoder.

Nhận tín hiệu điều khiển từ main và xuất ra động cơ cho động cơ

chạy, đồng thời driver này có tích hợp 1 vi điều khiển STM32 để đọc

encoder từ động cơ và tính toán điều khiển bằng PID để đảm bảo tốc độ động cơ

- Module nguồn LM2596

Hình 1 15 Module nguồn LM2596.

Mạch hạ áp pin 12V xuống 5V để nuôi main và máy tính nhúng Raspberry Pi

- Mạch chuyển đổi USB to UART CP2102

Hình 1 16 Module chuyển đổi USB sang UART CP2102.

Trang 19

Mạch chuyển đổi dữ liệu từ cổng USB qua dữ liệu dạng UART để

vi điều khiển đọc tín hiệu điều khiển từ Pi

Trang 20

Chương 2: SLAM trong robot tự hành2.1 SLAM là gì:

SLAM (Simultaneous localization and mapping) là hệ thống sử dụngthông tin ảnh thu được từ camera, hoặc Lidar hay 1 số loại cảm biến khác để táitạo môi trường bên ngoài bằng cách đưa thông tin môi trường vào một map (2Dhoặc 3D), từ đó thiết bị (robot, camera, xe) có thể định vị (localization) đang ởđâu, trạng thái, tư thế của nó trong map để tự động thiết lập đường đi (pathplanning) trong môi trường hiện tại

Điều khiển tự động thiết bị robot chia làm 3 vấn đề chính:

1 Định vị (localization)

2 Tái tạo môi trường (mapping)

3 Hoạch định đường đi (path planning)

Ban đầu, hai vấn đề định vị và tái tạo môi trường được nghiên cứu độc lập,tuy nhiên, sau khi nhận thấy:

● Định vị: cần xác định vị trí hiện tại của robot dựa vào bản đồ tái tạo

● Tái tạo bản đồ: cần xác định vị trí của đối tượng trong bản đồ, để xâydựng bản đồ chính xác nhất, ít sai số

Vì thế, trong giai đoạn 1985-1990, Raja Chatila và Jean-Paul Laumond(1985) và Randall Smith (1990) đã đề xuất gộp hai vấn đề với nhau để nghiêncứu Một thời gian sau đó, SLAM ra đời đại diện cho localization và mapping

Để tái tạo môi trường vào map, thực thể phải nhận thông tin các phần tửtrong môi trường xung quanh nhờ các cảm biến.Và hầu như mọi cảm biến đều

bị ảnh hưởng bởi nhiễu và khả năng của chúng có hạn, với 3 cảm biến (sonar,laser, camera) chỉ có thể thu được những vùng cục bộ của môi trường, thêm nữa

là do các thiết bị trên quá đắt, cồng kềnh do trang bị nhiều thiết bị Cảm biếnGPS không thể hoạt động ở dưới nước, ở các hành tinh khác, và ngay cả trongnhà Hệ thống SLAM lỗi khi hoạt động trong môi trường động, môi trường vớiphạm vi quá lớn, môi trường có quá nhiều hoặc quá ít đặc trưng (salientfeatures), khi camera di chuyển không ổn định, và khi các cảm biến xảy ra xungđột Những nguyên nhân này làm cho việc sử dụng chúng vào ứng dụng thực tếkhó khăn

Đã có những nghiên cứu nâng cao độ chính xác của mô hình SLAM bằngcách kết hợp các thông tin thu được từ các cảm biến Tuy nhiên, vấn đề kinh phílàm cho hướng phát triển này ít đi vào thực tế Đồng thời, việc hướng đến tạo ramột sản phẩm tốt, lại rẻ tiền là xu hướng tất yếu của thị trường Và vì vậy,

Trang 21

xây dựng được một mô hình SLAM tốt Điều này dẫn đến sự ứng dụng kiếnthức trong lĩnh vực thị giác máy tính để xử lý và cấu trúc hình ảnh thu được từcamera.

2.2 Mô tả hệ thống robot mà nhóm xây dựng:

- Hệ thống máy tính nhúng Raspberry Pi: Nhận dữ liệu từ lidar, chạy ROS master, gửi lệnh điều khiển xuống main

- Mạch điều khiển (Main) và driver: Nhận lệnh từ Pi và cấp tín hiệuđiều khiển cho Driver điều khiển động cơ

- Hệ thống cảm biến (IMU, Encoder, Lidar): Các cảm biến giúp điều hướng robot và định vị robot

2.2.2 Tổng quan về ROS và khối Navigation Stack:

a) Tổng quan về ROS:

Robot operating system (ROS) là một hệ thống phần mềm có tính linh

Trang 22

các thư viện, công cụ hỗ trợ lập trình, công cụ đồ họa, các công cụ hỗ trợ giaotiếp điều khiển trực tiếp với phần cứng cũng như các thư viện hỗ trợ việc lấy dữliệu từ các cảm biến và các thuật toán phổ biến trong lập trình điều khiển robot.

ROS giúp người dùng có thể dễ dàng kết nối các máy tính ở trên robot(Raspberry pi, Jetson Nano, các loại máy tính nhúng, mini computer, ) vớilaptop để điều khiển hoặc thao tác từ xa

Camera sẽ thu thập dữ liệu từ môi trường, thông qua Camera Node gửitới Master, master sẽ chứa toàn bộ thông tin của hệ thống và giao tiếp với cácnode khác

ROS giúp đơn giản và tiết kiệm thời gian việc lập trình các hành vi phứctạp của robot ROS như là một mạng lưới điểm (node) được kết nối bởi nhiềunode mà mỗi node có nhiệm vụ riêng tương ứng với các thành phần cấu tạo nênrobot Mỗi node riêng có thể được tùy chỉnh phát triển và lập trình theo ý tưởngcủa người phát triển mà không cần quan tâm đến việc phải thống nhất sử dụngcùng một ngôn ngữ lập trình, điều đó có nghĩa là node này bạn phát triển trênngôn ngữ C++ nhưng node khác bạn có thể phát triển trên ngôn ngữ Python.Python và C++ là hai ngôn ngữ nền tảng mà bạn cần phải học trước khi làmquen với ROS

ROS chạy trên nền Ubuntu, do đó bạn phải cài ROS trên nền Ubuntu.Hiện tại có hai phiên bản phổ biến là ROS Melodic và ROS Kinetic, phiên bảnMelodic tương thích và chạy trên Ubuntu 18 trong khi đó Kinetic chạy trên nềnUbuntu 16 Ngoài ra còn có ROS Noetic cho bản Ubuntu 20 Các bạn có thể dễdàng cài đặt ROS theo hướng dẫn trên trang chủ của ROS

Hình 2 SEQ Hình_2 \* ARABIC 2.Ví dụ 1 mô hình

Trang 23

ROS bao gồm các cấu thành bởi các thành phần như hình sau:

Nodes: là đơn vị cơ bản nhằm hỗ trợ giao tiếp với các thành phần cấu

thành nên robot Vì dụ như một con robot thường có các node như Laserscanner, Camera, Node gửi vận tốc đến thiết bị điều khiển động cơ Các nodesnày có thể giao tiếp và tương tác với nhau qua Master

Master: đóng vai trò kết nối các node với nhau Do đó, master luôn được

khởi động đầu tiên bằng cầu lệnh roscore sau đó thì bạn có thể gọi bất kỳ cácnode nào trong hệ thống Sau khi gọi xong, các node có thể kết nối và tương tácvới nhau

Parameter Server: Là một cấu trúc nhiều tham số có thể truy cập trong

lúc chạy ROS Các node sử dụng cấu trúc này nhằm lưu trữ và truy xuất cácthông số trong thời gian chạy Do nó không có hiệu suất cao nên thường dùngvới kiểu dữ liệu tĩnh, chẳng hạn như các thông số cấu hình, thời gian hệ thống

Message: Đây là cấu trúc dữ liệu được các node sử dụng để trao đổi với

nhau tương tự như các kiểu dữ liệu double, int trong các ngôn ngữ lập trình Cácnode tương tác với nhau bằng cách send và receive ROS message

Topics: là phương pháp giao tiếp trao đổi dữ liệu giữa hai node, nó bao

gồm nhiều cấp bậc thông tin mà chúng có thể giao tiếp thông qua ROS message.Hai phương thức trong topic bao gồm publish và subscribe

publish là đăng kí gửi thông tin

subscribe là đăng ký nhận thông tin

Services: Là một giao tiếp trao đổi dữ liệu/ thông tin giữa hai node thông

qua phương thức request và response Thường được áp dụng trong trường hợpviệc thực hiện một lệnh cần nhiều thời gian xử lý nên dữ liệu tính toán được lưu

ở server và sẽ dùng khi cần xử lý

Bags: là một định dạng tệp trong ROS dùng để lưu trữ dữ liệu message

với phần mở rộng là bag có vai trò quan trọng và có thể được xử lý, phân tíchbởi các công cụ mô phỏng trong ROS như Rviz

Hình 2 SEQ Hình_2 \* ARABIC 3 Các thành

Ngày đăng: 23/05/2022, 15:45

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w