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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[18] B. Williams, G. Klein, and I. Reid. Real-time SLAM relocalisa- tion. In Proc. 11th IEEE International Conference on Computer Vision (ICCV’ 07), Rio de Janeiro, October 2007 Sách, tạp chí
Tiêu đề: Proc. 11th IEEE International Conference on Computer Vision (ICCV’ 07)
[1] B. Williams, G. Klein, and I. Reid. Real-time SLAM relocalisa- tion. In Proc. 11th        , Rio de Janeiro, October 2007 Khác
[2] Stephan Weiss. Vision Based Navigation for Micro Helicopters PhD Thesis, 2012 [3] Stephan Weiss, Markus W. Achtelik, Simon Lynen, Margarita Chli and Roland Siegwart. Real- time Onboard Visual-Inertial State Estimation and Self-Calibration of MAVs in Unknown Environments. in IEEE International Conference on Robotics and Automation (ICRA), 2012 Khác
[4] Stephan Weiss, Davide Scaramuzza and Roland Siegwart, Monocular-SLAM based  navigation for autonomous micro helicopters in GPS-denied environments Journal of , Field Robotics (JFR), Vol. 28, №. 6, 2011, 854-874 Khác
[5] Markus W. Achtelik, Michael Achtelik, Stephan Weiss, and Roland Siegwart. Onboard IMU and Monocular Vision Based Control for MAVs in Unknown In- and Outdoor Environments. in IEEE International Conference on Robotics and Automation (ICRA), 2011.[6           , 2006 Khác
[7] M. Fischler and R. Bolles. Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography. Communcations of the ACM, 24(6):381 395, June 1981.  Khác
[8] Y. Genc, S. Riedel, F. Souvannavong, C. Akinlar, and N. Navab. Marker-less tracking for AR: A learning-based approach. In Proc. IEEE and ACM International        , Darmstadt, Germany, September 2002 Khác
[9] R. I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, second edition, 2004 Khác
[11] B. Jiang and U. Neumann. Extendible tracking by line auto- calibration. In Proc. IEEE and ACM International Symposium on Aug-    , pages 97 103, New York, October 2001.  Khác
[12] R. Koch, K. Koeser, B. Streckel, and J.-F. Evers-Senne. Markerless image-based 3d tracking for real-time augmented reality applications. In WIAMIS, Montreux, 2005 Khác
[13] T. Kurata, N. Sakata, M. Kourogi, H. Kuzuoka, and M. Billinghurst. Remote collaboration using a shoulder-worn active camera/laser. In 8th International     , pages 62 69, Arlington, VA, USA,  2004 Khác
[14] M. Montemerlo, S. Thrun, D. Koller, and B. Wegbreit. FastSLAM 2.0: An improved particle filtering algorithm for simultaneous localization and mapping that Khác
[15] E. Mouragnon, F. Dekeyser, P. Sayd, M. Lhuillier, and M. Dhome. Real time localization and 3d reconstruction. In Proc. IEEE Intl. Conference on Computer Vision , pages 363 370, New York, NY, 2006.  Khác
[16] J. Neira and J. Tardos. Data association in stochastic mapping using the joint compatibility test. In IEEE Trans. on Robotics and Automa- tion, 2001.[17   Proc. IEEE Intl.Conference on Computer Vision and Pattern Recogni-  , pages 652 659,  Washington, D.C., June 2005. IEEE Computer Society Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.2.1 : Hoạt động của luồng ánh xạ - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.2.1 Hoạt động của luồng ánh xạ (Trang 16)
Hình 2.3.1 : Sơ đồ khối hệ điều hà nh ROS - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.3.1 Sơ đồ khối hệ điều hà nh ROS (Trang 20)
Hình 2.3.2 : Sơ đồ tương tác giữa các node và topic - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.3.2 Sơ đồ tương tác giữa các node và topic (Trang 21)
Hình 2.4.2 Thông tin bus usb camera  : - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.2 Thông tin bus usb camera : (Trang 36)
Hình 2.4.1: Camera yokoo - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.1 Camera yokoo (Trang 36)
Hình 2.4.3 : Thông tin về camera - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.3 Thông tin về camera (Trang 37)
Hình 2.4.5 : Hình ảnh rgb từ camera - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.5 Hình ảnh rgb từ camera (Trang 38)
Hình 2.4.4 Danh sách topic  : - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.4 Danh sách topic : (Trang 38)
Hình 2.4.6 : Hình ảnh đa mức xám từ ca mera - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.6 Hình ảnh đa mức xám từ ca mera (Trang 39)
Hình 2.4.7 : Hình ảnh hiệu chỉnh camera - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.7 Hình ảnh hiệu chỉnh camera (Trang 40)
Hình 2.4.8 : Giao diện hiệu chỉnh camera - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.8 Giao diện hiệu chỉnh camera (Trang 40)
Hình 2.4.9 : Hiệu chỉnh camera - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.9 Hiệu chỉnh camera (Trang 41)
Hình 2.4.10 : Kết quả hiệu chỉnh camera - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.10 Kết quả hiệu chỉnh camera (Trang 41)
Hình 2.4.13 : Khởi tạo khung hình chính 1 - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.13 Khởi tạo khung hình chính 1 (Trang 43)
Hình 2.4.12: node rqt_reconfigure - Xá định vị trí ho robot trong nhà sử dụng một amera
Hình 2.4.12 node rqt_reconfigure (Trang 43)

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

TÀI LIỆU LIÊN QUAN