1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo môn nhập môn kĩ thuật ngành điện tìm hiểu chung về robot turtlebot 3

24 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 24
Dung lượng 3,61 MB

Nội dung

Ngày nay, ngành Tự động hóa đã phát triển tới trình độ caonhờ những tiến bộ của lý thuyết điều khiển tự động và của những ngànhkhác như điện tử, tin học…Điều đó đã dẫn tới sự ra đời và p

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG ĐIỆN – ĐIỆN TỬ

BÁO CÁO NHẬP MÔN: MÔN NHẬP MÔN KĨ THUẬT NGÀNH ĐIỆN

Tìm hiểu chung về robot TurtleBot 3

Tên sinh viên: HÀ LƯƠNG THÀNH ĐỨC

Chuyên ngành: Kỹ thuật điều khiển & Tự động hóa

Lớp: CTTN Kỹ thuật điều khiển & Tự động hóa K67 Giảng viên hướng dẫn: TS NGUYỄN HOÀI NAM

Tháng 2/2023

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU 3

CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ TURTLEBOT .4

1.1 Tổng quan về turtlebot từ khi ra đời đến nay 4

1.2 Khái quát về turtlebot 3 4

1.3 Đặc tính của turtlebot 3 6

1.3.1 Thông số kỹ thuật

1.3.2 Linh kiện

CHƯƠNG 2 Đặc điểm phần mềm và công nghệ của TURTLEBOT 3 9

2.1 Đặc điểm phần mềm 9

2.2 Công nghệ cốt lõi 11

2.3 Trình điều khiển OPENMANIPULATION 12

CHƯƠNG 3 Hướng dẫn cài đặt máy tính với TURTLEBOT 3 13

3.1 Tải xuống và cài đặt Ubuntu trên PC 14

3.2 Cài đặt ROS trên pc từ xa 14

3.3 Cài đặt gói ROS phụ thuộc 14

3.4 Cài đặt gói Turtlebot 3 14

3.5 Đặt tên mẫu Turtlebot 3 14

3.6 Cấu hình mạng 15

CHƯƠNG 4 Mô Phỏng trên PC từ xa 18

4.1 Mô phỏng Gazebo .18

4.2 Mô phỏng SLAM 19

CHƯƠNG 5 Các câu hỏi thường gặp với TURTLEBOT 3 22

TÀI LIỆU THAM KHẢO 24

2

Trang 3

LỜI MỞ ĐẦU

Tự động hóa đóng vai trò ngày càng quan trọng trong đời sống vàcông nghiệp Ngày nay, ngành Tự động hóa đã phát triển tới trình độ caonhờ những tiến bộ của lý thuyết điều khiển tự động và của những ngànhkhác như điện tử, tin học…

Điều đó đã dẫn tới sự ra đời và phát triển của các loại robot với nhiềumục đích sử dụng khác nhau để phục cho con người Tại bài báo cáo lầnnày, em xin phép được trình bày những hiểu biết của bản thân cùng với sựtìm hiểu qua Internet và báo chí về robot TURTLEBOT 3

Trang 4

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ TURTLEBOT 1.1 Tổng quan về turtlebot từ khi ra đời đến nay

TurtleBot là một robot nền tảng tiêu chuẩn ROS Turtlebot có nguồngốc từ robot Turtle, được điều khiển bởi ngôn ngữ lập trình máy tính giáodục Logo vào năm 1967 Ngoài ra, nút Turtlesim, lần đầu tiên xuất hiệntrong phần hướng dẫn cơ bản của ROS, là một chương trình giống hệ thốnglệnh của chương trình Logoturtle Nó cũng được sử dụng để tạo biểu tượngTurtle như một biểu tượng của ROS Chín dấu chấm được sử dụng tronglogo ROS bắt nguồn từ mai sau của con rùa TurtleBot, có nguồn gốc từTurtle of Logo, được thiết kế để dễ dàng dạy những người mới làm quenvới ROS thông qua TurtleBot cũng như dạy ngôn ngữ lập trình máy tính sửdụng Logo Kể từ đó, TurtleBot đã trở thành nền tảng tiêu chuẩn của ROS,

là nền tảng phổ biến nhất đối với các nhà phát triển và sinh viên

Có 3 phiên bản của mô hình TurtleBot TurtleBot1 được phát triển bởiTully (Giám đốc nền tảng tại Open Robotics) và Melonee (CEO của FetchRobotics) từ Willow Garage trên robot nghiên cứu dựa trên Roomba củaiRobot, Create, để triển khai ROS Nó được phát triển vào năm 2010 vàđược bán từ năm 2011 Năm 2012, TurtleBot2 được phát triển bởi YujinRobot dựa trên robot nghiên cứu, iClebo Kobuki Năm 2017, TurtleBot3được phát triển với các tính năng bổ sung các chức năng còn thiếu của cácphiên bản tiền nhiệm và đáp ứng nhu cầu của người dùng TurtleBot3 sửdụng bộ truyền động thông minh ROBOTIS DYNAMIXEL để lái xe

4

Trang 5

1.2 Khái quát về turtlebot 3

TurtleBot3 là một robot di động dựa trên ROS, kích thước nhỏ, giá cảphải chăng, có thể lập trình để sử dụng trong giáo dục, nghiên cứu, sở thích

và tạo mẫu sản phẩm Mục tiêu của TurtleBot3 là giảm đáng kể kích thướccủa nền tảng và giảm giá mà không phải hy sinh chức năng và chất lượngcủa nó, đồng thời cung cấp khả năng mở rộng TurtleBot3 có thể được tùychỉnh theo nhiều cách khác nhau tùy thuộc vào cách bạn tái cấu trúc các bộphận cơ khí và sử dụng các bộ phận tùy chọn như máy tính và cảm biến.Ngoài ra, TurtleBot3 được phát triển với SBC có kích thước nhỏ và hiệuquả về chi phí, phù hợp với hệ thống nhúng mạnh mẽ, cảm biến khoảngcách 360 độ và công nghệ in 3D

Công nghệ cốt lõi của TurtleBot3 là SLAM , điều hướng và thao tác, khiến nó phù hợp với rô bốt dịch vụ gia đình TurtleBot có thể chạy thuậttoán SLAM (bản đồ hóa và bản địa hóa đồng thời) để xây dựng bản đồ và

có thể lái quanh phòng của bạn Ngoài ra, nó có thể được điều khiển từ xa

từ máy tính xách tay, joypad hoặc điện thoại thông minh chạy hệ điều hànhAndroid TurtleBot cũng có thể đi theo chân của một người khi họ đi lạitrong phòng Ngoài ra, TurtleBot3 có thể được sử dụng như một trình điềukhiển di động có khả năng điều khiển một đối tượng bằng cách gắn mộttrình điều khiển như OPENMANIPULATOR OPENMANIPULATOR có

ưu điểm là tương thích với TurtleBot3 Waffle và Waffle Pi Thông qua khảnăng tương thích này có thể bù đắp cho sự thiếu tự do và có thể hoàn thiệnhơn với tư cách là một robot dịch vụ với SLAM và khả năng điều hướng

mà TurtleBot3 có

Trang 6

Thời gian xạc dự kiến (Expected charging time) 2h30’

SBC (Máy tính bảng đơn)

(216 MHz, 462 DMIPS)

6

Trang 7

Điều khiển từ xa (Remote controller)

-Thiết bị truyền động (Actuator) XL430 – W210LDS (Cảm biến khoảng cách bằng laze)

(Lazor distance sensor)

Cảm biến khoảng cách 360 lazeLDS-01 hoặc LDS-02

-IMU Con quay hồi chuyển 3 trụcGia tốc kế 3 trụcĐầu nối nguồn (Power connectors)

3.3V/800mA5V/4A12V/1A

Arduino 32 chốt

Ngoại vi (Peripheral)

UART x3, có thể x1SPI x112C x1ADC x5

5 pin OLLO x4Cổng DYNAMIXEL (DYNAMIXEL ports) RS485 x3, TTL x3

Âm thanh (Audio) Một số chuỗi tiếng bíp có thể lậptrìnhĐèn LED có thể lập trình (Programmable LEDs) Thành LED x4

Đèn LED trạng thái (Status LEDs)

Bảng trạng thái LED x1Arduino LED x1Power LED x1

Nút và công tắc (Buttons and switches)

Nút ấn x2, nút đặt lại x1, côngtắc nhúng x2Pin (Battery) 1800mAh/19.98Wh 5CLithi polyme 11.1V

Nâng cấp chương trình cơ sở (Firmware update) Qua USB/qua JTAG

Bộ đổi nguồn (SMPS) (Power adaptor)

Đầu vào: 100-240V, AC50/60Hz,1.5A@max Đầu ra: 12V DC, 5A

Trang 8

b Kích thước và khối lượng:

c TurtleBot3 có sẵn ở hai loại mô hình: Burgervà Waffle Pi.

d Sự khác biệt chính giữa hai mô hình là bộ truyền động, SBC (Máy tính bảng đơn) và Cảm biến:

8

Trang 9

CHƯƠNG 2: ĐẶC ĐIỂM PHẦN MỀM VÀ CÔNG NGHỆ CỦA

TURTLEBOT 3

Robot Operation System (ROS) là một framework để viết ứngdụng robot Nó là một tập hợp các công cụ, thư viện và quy ước nhằm mụcđích đơn giản hóa nhiệm vụ tạo ra các hành vi phức tạp và mạnh mẽ củarobot trên nhiều nền tảng robot khác nhau

Bởi vì việc tạo ra phần mềm robot thực sự hữu ích, có mục đích chung

là rất khó Từ các khía cạnh của robot, nhiều vấn đề có vẻ nhỏ nhặt đối vớicon người thực sự có thể bao gồm các biến thể phức tạp giữa các task vàmôi trường

Tất cả các framework phát triển phần mềm đề được áp đặt triết lý củanhững nhà phát triển ra nó ROS cũng tương tự và nó tuân theo triết lý pháttriển phần mềm của Unix ở một số khía cạnh chính Điều này làm cho việctiếp cận ROS của những developer có nền tảng về Unix cảm thấy dễ dànghơn, đối với những developer đến từ các nền tảng chủ yếu về Windowshay MacOS

Hệ điều hành ROS bao gồm nhiều chương trình máy tính nhỏ kết nốivới nhau và liên tục trao đổi thông tin Những thông tin này truyền trực tiếp

từ chương trình này sang chương trình khác; không có trung tâm thực hiệnthao tác "định tuyến" Mặc dù điều này làm cho "hệ thống ống nước" bêndưới phức tạp hơn, nhưng bù lại hệ điều hành hoạt động tốt hơn trong điềukiện dữ liệu lớn hơn

Dựa kiến trúc bền vững của Unix, các hệ thống phần mềm phức tạp cóthể được tạo ra từ nhiều chương trình nhỏ, chung chung Không giống nhưnhiều khuôn khổ framework robot khác, ROS không có môi trườngruntime và phát triển tích hợp chính tắc Các tác vụ như điều hướng mãnguồn, hình dung các kết nối hệ thống, vẽ đồ thị luồng dữ liệu, tạo tài liệu,ghi dữ liệu, v.v đều được thực hiện bởi các chương trình riêng biệt Điềunày khuyến khích việc tạo ra các triển khai mới, cải tiến, vì (lý tưởng là)chúng có thể được trao đổi để triển khai phù hợp hơn cho một miền nhiệm

vụ cụ thể Các phiên bản gần đây của ROS cho phép nhiều công cụ nàyđược tạo thành các quy trình duy nhất để đạt hiệu quả hoặc tạo ra các giaodiện nhất quán cho người vận hành hoặc gỡ lỗi, nhưng nguyên tắc vẫn nhưcũ: bản thân các công cụ riêng lẻ tương đối nhỏ và chung chung

Trang 10

Nhiều tác vụ phần mềm dễ thực hiện hơn bằng các ngôn ngữ “bậc cao”như Python hoặc Ruby Tuy nhiên, đôi khi các yêu cầu về hiệu suất quyđịnh việc sử dụng các ngôn ngữ nhanh hơn, chẳng hạn như C ++ Cũng cónhiều lý do mà một số lập trình viên thích các ngôn ngữ như Lisp hoặcMATLAB Các cuộc chiến tranh email bất tận đã được tiến hành, hiệnđang được tiến hành và chắc chắn sẽ tiếp tục được tiến hành về ngôn ngữnào phù hợp nhất cho một nhiệm vụ cụ thể Thừa nhận rằng tất cả các ýkiến này đều có giá trị, rằng các ngôn ngữ có các tiện ích khác nhau trongcác ngữ cảnh khác nhau và nền tảng riêng của mỗi lập trình viên là cực kỳquan trọng khi chọn ngôn ngữ, ROS đã chọn cách tiếp cận đa ngôn ngữ.Các mô-đun phần mềm ROS có thể được viết bằng bất kỳ ngôn ngữ nào màthư viện máy khách đã được viết Tại thời điểm viết bài, các thư viện máykhách tồn tại cho C ++, Python, LISP, Java, JavaScript, MATLAB, Ruby,Haskell, R, Julia và các thư viện khác Các thư viện máy khách ROS giaotiếp với nhau bằng cách tuân theo một quy ước mô tả cách các thông điệpđược “làm phẳng” hoặc “tuần tự hóa” trước khi được truyền qua mạng Các quy ước ROS khuyến khích những người đóng góp tạo các thưviện độc lập và sau đó gói các thư viện đó lại để họ có thể gửi và nhận tinnhắn đến và từ các mô-đun ROS khác Lớp bổ sung này nhằm cho phép sửdụng lại phần mềm bên ngoài ROS cho các ứng dụng khác và nó giúp đơngiản hóa đáng kể việc tạo các testcase tự động bằng cách sử dụng các công

cụ tích hợp

Phần lõi của ROS được phát hành theo giấy phép BSD, cho phép sửdụng thương mại và phi thương mại ROS truyền dữ liệu giữa các mô-đunbằng cách sử dụng giao tiếp (IPC), có nghĩa là các hệ thống được xây dựngbằng ROS có thể có giấy phép chi tiết cho các thành phần khác nhau củachúng Ví dụ, các hệ thống thương mại thường có một số mô-đun nguồnđóng giao tiếp với một số lượng mô-đun nguồn mở Các dự án học thuật và

sở thích thường hoàn toàn là mã nguồn mở Việc phát triển sản phẩmthương mại thường được thực hiện hoàn toàn sau tường lửa Tất cả cáctrường hợp sử dụng này và hơn thế nữa, đều phổ biến và hoàn toàn hợp lệtheo giấy phép ROS

10

Trang 11

Hình 5 Lưu đồ thuật toán SLAM của robot sử dụng Partical

Filter

2.1 Công nghệ cốt lõi của Turtlebot 3

Để xây dựng bản đồ dạng 2D, TurtleBot là

một phương án được sử dụng phổ biến hiện nay,

đầu ra của gói SLAM được cài đặt trên TurtleBot

sẽ là một bản đồ dạng ảnh 2 chiều, loại bản đồ

thường được sử dụng trong cộng đồng ROS

Hình 4 biểu diễn 1 ví dụ về bản đồ mà TurtleBot

đã quét được Bản đồ được xây dựng rất cơ bản,

khiến việc phân tích của chúng ta trở nên dễ dàng

hơn Như trong hình ảnh thể hiện, vùng màu

trắng là vùng đất trông mà robot có thể tự do di

chuyển, vùng màu đen là vùng bị chiếm bởi vật

cản như (tưởng, bàn ghế, tủ), là những vật cố

định nơi mà robot không thể di chuyển tới, và

cuối cùng là phần màu xám là khu vực chưa được robot khám phá Bản đồ

này sua khi được tạo ra sẽ

loại thuật toán khác nhau

dựa trên nền tảng ROS như

Gmapping, Cartographer,

hector, karto, tuy nhiên sử

dụng phổ biến nhất vẫn là

Gmapping Với dữ liệu cảm biến laser quét 360 độ, TurtleBot vừa có thể

tạo bản đồ, vừa có khả năng tự định vị mình trong bản đồ đó Đối với thuật

toán Gmapping, robot sử dụng bộ lọc của Rao-Blackwellized Particle Filter

để tìm ra tọa độ gần với vị trí thực tế của robot trên bản đồ Hình 2.3 biểu

diễn lưu đồ thuật toán của Particle Filter cho quy trình vừa định vị vừa cập

nhật bản đồ vào cơ sở dữ liệu Cách tiếp cận này sử dụng bộ lọc hạt trong

đó mỗi hạt mang một bản đồ riêng lẻ của môi trường Các hạt sau khi được

tọa từ dữ liệu cảm biến, sẽ được gán cho một trọng số nhất định, sau quá

trình lấy mẫu lại, các hạt có trọng số cao hơn sẽ được giữ lại, các hạt có

trọng số thấp hơn sẽ bị loại trừ, từ đó hạt có trọng số lớn nhất sẽ được chỉ

định là vị trí hiện tại của robot

Hình 4 Bản đồ căn phòng được xây dựng

bởi Turtlebot 3

Trang 12

Quá trình này diễn ra liên tục mỗi khi có dữ liệu từ cảm biến trả về,robot vừa định vị bản thân, vừa cập nhật bản đồ vào cơ sở dữ liệu tại cuốiquá trình

a Điều hướng (Navigation)

Điều hướng là chuyển robot từ một vị trí đến đích chỉ được xác địnhtrong một môi trường nhất định Với mục đích này, cần có một bản đồchứa thông tin cấu hình học của đồ nội thất, đồ vật và tường của môitrường định hình nhất Bản đồ được tạo bằng thông tin khoảng cách màcảm biến thu được và thông tin thay thế của rô-bốt chính

Điều hướng cho phép rô-bốt di chuyển từ tư thế hiện tại sang tư thếmục tiêu được chỉ định trên bản đồ bằng cách sử dụng bản đồ, bộ mã hóacủa rô-bốt, cảm biến IMU và cảm biến khoảng cách Quy trình thực hiệnnhiệm vụ này như sau

b Mô phỏng (Simulation)

TurtleBot3 hỗ trợ môi trường phát triển mô phỏng có thể được lập trình

và phát triển với rô-bốt ảo trong mô phỏng Có hai môi trường phát triển

để thực hiện việc này, một là sử dụng nút giả với công cụ trực quan 3D

RViz và môi trường còn lại là sử dụng Gazebo mô phỏng robot 3D

- Nút giả phù hợp để thử nghiệm với mô hình và chuyển động của robot,nhưng nó không hỗ trợ cảm biến

- Nếu bạn cần thực hiện SLAM hoặc Điều hướng, Gazebo sẽ là một giảipháp khả thi vì nó hỗ trợ các cảm biến như IMU, LDS và máy ảnh Trong hướng dẫn này, Gazebo sẽ được giới thiệu chủ yếu, được sửdụng rộng rãi nhất trong số các nhà phát triển ROS

ROS-enabled OpenManipulator là một nền tảng robot mở đầy đủ baogồm OpenSoftware, OpenHardware và OpenCR (Embedded board) OpenManipulator cho phép người dùng điều khiển nó dễ dàng hơn bằngcách liên kết với MoveIt! bưu kiện Hơn nữa, nó có khả năng tương thíchphần cứng đầy đủ với TurtleBot3 Ngay cả khi bạn không có rô-bốt thực,bạn vẫn có thể điều khiển rô-bốt trong trình giả lập Gazebo

OpenMANIPULATOR dựa trên ROS và OpenSource Nền tảngphần cứng chính thức của ROS, dòng TurtleBot đã và đang hỗ trợTurtleBot Arm OpenMANIPULATOR có khả năng tương thích phần cứnghoàn toàn với TurtleBot3 và cho phép người dùng điều khiển nó dễ dànghơn bằng cách liên kết với MoveIT! bưu kiện Ngay cả khi bạn không córô-bốt thực, bạn vẫn có thể điều khiển rô-bốt trong trình giả lập Gazebo

12

Trang 13

OpenMANIPULATOR được định hướng tới Phần cứng mở Hầu hếtcác thành phần ngoại trừ một số khung được tải lên dưới dạng tệp STL cóthể in 3d Điều này cho phép người dùng sửa đổi độ dài của liên kết và thiết

kế của robot để phù hợp với mục đích sử dụng Trình thao tác mở cũng sửdụng sê-ri Dynamixel X được sử dụng trong TurtleBot3 Dynamixel códạng mô-đun và áp dụng phương pháp chuỗi vòng Điều này cho phépngười dùng dễ dàng thay đổi và thêm các khớp nối để có một số mô-menxoắn và mức độ tự do mà họ cần Tận dụng những ưu điểm này, chúng tôiđang lên kế hoạch tổng cộng bảy loại khác nhau (Ví dụ: Chuỗi, SCARA,Liên kết, Mặt phẳng, Delta, Stewart và Tuyến tính) củaOpenMANIPULATOR

OpenMANIPULATOR cũng có thể được điều khiển thôngqua OpenCR (Mô-đun điều khiển nguồn mở cho ROS), bảng điều khiểncủa TurtleBot3 Khả năng tính toán và điều khiển thời gian thực củaOpenCR được sử dụng để hỗ trợ các ví dụ điều khiển biên dạng thuận,nghịch đảo và điều khiển biên dạng Ngoài ra, OpenCR có thể tương tácvới nhiều chức năng do ROS cung cấp thông qua giao tiếp bằng tin nhắnvới ROS, tính năng này sẽ phát triển thành ROS 2.0 trong tương lai

Ngày đăng: 14/06/2024, 16:35

TỪ KHÓA LIÊN QUAN

w