<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SLAM+語音機器人DIY系列:(五)樹莓派3開發環境搭建——3.裝機后一些實用軟件安裝和系統設置

       溫馨提示

      本篇文章已經收錄在我最新出版的書籍《機器人SLAM導航核心技術與實戰》,感興趣的讀者可以購買紙質書籍來進行更加深入和系統性的學習,購買鏈接如下:

      摘要                                              

      通過前面一系列的鋪墊,相信大家對整個miiboo機器人的DIY有了一個清晰整體的認識。接下來就正式進入機器人大腦(嵌入式主板:樹莓派3)的開發。本章將從樹莓派3的開發環境搭建入手,為后續ros開發、slam導航及語音交互算法做準備。本章內容:

      1.安裝系統ubuntu_mate_16.04

      2.安裝ros-kinetic

      3.裝機后一些實用軟件安裝和系統設置

      4.PC端與robot端ROS網絡通信

      5.Android手機端與robot端ROS網絡通信

      6.樹莓派USB與tty串口號綁定

      7.開機自啟動ROS節點



      3.裝機后一些實用軟件安裝和系統設置 

      雖然我們順利安裝了ubuntu-mate-16.04系統,并且在系統上裝好了ROS-kinetic發行版,為了后面跟高效和便捷的開發,這里將進行一些非常實用軟件的安裝和系統設置。

      3.1.開機自動登錄                   

      裝完系統后第一次開機,會要求設置用戶名和密碼,這里應該設置用戶開機自動登錄,只有登錄后樹莓派3才能自動連接到無線網絡,從而才能遠程控制。如果裝機時已經設置了,請直接跳過這一部分;如果你搞忘記或遺漏了,沒有設置開機自動登錄,也不要緊,用下面的的方法進行自動登錄設置。

      打開文件/usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greet.conf,在[seat:*]節點下修改或添加以下代碼

      autologin-user=ubuntu #ubuntu是要自動登錄的用戶名

      3.2.超級用戶root密碼設置             

      裝完ubuntu-mate-16.04系統后,root用戶默認是沒有密碼的;用普通用戶ubuntusudo權限去設置root用戶的密碼。

      反正我們是用于學習,出于方便記憶的考慮,所以和之前設置ubuntu的用戶名和密碼一樣,這里設置root的用戶名和密碼也一樣,也就是root用戶的密碼也是root。

      ubuntu@ubuntu-desktop:~$ sudo passwd root 
      [sudo] password for ubuntu:    #鍵入ubuntu密碼 
      Enter new UNIX password:       #鍵入root新密碼 
      Retype new UNIX password:      #確認root新密碼 
      passwd: password updated successfully

      root密碼設置成功后,su root登錄進去驗證一下,如果能登錄就設置成功了。

      3.3.擴展SWAP空間                  

      由于后續在樹莓派3上需要編譯一些大型的程序和運行復雜的SLAM算法,默認的物理內存1GB是不夠用的,常常造成卡機死機等現象,這里需要添加SWAP擴展空間,其實就是當系統內存不足時會用硬盤上SWAP分區作為虛擬內存。

      由于我的microSD卡是32GB的,所以可以多分配一些給SWAP,所以分配4GBSWAP空間。具體步驟:

      #先關閉swap
      cd /var 
      sudo swapoff /var/swap 
      
      #重設swap大小1M*4096=4GB,會花較長時間,請耐心等待 
      sudo dd if=/dev/zero of=swap bs=1M count=4096
       
      #格式化 
      sudo mkswap /var/swap 
      
      #開啟swap 
      sudo swapon /var/swap 
      
      #設置開機啟動,在/etc/fstab文件中添加如下代碼 
      /var/swap swap swap defaults 0 0 
      #查看當前已生效的swap 
      swapon -s 
      #查看當前swap使用情況 
      free -m

      3.4.連接wifi網絡                    

      為了讓機器人啟動后,我們能通過網絡遠程訪問,需要給機器人配置好網絡連接,并分配靜態IP,讓機器人開機后就能自動連接wifi。關于設置的內容已經在上面安裝ros-kinetic詳細介紹了,有需要的直接前去翻閱就行。

      3.5.安裝chromium瀏覽器              

      前一段時間,在ubuntu-mate-16.04上安裝ROS后,ubuntu-mate-16.04系統自帶的Firefox瀏覽器不能用了,Firefox最近對這個故障進行了修復。不過為了保險起見,還是推薦安裝谷歌為linux系統推出的瀏覽器chromium,跟我們平時用的聞名于世的chrome瀏覽器是差不多的。安裝很簡單,就一條命令。

      sudo apt-get install chromium-browser

      3.6.安裝vim、ssh工具                 

      vimLinux中一款很經典的代碼文本編輯器,不論是本地還是遠程編輯文本都很強大;ssh功能很強大,不緊可以提供用戶遠程登錄控制系統和編輯文件,還提供命令終端下的scp遠程文件傳輸。安裝很簡單,幾條命令就搞定。

      #安裝vim
      sudo apt-get install vim
      #安裝ssh服務端
      sudo apt-get install openssh-server
      #開啟ssh服務
      sudo service ssh start
      #設置開機自啟動ssh服務,在開機自啟動腳本/etc/rc.local加入下面這條命令,
      #注意加入位置是在exit 0這一句之前
      service ssh start 
      #檢查ssh是否啟動,使用下面命令
      ps -e | grep ssh
      如果輸出中含有ssh-agent和sshd就說明成功了 

      3.7.通過ssh遠程登錄到機器人            

      樹莓派3主板是安裝在miiboo機器人上的,由于機器人要在地上自由移動,給機器人上的樹莓派配一個HDMI顯示器和鼠標鍵盤用于程序調試顯然是不方便的。一個很好的方法是,工作端PC和機器人連接到同一個路由器完成局域網組網,然后PC端用ssh遠程登錄到機器人,這樣就可以在工作PC端對機器人上的程序和文件進行調試開發了。

      ssh遠程登錄方法:

      #在PC端上打開終端,ssh遠程登錄機器人,
      #ubuntu為登錄用戶名,192.168.0.117為登錄機器的IP,根據實際替換
      ssh ubuntu@192.168.0.117
      
      #退出ssh遠程登錄
      exit

      一旦PC端打開的終端窗口ssh遠程登錄機器人后,就可以在該終端下像在機器人上使用終端一樣進行操作了。PC端可以打開多個終端窗口ssh遠程登錄機器人,這樣在不同的終端下可以開啟機器人上不同的程序。

      3.8.在工作PC端遠程編輯機器人上的文件      

      已經介紹了通過ssh遠程登錄機器人的方法,其實可以直接在登入的終端下用vim對機器人上的文件進行查看編輯。但是,如果需要同時編輯多個文件,或對一個軟件項目源碼進行編輯,vim就不方便了。

      這里推薦在PC端安裝IDE開發工具(比較推薦atom,不過sublime text也不錯,根據個人喜好選擇吧),然后將機器人上的系統文件夾遠程掛載在PC端系統,這樣就可以在PC端上用IDE開發工具直接對遠程掛載過來的文件及文件夾進行編輯了。

      PC端安裝IDE開發工具atom很簡單,直接在ubuntu軟件中搜索atom,然后點擊安裝就行了,如圖21

      (圖21)在PC端安裝IDE開發工具atom

      將機器人上的系統文件夾遠程掛載在PC端系統,首先打開[文件]管理器,找到左側欄的[連接到服務器],在服務器地址欄輸入遠程文件地址(如sftp://192.168.0.117/home/ubuntu,這里的sftp是協議,192.168.0.117是遠程設備IP地址,/home/ubuntu是遠程設備中想要被掛載的文件夾請根據實際替換),然后點擊[連接],這是需要輸入遠程設備的登錄名和密碼,如圖22。

      (圖22)將機器人上的系統文件夾遠程掛載在PC端系統

      掛載好后,就可以使用各種我們喜歡的編輯工具對文件夾中的文件進行編輯了,如圖23,不過遠程文件系統掛載會比較占用網路帶寬,不用時建議盡量斷開。

      (圖23)掛載好后的遠程文件夾

      后記              

      ------SLAM+語音機器人DIY系列【目錄】快速導覽------

      第1章:Linux基礎

      1.Linux簡介

      2.安裝Linux發行版ubuntu系統

      3.Linux命令行基礎操作

      第2章:ROS入門

      1.ROS是什么

      2.ROS系統整體架構

      3.在ubuntu16.04中安裝ROS kinetic

      4.如何編寫ROS的第一個程序hello_world

      5.編寫簡單的消息發布器和訂閱器

      6.編寫簡單的service和client

      7.理解tf的原理

      8.理解roslaunch在大型項目中的作用

      9.熟練使用rviz

      10.在實際機器人上運行ROS高級功能預覽

      第3章:感知與大腦

      1.ydlidar-x4激光雷達

      2.帶自校準九軸數據融合IMU慣性傳感器

      3.輪式里程計與運動控制

      4.音響麥克風與攝像頭

      5.機器人大腦嵌入式主板性能對比

      6.做一個能走路和對話的機器人

      第4章:差分底盤設計

      1.stm32主控硬件設計

      2.stm32主控軟件設計

      3.底盤通信協議

      4.底盤ROS驅動開發

      5.底盤PID控制參數整定

      6.底盤里程計標

      第5章:樹莓派3開發環境搭建

      1.安裝系統ubuntu_mate_16.04

      2.安裝ros-kinetic

      3.裝機后一些實用軟件安裝和系統設置

      4.PC端與robot端ROS網絡通信

      5.Android手機端與robot端ROS網絡通信

      6.樹莓派USB與tty串口號綁定

      7.開機自啟動ROS節點

      第6章:SLAM建圖與自主避障導航

      1.在機器人上使用傳感器

      2.google-cartographer機器人SLAM建圖

      3.ros-navigation機器人自主避障導航

      4.多目標點導航及任務調度

      5.機器人巡航與現場監控

      第7章:語音交互與自然語言處理

      1.語音交互相關技術

      2.機器人語音交互實現

      3.自然語言處理云計算引擎

      第8章:高階拓展

      1.miiboo機器人安卓手機APP開發

      2.centos7下部署Django(nginx+uwsgi+django+python3)

       


       

      參考文獻

       

      [1] 張虎,機器人SLAM導航核心技術與實戰[M]. 機械工業出版社,2022.

       

       

       

       

      前言
      編程基礎篇
      第1章 ROS入門必備知識
      1.1 ROS簡介 2
      1.1.1 ROS的性能特色 2
      1.1.2 ROS的發行版本 3
      1.1.3 ROS的學習方法 3
      1.2 ROS開發環境的搭建 3
      1.2.1 ROS的安裝 4
      1.2.2 ROS文件的組織方式 4
      1.2.3 ROS網絡通信配置 5
      1.2.4 集成開發工具 5
      1.3 ROS系統架構 5
      1.3.1 從計算圖視角理解ROS架構 6
      1.3.2 從文件系統視角理解ROS架構 7
      1.3.3 從開源社區視角理解ROS架構 8
      1.4 ROS調試工具 8
      1.4.1 命令行工具 9
      1.4.2 可視化工具 9
      1.5 ROS節點通信 10
      1.5.1 話題通信方式 12
      1.5.2 服務通信方式 15
      1.5.3 動作通信方式 19
      1.6 ROS的其他重要概念 25
      1.7 ROS 2.0展望 28
      1.8 本章小結 28
      第2章 C++編程范式
      2.1 C++工程的組織結構 29
      2.1.1 C++工程的一般組織結構 29
      2.1.2 C++工程在機器人中的組織結構 29
      2.2 C++代碼的編譯方法 30
      2.2.1 使用g++編譯代碼 31
      2.2.2 使用make編譯代碼 32
      2.2.3 使用CMake編譯代碼 32
      2.3 C++編程風格指南 33
      2.4 本章小結 34
      第3章 OpenCV圖像處理
      3.1 認識圖像數據 35
      3.1.1 獲取圖像數據 35
      3.1.2 訪問圖像數據 36
      3.2 圖像濾波 37
      3.2.1 線性濾波 37
      3.2.2 非線性濾波 38
      3.2.3 形態學濾波 39
      3.3 圖像變換 40
      3.3.1 射影變換 40
      3.3.2 霍夫變換 42
      3.3.3 邊緣檢測 42
      3.3.4 直方圖均衡 43
      3.4 圖像特征點提取 44
      3.4.1 SIFT特征點 44
      3.4.2 SURF特征點 50
      3.4.3 ORB特征點 52
      3.5 本章小結 54
      硬件基礎篇
      第4章 機器人傳感器
      4.1 慣性測量單元 56
      4.1.1 工作原理 56
      4.1.2 原始數據采集 60
      4.1.3 參數標定 65
      4.1.4 數據濾波 73
      4.1.5 姿態融合 75
      4.2 激光雷達 91
      4.2.1 工作原理 92
      4.2.2 性能參數 94
      4.2.3 數據處理 96
      4.3 相機 100
      4.3.1 單目相機 101
      4.3.2 雙目相機 107
      4.3.3 RGB-D相機 109
      4.4 帶編碼器的減速電機 111
      4.4.1 電機 111
      4.4.2 電機驅動電路 112
      4.4.3 電機控制主板 113
      4.4.4 輪式里程計 117
      4.5 本章小結 118
      第5章 機器人主機
      5.1 X86與ARM主機對比 119
      5.2 ARM主機樹莓派3B+ 120
      5.2.1 安裝Ubuntu MATE 18.04 120
      5.2.2 安裝ROS melodic 122
      5.2.3 裝機軟件與系統設置 122
      5.3 ARM主機RK3399 127
      5.4 ARM主機Jetson-tx2 128
      5.5 分布式架構主機 129
      5.5.1 ROS網絡通信 130
      5.5.2 機器人程序的遠程開發 130
      5.6 本章小結 131
      第6章 機器人底盤
      6.1 底盤運動學模型 132
      6.1.1 兩輪差速模型 132
      6.1.2 四輪差速模型 136
      6.1.3 阿克曼模型 140
      6.1.4 全向模型 144
      6.1.5 其他模型 148
      6.2 底盤性能指標 148
      6.2.1 載重能力 148
      6.2.2 動力性能 148
      6.2.3 控制精度 150
      6.2.4 里程計精度 150
      6.3 典型機器人底盤搭建 151
      6.3.1 底盤運動學模型選擇 152
      6.3.2 傳感器選擇 152
      6.3.3 主機選擇 153
      6.4 本章小結 155
      SLAM篇
      第7章 SLAM中的數學基礎
      7.1 SLAM發展簡史 158
      7.1.1 數據關聯、收斂和一致性 160
      7.1.2 SLAM的基本理論 161
      7.2 SLAM中的概率理論 163
      7.2.1 狀態估計問題 164
      7.2.2 概率運動模型 166
      7.2.3 概率觀測模型 171
      7.2.4 概率圖模型 173
      7.3 估計理論 182
      7.3.1 估計量的性質 182
      7.3.2 估計量的構建 183
      7.3.3 各估計量對比 190
      7.4 基于貝葉斯網絡的狀態估計 193
      7.4.1 貝葉斯估計 194
      7.4.2 參數化實現 196
      7.4.3 非參數化實現 202
      7.5 基于因子圖的狀態估計 206
      7.5.1 非線性最小二乘估計 206
      7.5.2 直接求解方法 206
      7.5.3 優化方法 208
      7.5.4 各優化方法對比 218
      7.5.5 常用優化工具 219
      7.6 典型SLAM算法 221
      7.7 本章小結 221
      第8章 激光SLAM系統
      8.1 Gmapping算法 223
      8.1.1 原理分析 223
      8.1.2 源碼解讀 228
      8.1.3 安裝與運行 233
      8.2 Cartographer算法 240
      8.2.1 原理分析 240
      8.2.2 源碼解讀 247
      8.2.3 安裝與運行 258
      8.3 LOAM算法 266
      8.3.1 原理分析 266
      8.3.2 源碼解讀 267
      8.3.3 安裝與運行 270
      8.4 本章小結 270
      第9章 視覺SLAM系統
      9.1 ORB-SLAM2算法 274
      9.1.1 原理分析 274
      9.1.2 源碼解讀 310
      9.1.3 安裝與運行 319
      9.1.4 拓展 327
      9.2 LSD-SLAM算法 329
      9.2.1 原理分析 329
      9.2.2 源碼解讀 334
      9.2.3 安裝與運行 337
      9.3 SVO算法 338
      9.3.1 原理分析 338
      9.3.2 源碼解讀 341
      9.4 本章小結 341
      第10章 其他SLAM系統
      10.1 RTABMAP算法 344
      10.1.1 原理分析 344
      10.1.2 源碼解讀 351
      10.1.3 安裝與運行 357
      10.2 VINS算法 362
      10.2.1 原理分析 364
      10.2.2 源碼解讀 373
      10.2.3 安裝與運行 376
      10.3 機器學習與SLAM 379
      10.3.1 機器學習 379
      10.3.2 CNN-SLAM算法 411
      10.3.3 DeepVO算法 413
      10.4 本章小結 414
      自主導航篇
      第11章 自主導航中的數學基礎
      11.1 自主導航 418
      11.2 環境感知 420
      11.2.1 實時定位 420
      11.2.2 環境建模 421
      11.2.3 語義理解 422
      11.3 路徑規劃 422
      11.3.1 常見的路徑規劃算法 423
      11.3.2 帶約束的路徑規劃算法 430
      11.3.3 覆蓋的路徑規劃算法 434
      11.4 運動控制 435
      11.4.1 基于PID的運動控制 437
      11.4.2 基于MPC的運動控制 438
      11.4.3 基于強化學習的運動控制 441
      11.5 強化學習與自主導航 442
      11.5.1 強化學習 443
      11.5.2 基于強化學習的自主導航 465
      11.6 本章小結 467
      第12章 典型自主導航系統
      12.1 ros-navigation導航系統 470
      12.1.1 原理分析 470
      12.1.2 源碼解讀 475
      12.1.3 安裝與運行 479
      12.1.4 路徑規劃改進 492
      12.1.5 環境探索 496
      12.2 riskrrt導航系統 498
      12.3 autoware導航系統 499
      12.4 導航系統面臨的一些挑戰 500
      12.5 本章小結 500
      第13章 機器人SLAM導航綜合實戰
      13.1 運行機器人上的傳感器 502
      13.1.1 運行底盤的ROS驅動 503
      13.1.2 運行激光雷達的ROS驅動 503
      13.1.3 運行IMU的ROS驅動 504
      13.1.4 運行相機的ROS驅動 504
      13.1.5 運行底盤的urdf模型 505
      13.1.6 傳感器一鍵啟動 506
      13.2 運行SLAM建圖功能 506
      13.2.1 運行激光SLAM建圖功能 507
      13.2.2 運行視覺SLAM建圖功能 508
      13.2.3 運行激光與視覺聯合建圖功能 508
      13.3 運行自主導航 509
      13.4 基于自主導航的應用 510
      13.5 本章小結 511
      附錄A Linux與SLAM性能優化的探討
      附錄B 習題
      posted @ 2019-02-21 01:36  小虎哥哥愛學習  閱讀(4604)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产强奷在线播放免费| 久久精品丝袜高跟鞋| 久久精品亚洲国产综合色| 国产成人无码A区在线观看视频| 国产精品区一二三四久久| 亚洲无人区一区二区三区| 国产熟女丝袜av一二区| 精品一卡2卡三卡4卡乱码精品视频| 日韩一区二区三区精品区| 亚洲五月天综合| 国产成人8X人网站视频| 日韩精品无码区免费专区 | 久久毛片少妇高潮| 久久久久久久久久久久中文字幕| 日韩AV片无码一区二区不卡| 欧日韩无套内射变态| 日韩午夜福利片段在线观看| 日本久久99成人网站| 狠狠色丁香婷婷综合尤物| 亚洲三区在线观看内射后入| 日本一区二区三区小视频| 少妇久久久被弄到高潮| av午夜福利一片看久久| 日韩有码中文在线观看| 亚洲综合一区国产精品| 无码熟妇人妻av在线电影| 久久精品亚洲成在人线av麻豆| 啊轻点灬大JI巴太粗太长了在线| 国产精品成人观看视频国产奇米 | 日韩精品二区三区四区| 亚洲成a人片在线观看中| 韩国午夜福利片在线观看| 亚洲av成人免费在线| 亚洲成色精品一二三区| 日韩精品一二区在线观看| 国产AV无码专区亚洲AV漫画| 久久天堂综合亚洲伊人HD妓女| 另类 专区 欧美 制服| 久久久久免费看成人影片| 韩国午夜理伦三级| 国产成人精品亚洲精品日日|