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

Xá định vị trí ho robot trong nhà sử dụng một amera

56 1 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

Tiêu đề Xác định vị trí cho robot trong nhà sử dụng một camera
Tác giả Dương Quốc Hùng
Người hướng dẫn TS. Ngô Lam Trung
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật máy tính
Thể loại luận văn thạc sĩ
Năm xuất bản 2020
Thành phố Hà Nội
Định dạng
Số trang 56
Dung lượng 8,26 MB

Nội dung

Possible values are: Huber, Cauchy, Tukey  ~TrackerMEstimator , default: Tukey: Estimator to be used for bundle adjustment.. Retrieve this value from --the cameracalibrator node  ~Cam_

Trang 1

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

Trang 2



Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ

Họ và tên tác giả luận văn:  

Đề tài luận văn: robot trong  

Trang 4

LỜI CẢM ƠN

Trước hết em xin gửi lời cám ơn chân thành tới các thầy cô và cán bộ giảng dạy tại trường đại học Bách hoa Hà Nội, các thầy cô trong bộ môn ỹ thuật máy tính khoa K k kỹ thuật máy tính và ruyền thông đã tận tình chỉ bảo, giúp đỡ em trong quá trình học tập t

và nghiên cứu khoa học tại trường Các thầy cô không chỉ dạy kiến thức, phương pháp làm việc và nghiên cứu khoa học, mà còn giúp đỡ chúng em trưởng thành hơn trong cuộc sống

Em xin gửi lời tri ân chân thành nhất tới thầy Ngô Lam Trung đã luôn nhiệt tình giúp

đỡ, hướng dẫn và tạo điều kiện tốt nhất giúp em nghiên cứu trong suốt quá trình thực tập tại phòng thí nghiệm CSLAB 505 – Tòa nhà B1 đại học Bác h K hoa Hà Nội

Cuối cùng, em xin gửi lời cám ơn tới gia đình, bạn bè đã giúp đỡ, động viên trong thời gian em học tập và nghiên cứu tại trường.

Hà Nội, tháng năm 20 6 20 Dương Quốc Hùng Viện CNTT&TT ĐH Bách Khoa Hà Nội

Trang 5

Đối tượng và phạm vi nghiên cứu

Trang 6

  



Ký 

Trang 7

MỤC LỤC

LỜI CẢM ƠN 2

DANH MỤC HÌNH ẢNH 7

DANH MỤC TỪ VIẾT TẮT 8

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 9

1.1 Đặt vấn đề 9

1.2 Mục đích nghiên cứu 9

1.3 Đối tượng và phạm vi nghiên cứu 10

1.4 Phương pháp nghiên cứu 10

CHƯƠNG 2 LÍ THUYẾT XÁC ĐỊNH VỊ TRÍ VÀ THUẬT TOÁN PTAM 11

2.1 Cơ sở lí thuyết xác định vị trí 11

2.2 Hệ thống PTAM 11

2.2.1   11

2.2.2  toán SLAM trong PTAM 11

2.2.3  12

2.2.4 Theo dõi (Tracking) 12

2.2.5  15

2.3 PTAM với hệ điều hành ROS 18

2.3.1  18

2.3.2 OS 21

2.3.3  24

2.4 Xây dựng thử nghiệm định vị cho robot trong nhà dùng PTAM 30

2.4.1  30

2.4.2 Xây  34

2.4.3  38

2.4.4  41

2.4.5  45

2.4.6  47

CHƯƠNG 3 KẾT LUẬN 52

3.1 Những công việc đã hoàn thành 52

3.2 Kết quả thử nghiệm 52

3.3 Những hạn chế của thuật toán PTAM 52

3.4 Chú ý khi sử dụng ethzasl_ptam 53

3.5 Hướng phát triển của đồ án trong tương lai 53

TÀI LIỆU THAM KHẢO 54

Trang 8

DANH MỤC HÌNH ẢNH

Hình 2.2.1 : Hoạt động của luồng ánh xạ 15

Hình 2.3.1 : Sơ đồ khối hệ điều hành ROS 19

Hình 2.3.2 : Sơ đồ tương tác giữa các node và topic 20

Hình 2.4.1: Camera yokoo 35

Hình 2.4.2: Thông tin bus usb camera 35

Hình 2.4.3 : Thông tin về camera 36

Hình 2.4.4: Danh sách topic 37

Hình 2.4.5 : Hình ảnh rgb từ camera 37

Hình 2.4.6 : Hình ảnh đa mức xám từ camera 38

Hình 2.4.7 : Hình ảnh hiệu chỉnh camera 39

Hình 2.4.8 : Giao diện hiệu chỉnh camera 39

Hình 2.4.9 : Hiệu chỉnh camera 40

Hình 2.4.10 : Kết quả hiệu chỉnh camera 40

Hình 2.4.11 : Chạy node ptam 41

Hình 2.4.12: node rqt_reconfigure 42

Hình 2.4.13 : Khởi tạo khung hình chính 1 42

Hình 2.4.14 : Khởi tạo khung hình chính 2 43

Hình 2.4.15 : Bản đồ Feature và mặt phẳng 43

Hình 2.4.16 : Vị trí mặt phẳng khi di chuyển camera 44

Hình 2.4.17 : Bản đồ 3D vị trí camera và features 44

Hình 2.4.18 : Cửa sổ vlsam/preview 46

Hình 2.4.19 : Hiển thị đường đi trong rViz 47

Hình 2.4.20: Khoảng cách đơn vị trên bản đồ 48

Hình 2.4.21 : Bản đồ 3D tại vị trí 1 và 2 48

Hình 2.4.22 : Vị trí camera tại điểm 3 48

Hình 2.4.23 : Bản đồ features map trường hợp camera hướng lên trần 49

Hình 2.4.24 : Bản đồ 3D vị trí camera tại điểm 1 và 2 50

Hình 2.4.25 : Bản đồ 3D vị trí camera tại vị trí 3 50

Trang 9

DANH MỤC TỪ VIẾT TẮT

ROS Ros Operating System 

GPS Global Positioning System 

GNSS Global Navigation Satellite

System



IPS Indoor Positioning System 

PTAM Parallel Tracking And Mapping SLAM Simultaneous Localization And

Mapping

H

       ngoài

CPU Central Processing Unit 

Trang 10

 

              camera

Trang 11

1.3 Đối tượng và phạm vi nghiên cứu

 

         trong nhà

1.4 Phương pháp nghiên cứu

 

Trang 12

2.2.1 Giới thiệu hệ thống PTAM

PTAM (Parallel Tracking and Mapping) 

2.2.2 Thuật toán SLAM trong PTAM



 Theo dõi (tracking) 

  (Batch Techniques)

Trang 13

 

    80x60 pixel

2.2.4 Theo dõi (Tracking)

theo dõi (tracking) 

theo dõi (tracking) 

3  

4  ng  

5           



Trang 15

Chất lượng theo dõi (tracking) và sửa lỗi

theo dõi theo dõi  theo dõi

theo dõi  

theo dõi kém Theo dõi             

              



 



Trang 16

Hình 2.2.1 : Hoạt động của luồng ánh xạ

Trang 20

Hình 2.3.1 : Sơ đồ khối hệ điều hà nh ROS

Trong   (packages) có liên quan

 Navigation , gói này

 thân, bánh, c cài   

Trang 22

 m

 type rostopic echo /tên topic.

Trang 24

               Graph khác

ROS Community level

Trang 25

         

                

frame   (transform tf   

 ptam: The main node described here

 remote_ptam: №de for displaying PTAM information and managing PTAM from a remote (ground) station

 ptam_visualizer: №de to store map, keyframe and path information and visualize it in RViz

 cameracalibrator: №de to calibrate the camera Copy the obtained calibration to the fix parameter file

№de ptam

PTAM 

 các  

-máy

           





Trang 27

 vslam/pointcloud point cloud service to visualize 3D points in RViz :

 vslam/keyframes: keyframe service to visualize keyframes in RViz

 PTAM:

 ~Scale double ( , default: 1.0): Scale Range: 0.01  30.0

 ~MotionModelSource (str, default: CONSTANT) selects the source for the : motion model Possible values are: MM_CONSTANT (CONSTANT): use constant motion model., MM_IMU (IMU): use imu orientation for the motion model., MM_FULL_POSE (FULL_POSE): use full pose estimated externally for motion model

 ~MaxPatchesPerFrame double ( , default: 500.0): max features per frame Range: 10.0 to 1000.0

 ~MaxKFDistWiggleMult double ( , default: 3.0): 'distance' after which a new

kf is requested Range: 0.1 to 10.0

 ~UseKFPixelDist bool ( , default: False): use AutoInitPixel as new KF request criteria

Trang 28

 ~DisableCoarse bool ( , default: False): enable/disable coarse tracking

 ~CoarseMinVelocity double ( , default: 0.006): speed above which coarse stage

 ~UpdateSquaredConvergenceLimit double ( , default: 1e-06): limit for convergence in bundle adjustment Range: 0.0 to 1.0

 ~BundleDebugMessages bool ( , default: False): print bundle debug messages

 ~FAS™ethod (str, default: FAST9_nonmax): FAST corner method Possible values are: FAST9 (FAST9): FAST 9, FAST10 (FAST10): FAST 10, FAST9_nonmax (FAST9_nonmax): FAST 9 with nonmax suppression, AGAST12d (AGAST12d): AGAST 12 pixel diamond, OAST16 (OAST16): AGAST 16 pixel circular

 ~Thres_lvl0 int ( , default: 10): threshold for FAST features on level 0 Range: 0

to 255

Trang 29

 ~AdaptiveThrs bool ( , default: False): adaptive threshold for corner extraction

 ~AdaptiveThrsMult double ( , default: 5.0): controls adaptive threshold

to MaxPatches*N corners Range: 0.5 to 20.0

 ~RotationEstimatorBlur double ( , default: 0.75): small images for the rotation estimator blur Range: 0.0 to 10.0

 ~UseRotationEstimator bool ( , default: True): small images for the rotation estimator enable/disable

 ~MiniPatchMaxSSD int ( , default: 100000): MiniPatch tracking threshhold Range: 0 to 10000000

 ~PlaneAlignerRansacs (int, default: 100): number of dominant plane RANSACs Range: 0 to 1000

 ~RelocMaxScore (int, default: 9000000): score for relocalization Range: 0 to

90000000

 ~AutoInit bool ( , default: False): enable auto initialization

 ~AutoInitPixel (int, default: 20): min pixel distance for auto initialization Range: 1 to 100

 ~MaxStereoInitLoops (int, default: 10): max # of loops for stereo initialization Range: 1 to 100

 ~InitLevel (, default: 1): minimal pyramidal level for map initialization Use higher levels on self-similar structures Range 0 to 3

 ~gui (, default: true): enables/disables the graphical feedback Disable this on onboard computers

 ~ImageSizeX (, default: 752): x-dimensions of the input image to be processed

Trang 30

 ~MinTukeySigma (, default: 0.4): Sigma value for Tukey estimator

 ~CandidateMinSTScore (, default: 70): minimal Shi-Tomasi score for a point

to be considered as a candidate feature

 ~Cam_fx (, default: ): Camera focal length in x Retrieve this value from the cameracalibrator node

 ~Cam_fy (, default: ): Camera focal length in y Retrieve this value from the cameracalibrator node

 ~Cam_cx (, default: ): Camera center in x Retrieve this value from the cameracalibrator node

 ~Cam_cy (, default: ): Camera center in y Retrieve this value from the cameracalibrator node

 ~Cam_s (, default: ): Camera distortion factor Retrieve this value from the cameracalibrator node

 ~Calibrator_BlurSigma (, default: 1.0): blur factor for the cameracalibrator

 ~Calibrator_MeanGate (, default: 10): mean value for the cameracalibrator

 ~Calibrator_MinCornersForGrabbedImage (, default: 20): min # of corners for the cameracalibrator

 ~Calibrator_Optimize (, default: 0): optimize flag for the cameracalibrator

 ~Calibrator_Show (, default: 0): show flag for the cameracalibrator

 ~Calibrator_№Distortion (, default: 0): enable/disable distortion flag for the cameracalibrator

 ~CameraCalibrator_MaxStepDistFraction (, default: 0.3): max step for the cameracalibrator

 ~CameraCalibrator_CornerPatchSize (, default: 20): size for patches used in the cameracalibrator

 ~GLWindowMenu_Enable (, default: true): use the openGL window

 ~GLWindowMenu_mgvnMenuItemWidth (, default: 90): openGL window size

 ~GLWindowMenu_mgvnMenuTextOffset (, default: 20): offset   trong openGL window

Trang 31

to display the 3D path of the camera

array for RViz to display KF tripods



đến 60000

 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu

$(lsb_release -sc) main" > latest.list'

/etc/apt/sources.list.d/ros-Cài  keys

 sudo apt-key adv keyserver 'hkp://keyserver.ubuntu.com:80' recv key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 -

Trang 32

 :

 sudo apt update

 sudo apt install ros melodic desktop full - -

1 sudo apt -y update

2 sudo apt -y upgrade

Step 2: Cài  OS Libraries

1 sudo apt -y remove x264 libx264- dev

2 ## Install dependencies

3 sudo apt -y install build-essential checkinstall cmake pkg-config yasm

4 sudo apt -y install git gfortran

5 sudo apt -y install libjpeg8-dev libjasper-dev libpng12-dev

6 sudo apt -y install libtiff5-dev

7 sudo apt -y install libtiff-dev

8 sudo apt -y install libavcodec dev - libavformat- dev

libswscale-dev libdc1394- 22 -dev

Trang 33

14 sudo apt -y install libgtk2.0- dev libtbb- dev qt5 -default

15 sudo apt -y install libatlas-base-dev

16 sudo apt -y install libfaac-dev libmp3lame-dev libtheora- dev

17 sudo apt -y install libvorbis- dev libxvidcore- dev

18 sudo apt -y install libopencore-amrnb-d ev libopencore-amrwb- dev

19 sudo apt -y install libavresample-dev

20 sudo apt -y install x264 v4l -utils

21 # Optional dependencies

22 sudo apt -y install libprotobuf- dev protobuf-compiler

23 sudo apt -y install libgoogle- glog dev - libgflags- dev

24 sudo apt -y install libgphoto2- dev libeigen3- dev libhdf5- dev doxygen

Step 3: Cài  Python Libraries

1 sudo apt -y install python3-dev python3-pip

2 sudo -H pip3 install -U pip numpy

3 sudo apt -y install python3-testresources

C ài  virtualenv virtualenvwrapper modules và   Python virtual environments

1 cd $cwd

2 ############ For Python 3 ############

3 # create virtual environment

4 python3 -m venv OpenCV-"$cvVersion"- py3

5 echo "# Virtual Environment Wrapper" >> ~/.bashrc

6 echo "alias workoncv-$cvVersion=\"source $cwd/Ope nCV

-$cvVersion-py3/bin/activate "" \ >> ~/.bashrc

7 source "$cwd"/OpenCV-"$cvVersion"-py3/bin/activate

8 # now install python libraries within this virtual environment

9 pip install wheel numpy scipy matplotlib image

scikit-learn ipython dlib

10 # quit virtual environment

11 deactivate

Step 4: T opencv and opencv_contrib

1 git clone https://github.com/opencv/opencv.git

Ngày đăng: 26/01/2024, 16:06

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN