ME5621 Mobile Robot control 

ME5621 Mobile Robot control - Điều khiển Robot tự hành

139139 Sáng Thứ 6, Tiết 4-6, 9h20-11h45 , Mã lớp học trên team:   Teamcode :  8ii2b7m

137622 Chiều Thứ 6, Tiết 10-12, 15h05-17h30 ,  Mã lớp học trên team:   Teamcode :  6tg9n9e 

TỔNG HỢP TÀI LIỆU GOOGLE DRIVE : https://drive.google.com/drive/folders/1jGV8k945jdnORT2_e1FR3VAYauOunl0J?usp=sharing

Project cuối kỳ (Cụ thể cuối page)

I. Bài Tập môn học:

Các bạn copy code file matlab hoặc chụp ảnh minh chứng và nộp  lên  Assignment microsoft team. 

Chú ý: Đặt tên file hay folder HọTên_MSSV  ví dụ, NguyenVanA_20180012

Hướng dẫn cài đặt:

https://sites.google.com/view/bblab/teaching/me5621_mobilerobotcontrol


Bài 1:  Cài đặt UBUNTU và ROS

Các bạn chụp ảnh màn hình máy tính đã chạy ubuntu  và ROS Version nộp lên Team


  https://vinasupport.com/huong-dan-cai-dat-hdh-ubuntu-20-04-lts/

https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

https://www.virtualbox.org/wiki/Downloads

          Cài Ubuntu trên máy ảo Virtual Box

https://www.linuxvmimages.com/images/ubuntu-1804/

https://www.linuxvmimages.com/images/ubuntu-2004/


 Một số bạn không kết nối được wifi, tìm hiểu cách khắc phục trên mạng nhé. Link tham khảo:

https://www.reddit.com/r/Ubuntu/comments/lbl0l5/can_windows_dual_boot_be_messing_with_my_wifi_card/

https://itsfoss.com/fix-no-wireless-network-ubuntu/

 2. Cài đặt hệ điều hành ROS tương ứng với phiên bản ubuntu 18 hoăc 20 :

http://wiki.ros.org/ROS/Installation

ROS Noetic Ninjemys

Released May, 2020

Latest LTS, supported until May, 2025

Recommended for Ubuntu 20.04 

Tạo thư mục cho các dự án ROS

http://wiki.ros.org/catkin/Tutorials/create_a_workspace

Kiểm tra phiên bản Ubuntu 

~$lsb_release -a 

ROS:   ~$ rosversion -d

Nếu hiện noetic thì chạy lệnh như ở dưới, nếu khác ví dụ melodic thì thay từ noetic -> melodic

Cài đặt ros controller :

sudo apt-get install ros-noetic-ros-control ros-noetic-ros-controllers


Bài2:  Tự học 21 bài cơ bản Beginer level trong ROS

http://wiki.ros.org/ROS/Tutorials

Các bạn chụp ảnh màn hình máy tính đã chạy thành công ít nhất 3 bài trong 21 bài trên và nộp lên Team


Bài 3:  Cài đặt và chạy Turtle bot simulation

Các bạn chụp ảnh màn hình máy tính đã chạy được chương trình vào nộp lên microsoft team.:

Tạo catkin space:

http://wiki.ros.org/catkin/Tutorials/create_a_workspace

$ mkdir -p ~/tenmuondat_ws/src

$ cd ~/catkin_ws/src   

Vào thư mục source để tải package bạn cần chạy về ví dụ turtle bot3 simulation

~/catkin_ws/src$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git

~/catkin_ws/src$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git

Tải xong vào thư mục src thì các bạn ra thư mục work space

$ cd ~/catkin_ws/

Bạn nào báo lỗi thiếu package thì chạy lệnh sau để tự động cài package còn thiếu: 

rosdep install --from-paths src --ignore-src -r -y

Sau đó chạy: 

 ~/catkin_ws/$  catkin_make                       (Biên dịch gói turtble bot ra thư mục build và devel để chạy ) 

 ~/catkin_ws/$  source devel/setup.bash     ( Để khai báo với hệ thống gói package vừa cài đặt) 

Muốn hệ thống tự khai báo gói turtle bot các bạn chạy lệnh:

echo "source  ~/catkin_ws/devel/setup.bash" >> ~/.bashrc      (Thêm dòng lệnh vào file bashrc)

Hoặc tương đương với sửa  file : gedit ~/.bashrc 

Thêm dòng: source  ~/catkin_ws/devel/setup.bash vào cuối file. 

Chạy thử : 

Mở 2  command Terminal chạy lệnh 

Terminal 1,2 : 

$ export TURTLEBOT3_MODEL=burger     ( Do có vài loại turtble bot Đặt biến chọn TURTLEBOT3_MODEL là burger ,)

Terminal 1: 

$ roslaunch turtlebot3_gazebo turtlebot3_world.launch

Terminal 2: 

$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

Sau đó điều khiển turtble trên gazebo bằng bàn phím w,s,a,d,x ...

Tham khảo: 

https://automaticaddison.com/how-to-launch-the-turtlebot3-simulation-with-ros/

https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/

https://emanual.robotis.com/docs/en/platform/turtlebot3/nav_simulation/


 Bài 3:  Thiết kế mô hình different drive bot trên gazebo và thêm plugin điều khiển từ ROS

https://www.theconstructsim.com/how-to-build-a-differential-drive-simulation/

Đọc hiểu các dòng lệnh trong file sdf

Các bạn chụp ảnh màn hình máy tính đã chạy được chương trình vào nộp lên microsoft team.

 Bài 4: Tìm hiểu thuật toán tìm kiếm RRT   

https://github.com/RuslanAgishev/motion_planning

Tìm hiểu chỉnh  sửa code 

  Bài 5: Chạy thuật toán tìm kiếm RRT   

https://github.com/mech0ctopus/rrt-global-planner

http://wiki.ros.org/navigation/Tutorials/Writing%20A%20Global%20Path%20Planner%20As%20Plugin%20in%20ROS



 export TURTLEBOT3_MODEL=burger

II. Các bước cài đặt phần mềm phục vụ môn học Điều khiển robot tự hành:

3. Tự học 21 bài cơ bản Beginer level trong ROS

http://wiki.ros.org/ROS/Tutorials


4. Cài đặt và chạy Turtle bot simulation

Tạo catkin space:

http://wiki.ros.org/catkin/Tutorials/create_a_workspace

$ mkdir -p ~/tenmuondat_ws/src

$ cd ~/catkin_ws/src   

Vào thư mục source để tải package bạn cần chạy về ví dụ turtle bot3 

~/catkin_ws/src$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git

Tải xong vào thư mục src thì các bạn ra thư mục work space

$ cd ~/catkin_ws/

Bạn nào báo lỗi thiếu package thì chạy lệnh sau để tự động cài package còn thiếu: 

rosdep install --from-paths src --ignore-src -r -y

Sau đó chạy: 

catkin_make

source devel/setup.bash

Cài đặt và chạy Turtle bot simulation

https://github.com/ROBOTIS-GIT/turtlebot3.git

https://automaticaddison.com/how-to-launch-the-turtlebot3-simulation-with-ros/

https://emanual.robotis.com/docs/en/platform/turtlebot3/nav_simulation/

Chụp ảnh chạy Rviz và Gazebo robot đang tự di chuyển và xây dựng bản đồ

Lập trình python chạy giao diện điều khiển robot:

https://drive.google.com/drive/folders/1htjZcBOgl_FhC8FPWRVxY11PIwfaXsAx?usp=sharing

B1: 

$ export TURTLEBOT3_MODEL=burger

$ roslaunch turtlebot3_gazebo turtlebot3_world.launch

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

B2:

$ export TURTLEBOT3_MODEL=burger

$ roslaunch turtlebot3_navigation turtlebot3_navigation.launch

B3: 

~/PycharmProjects/send_goal_GUI$ python send_goal_GUI.py

Tham khảo:  Keyword: tkiter python gui, Sending Goals to the Navigation Stack - Python

https://realpython.com/python-gui-tkinter/

https://hotblackrobotics.github.io/en/blog/2018/01/29/action-client-py/


5. Cài đặt và chạy pibot:

      Chay ban do cả 3 terminal cần chạy các dòng lệnh sau: 

      echo $ROS_IP   // Kiểm tra biến tham số ROS đã cài chưa

      export ROS_IP=$(hostname -I | awk '{print $1;}')

      export ROS_HOSTNAME=$ROS_IP

      export ROS_MASTER_URI=http://$ROS_HOSTNAME:11311

      export TURTLEBOT3_MODEL=burger

      export ROS_MASTER_URI=http://192.168.1.101:11311 

      Terminal 1: Chạy điều khiển

      rosrun teleop_twist_keyboard teleop_twist_keyboard.py 

     roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

Project cuối kỳ:

(Nhóm từ 2-5 thành viên (không nhiều hơn 5, không ít hơn 2, bạn nào lẻ phải chủ động tự tìm nhóm để ghép vào):

NỘP OFFLINE  BÁO CÁO vào buổi bảo vệ và ký xác nhận

139139 Sáng T6, Tiết 4-6 Điều khiển Robot tự hành Sáng T6, Tiết 4-6, D7-505, Tuần: 2-10,12-15,18-21

137622  Chiều T6, Tiết 9-12 Điều khiển Robot tự hành , D5-504, Tuần: 2-10,12-15,18-21 

NỘP ONLINE  BÁO CÁO tại:

Các bạn tải file lên Link Google Drive Folder trong đó  cha thuyết minh đồ án, bản vẽ, code lập trình, video chạy thực tế, ....

Chú ý: Đặt tên file hay folder HọTên_MSSV  ví dụ, NguyenVanA_20180012

            Độ dài: 8 - 10 trang, Có trang phân công nhiệm vụ từng thành viên của nhóm.

NHỚ BẬT CHẾ ĐỘ SHARE  sau đó chia sẻ link lên Google sheet sau:

T4-6 Thứ 6 

File google drive

https://docs.google.com/spreadsheets/d/1FfeUn88Z95YGqxxPlvrPaoiSMNlaR1KwQEb-lmX4W0c/edit?usp=sharing

T9-12 Chiều Thứ 6

https://docs.google.com/spreadsheets/d/1GomuKz5mGBSgnwyCQbWbquWLKO3Gz58x7qqPBhPR5iU/edit?usp=sharing

Mẫu báo cáo cuối kỳ:

https://docs.google.com/document/d/1JDUE5Kima3DLZJdCL-pFhql79XD1H6R4n0R3FZappww/edit?usp=sharing

Mẫu Slide: 

Mẫu sanh sách thi cuối kỳ: 

https://docs.google.com/spreadsheets/d/1gPR1AZlPaGKPGEsL2GeOlEx0WVcmN1YzOvuA7MgLELU/edit?usp=sharing


1. Nội dung báo cáo cuối kỳ: 

- Thiết kế một robot tự hành (Loại 3 banh Omni, 2 bánh thường, 4 bánh thường ..) (Sản phẩm thực tế (Khuyến khích) hoặc mô phỏng trên gazebo)  và lập trình giao diện GUI (Python, c++,..) để làm 1 hoặc nhiều nhiệm vụ sau: 

- Robot di chuyển qua các điểm đặt trước, tránh vật cản

- Robot xử lý ảnh đi theo người hoặc di chuyển theo biển chỉ dẫn ( Trái, phải, đi thẳng, quay đầu...)

- Các nhiệm vụ khác do sinh viên tự sáng tạo. 

2. Yêu cầu

- Tiểu luận (nộp) 

+ Giới thiệu đề tài

+ Phương pháp giải quyết vấn đề

+ Các kết quả đạt được

+ Kết luận 

3. Tính điểm

- Báo cáo trên lớp + tiểu luận + mô hình robot : 7 điểm

- Điều khiển chạy theo quỹ đạo đặt trước chạy SLAM: +1 điểm

- Tự thiết kế các thuật toán SLAM A*, RRT, RRT*  : +1 điểm

- Kết nối camera và có xử lý ảnh : + 1 điểm



Một số mô hình xe tự hành dùng Omni Wheel 

2. Autonomous Navigation Mobile Robot using ROS | Jetson Nano | RPLidar | Differential Drive Kinematics

3. NVIDIA JetBot: Jetson Nano Vision-Controlled AI Robot

4. 3WD Omni Wheel Arduino Robot Car C008

Một số mô hình xe tự hành  2 bánh

1. Autonomous mobile platform with vacuum cleaning 

2. Autonomous mobile platform with vacuum cleaning