turtlebot3入门教程
旨在用于教育,研究,產(chǎn)品原型和愛好應(yīng)用的目的。?
TurtleBot3的目標(biāo)是大幅降低平臺的尺寸和價格,而不會犧牲性能,功能和質(zhì)量。?
由于提供了不同可選,如底盤,計算機和傳感器,TurtleBot3可以通過各種方式進行定制。
turtlebot3入門教程
turtlebot3入門教程-目錄
說明:
- 介紹Turtlebo3是TurtleBot3是一個小型,低成本,完全可編程,基于ROS的移動機器人。
- 它旨在用于教育,研究,產(chǎn)品原型和愛好應(yīng)用的目的。
- TurtleBot3的目標(biāo)是大幅降低平臺的尺寸和價格,而不會犧牲性能,功能和質(zhì)量。
- 由于提供了不同可選,如底盤,計算機和傳感器,TurtleBot3可以通過各種方式進行定制。
?
目錄:
TurtleBot3入門教程-概述
TurtleBot3入門教程-特點
TurtleBot3入門教程-規(guī)格
TurtleBot3入門教程-硬件設(shè)置
TurtleBot3入門教程-PC軟件設(shè)置
TurtleBot3入門教程-SBC軟件設(shè)置
TurtleBot3入門教程-OpenCR軟件設(shè)置
TurtleBot3入門教程-開始使用
TurtleBot3入門教程-遙控
TurtleBot3入門教程-SLAM
TurtleBot3入門教程-導(dǎo)航
TurtleBot3入門教程-LDS
?
參考:
- http://turtlebot3.readthedocs.io/en/latest/
- https://github.com/ROBOTIS-GIT/turtlebot3
- https://github.com/ROBOTIS-GIT/OpenCR
一、入門教程-概述
說明:
- TurtleBot3是一個小型,低成本,完全可編程,基于ROS的移動機器人。
- 它旨在用于教育,研究,產(chǎn)品原型和愛好應(yīng)用的目的。
- TurtleBot3的目標(biāo)是大幅降低平臺的尺寸和價格,而不會犧牲性能,功能和質(zhì)量。
- 由于提供了其他選項,如底盤,計算機和傳感器,TurtleBot3可以通過各種方式進行定制。
- TurtleBot3意愿通過應(yīng)用SBC(單板計算機),深度傳感器和3D打印的最新技術(shù)進步,成為創(chuàng)客運動的中心。
在ROSCon2016上介紹Turtlebot3
- 作者:Yoonseok Pyo,Yoshihiro Shibata,Leon Jung,Darby Lim(ROBOTIS)
- PDF:http://roscon.ros.org/2016/presentations/ROSCon2016_Turtlebot3_ROBOTIS.pdf
- 視頻:https://vimeo.com/187699447
硬件
- Turtlebot3的默認(rèn)組件如下:底盤,電機,車輪,OpenCR板,計算機,傳感器,電池。
- 底盤是華夫板,板支撐,球形腳輪等。底盤的大特征在于Waffle板,這是所有TurtleBot3部件中最大的,但是比手小。
- 該板將提供為注塑成型,并且其實現(xiàn)低成本,但是利用CAD數(shù)據(jù)來3D打印也一樣可用。
- Turtlebot3 Basic是一個兩輪差速驅(qū)動類型的平臺,但也能夠支持不同結(jié)構(gòu)和機械定制如:汽車,自行車,拖車等。
- CAD數(shù)據(jù)發(fā)布到Onshape,這是一個全云3D CAD編輯器。
- 通過使用計算機或甚至通過便攜式設(shè)備通過Web瀏覽器訪問。
- 這里允許協(xié)同完成繪圖和組裝工作。
- CAD模型:
- TurtleBot3基本型號:https://goo.gl/n3bGNr
- TurtleBot3高級版:https://goo.gl/wCDvVI
軟件
-
該軟件以完全開源的形式提供。主要許可證是Apache 2.0許可證。預(yù)計全部資源發(fā)布是2017年第一季度。
-
https://github.com/ROBOTIS-GIT/turtlebot3
-
https://github.com/ROBOTIS-GIT/OpenCR
開源許可證
-
硬件許可證:
- TurtleBot3是一個開源硬件項目,如開源硬件語言原則和定義v1.0所述。
-
軟件許可證:
- 主要軟件是根據(jù)Apache 2.0許可證發(fā)布的。然而,一些資源是根據(jù)根據(jù)許可證3-Clause BSD License/GPLv3。
-
文件許可證:
- 文件根據(jù)CC BY 4.0發(fā)布。
資源
- http://www.turtlebot.com/
- http://turtlebot3.rtfd.io/
- http://wiki.ros.org/Robots/TurtleBot
- https://github.com/ROBOTIS-GIT/open_manipulator
- https://github.com/ROBOTIS-GIT/DynamixelSDK
- https://github.com/ROBOTIS-GIT/dynamixel-workbench
出版物
- IEEE Spectrum: http://spectrum.ieee.org/automaton/robotics/diy/robotis-and-osrf-announce-turtlebot-3-smaller-cheaper-and-modular
- 3D Printing Industry:https://3dprintingindustry.com/news/advances-robotics-made-easier-forthcoming-3d-printed-turtlebot-96844/
- ROBOHUB: http://robohub.org/celebrating-9-years-of-ros/
二、入門教程-特點
?
說明:
- 介紹Turtlebot3主要特點
合作方:
世界上最受歡迎的ROS平臺
- TurtleBot是世界上最受歡迎的開源機器人用于教育和研究。
- 新一代“TurtleBot3”是一種小型,低成本,完全可編程,基于ROS的移動機器人。
- 它旨在用于教育,研究,產(chǎn)品原型和愛好應(yīng)用的目的。
低成本
- TurtleBot是為了從教育和原型研究和發(fā)展的成本意識的需求而建立的。
- TurtleBot3是配備了通用360度LiDAR的SLAM移動機器人中最經(jīng)濟的機器人。
小尺寸
- TurtleBot3 Basic的尺寸為140mm x 140mm x 150mm(長x寬x高)。
- 它的大小是TurtleBot1和2的1/4大小, 甚至可以在背包里攜帶。
ROS標(biāo)準(zhǔn)
- TurtleBot品牌由Open Source Robotics Foundation, Inc. (OSRF)管理,OSRF開發(fā)和管理ROS。如今,ROS已經(jīng)成為世界各地所有機器人的向往參與的平臺。TurtleBot可以集成到現(xiàn)有的基于ROS的機器人,同時也是學(xué)習(xí)ROS的經(jīng)濟實惠的平臺。
結(jié)構(gòu)可擴展性
- TurtleBot3鼓勵用戶使用一些替代選項自定義其機械結(jié)構(gòu):開源嵌入式板(作為控制板),計算機和傳感器。
- Turtlebot3 Basic是一個兩輪差速驅(qū)動類型的平臺,但能夠在許多方面比如結(jié)構(gòu)和機械定制:汽車,自行車,拖車等。
- 延伸想象之外的想法。
移動機器人的模塊化執(zhí)行器
- TurtleBot3允許通過使用2個Dynamixels在車輪關(guān)節(jié)上獲得精確的空間數(shù)據(jù)
- Dynamixel X系列可以通過以下6種操作模式之一進行操作:
- 車輪的速度控制模式
- 扭矩控制模式
- 關(guān)節(jié)的位置控制模式等
- Dynamixel甚至可用于制作移動操縱器,因為它輕巧,但可以用速度,扭矩和位置精確控制
- Dynamixel是使TurtleBot更完善的核心組件。
開源ROS的控制板
- 開源控制板OpenCR,它是軟硬件都開源的,適用于ROS通信的控制板。
- 它具有不僅支持控制Dynamixel而且還支持基本識別任務(wù)的ROBOTIS傳感器,如觸摸傳感器,紅外傳感器,彩色傳感器等。
- 它在板內(nèi)有一個IMU傳感器,以便它可以加強許多精確的控制。
- 該板具有3.3V,5V,12V電源,以加強可用的計算機設(shè)備陣容。
強大的傳感器
- TurtleBot3 Basic使用360°LiDAR。
- TurtleBot3高級型號配備360°激光雷達,但另外還提供了一個功能強大的英特爾?實感?與識別SDK。
- 這將是制作移動機器人的最佳解決方案。
開放源碼
- TurtleBot3的硬件,固件和軟件是作為開源提供的。
- 基本上,TurtleBot3的所有組件都將作為注塑成型提供,并且它實現(xiàn)了低成本,但是也提供用于3D打印的CAD數(shù)據(jù)。
- CAD數(shù)據(jù)發(fā)布到Onshape,這是一個全云3D CAD編輯器。通過使用計算機或甚至通過便攜式設(shè)備通過Web瀏覽器訪問。這里允許協(xié)同完成繪圖,組裝工作。
- 此外,OpenCR板的所有細(xì)節(jié),包括電路圖,PCB Gerber,BOM和固件源也在開源許可下,針對ROS用戶和社區(qū)開源。
三、入門教程-規(guī)格
說明:
- 介紹Turtlebot3規(guī)格
Turtlebot圖:
規(guī)格
?
| 最大平移速度 | 0.22m / s | 0.26m / s |
| 最大轉(zhuǎn)速 | 2.84rad / s(162.72deg / s) | 1.82rad / s(104.27deg / s) |
| 最大有效載荷 | 15kg | 30kg |
| 尺寸(長x寬x高) | 176mm x 138mm x 188mm | 306mm×283mm×143mm |
| 重量(+ SBC +電池+傳感器) | 0.995kg | 1.745kg |
| 攀登門檻 | 10mm以下 | |
| 預(yù)計運行時間 | 2h 30m | 2h |
| 預(yù)計充電時間 | 2h 30m | |
| PC連接 | USB | |
| IMU | 陀螺儀3軸 | |
| 加速度計3軸 | ||
| 磁力計3軸 | ||
| 電源連接器 | 3.3V / 800mA | |
| 5V / 2A | ||
| 12V / 1A | ||
| 插腳 | GPIO 18引腳 | |
| Arduino 32針 | ||
| 音頻 | 幾個可編程蜂鳴聲序列 | |
| 可編程LED | 用戶LED x 4 | |
| 狀態(tài)LED | 板狀態(tài)x 1 | |
| 電池狀態(tài)x 1 | ||
| Arduino LED x 1 | ||
| 紐扣 | 按鈕x 2 | |
| 電池 | 鋰聚合物11.1V 1800mAh / 19.98Wh 5C | |
| 固件升級 | 通過USB /通過JTAG | |
| 充電適配器 | 輸入:100-240V,AC 50 / 60Hz,1.5A @ max | |
| 輸出:12V DC,5A | ||
?
尺寸
- 尺寸數(shù)據(jù)(基本)
- 尺寸數(shù)據(jù)(高級)
組件
-
SBC:
- Intel? Joule? :?http://ark.intel.com/products/96414/Intel-Joule-570x-Developer-Kit
- Raspberry Pi 3 Model B :?https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
-
傳感器:
- Laser Distance Sensor :
?
圖示:
概述
- HLS-LFCD LDS用于TurtleBot3的兩種型號。
- LDS(激光距離傳感器)是將由障礙物檢測收集的數(shù)據(jù)發(fā)送到用于SLAM技術(shù)的主機的傳感器
基本性能規(guī)格
項目規(guī)格 工作電源電壓 5V DC±5% 光源 半導(dǎo)體激光二極管(λ= 785nm) 激光安全 IEC60825-1 Class 1 目前的消費 400mA以下(沖擊電流1A) 檢測距離 120mm?3,500mm 接口 3.3V USART(230,400 bps)每6度42bytes,全雙工選項 環(huán)境光電阻 10,000 lux 或更小 采樣率 1.8kHz 尺寸 69.5(W)×95.5(D)×39.5(H)mm 質(zhì)量 低于125g 測量性能規(guī)格
項目規(guī)格 距離范圍 120?3500mm 距離精度(120mm?499mm) ±15mm 距離精度(500mm?3,500mm) ±5.0% 距離精度(120mm?499mm) ±10mm 距離精度(500mm?3,500mm) ±3.5% 掃描速率 300±10rpm 角范圍 360° 角分辨率 1° 規(guī)范文檔
- 包括內(nèi)容如基本性能,測量性能,機構(gòu)布局,光路,數(shù)據(jù)信息,引腳描述,命令。
在TurtleBot3使用LDS
- HLS-LFCD LDS用于TurtleBot3 Basic和TurtleBot3 Premium。
- 圖示:
?
- Intel? Realsense? R200 :?https://software.intel.com/en-us/RealSense/R200Camera
-
控制板
- OpenCR :?
?
圖示:
概述
- OpenCR是TurtleBot3的主控制器板。
- OpenCR或ROS的開源控制模塊是為ROS嵌入式系統(tǒng)開發(fā)的,提供了完整的開源硬件和軟件。
- Board的所有內(nèi)容包括Schematics,PCB Gerber,BOM和TurtleBot3的固件源可以根據(jù)開源許可證免費分發(fā)給用戶和ROS社區(qū)。
- STM32F7系列是OpenCR板內(nèi)的主芯片,具有非常強大的ARM Cortex-M7浮點單元。
- OpenCR的開發(fā)環(huán)境從支持為年輕學(xué)生的Arduino IDE和Scratch到傳統(tǒng)固件開發(fā)環(huán)境的專家。
- 該板提供一組數(shù)字和模擬輸入/輸出引腳,可從pne電路連接到另一個或內(nèi)置IMU傳感器。
- 該板的通信接口包括與PC通信的USB和用于其他嵌入式設(shè)備的UART,SPI,I2C,CAN。
- 要使用SBC,OpenCR板可以提供最佳解決方案。
- 它支持一些電源輸出:12V,5V,3.3V的SBC和傳感器。
- 它還在兩個外部電源輸入中具有熱插拔功能:電池和SMPS。
規(guī)格
| 微控制器 | STM32F746NGH6 /具有FPU的32位ARMCortex?-M7(216MHz,462DMIPS) |
| 傳感器 | 陀螺儀3Axis,加速度計3Axis,磁力計3Axis(MPU9250) |
| 程序員 | ARM Cortex 10pin JTAG / SWD連接器 |
| USB設(shè)備固件升級(DFU) | |
| 串行 | |
| 擴展引腳 | 32引腳(L 14,R 18)*?Arduino Uno Revision 3連接 |
| 傳感器x 4針 | |
| 擴展連接器x 18針 | |
| 通信電路 | USB(Micro-B USB連接器/ USB 2.0 /主機/ Peripehral / OTG) |
| TTL(JST 3pin / Dynamixel) | |
| RS485(JST 4pin / Dynamixel) | |
| UART x 2 | |
| CAN | |
| LED和按鈕 | LD2(紅/綠):USB通信 |
| 用戶LED x 4:LD3(紅色),LD4(綠色),LD5(藍(lán)色) | |
| 用戶按鈕x 2 | |
| 權(quán)力 | 外部輸入源 |
| 5 V(USB VBUS),7-24 V(電池或SMPS) | |
| 默認(rèn)電池:LI-PO 11.1V 1,800mAh 19.98Wh | |
| 默認(rèn)SMPS:12V 5A | |
| 外部輸出源 | |
| 12V@1A, 5V@4A, 3.3V@800mA | |
| 電源LED:LD1(紅色,3.3 V電源打開) | |
| 復(fù)位按鈕x 1(用于板的電源復(fù)位) | |
| 電源開關(guān)x 1 | |
| 尺寸 | 105(W)×75(D)mm |
| 質(zhì)量 | 60g |
- 從“shore power”(12V,5A SMPS)切換到“移動電源”(電池)的熱插拔:電源板支持不間斷電源(UPS)類型的功能。
?
-
執(zhí)行器
- Dynamixel X series :?http://en.robotis.com/index/product.php?cate_code=10121110
四、入門教程-硬件設(shè)置
?
硬件圖:
組件
- TurtleBot3有兩種不同的型號:Basic和Premium。
- 兩種型號之間的巨大差異是電機,SBC(單板計算機)和傳感器。
- 以下列表顯示了其組件:
?
| 機殼 | Waffle板 | 8 | 24 |
| 35mm板支架 | 4 | 12 | |
| 45mm板支架 | 12 | 10 | |
| 板支持 | 12 | 12 | |
| 鏈輪 | 2 | 2 | |
| 橡膠輪胎 | 2 | 2 | |
| 球腳輪 | 1 | 2 | |
| 鋼球 | 1 | 2 | |
| 螺栓套 | 1 | 1 | |
| 螺母組 | 1 | 1 | |
| 鉚釘 | 6 | 10 | |
| 鉚釘間隔 | 4 | 4 | |
| 夢幻L支架 | ? | 2 | |
| 發(fā)動機 | XL430-W350-T | 2 | ? |
| XM430-W210-T | ? | 2 | |
| Horn for XM430-W210-T | ? | 2 | |
| 控制器 | OpenCR | 1 | 1 |
| 功率 電池 電纜 | SMPS 12V 5A | 1 | 1 |
| AC代碼 | 1 | 1 | |
| LIPO電池11.1V 1800mAh | 1 | 1 | |
| LIPO電池充電器 | 1 | 1 | |
| 電池轉(zhuǎn)換電纜 | 1 | 1 | |
| RaspberryPi電源(5V)電纜 | 1 | ? | |
| 焦耳電源(12V)電纜 | ? | 1 | |
| 通訊 電纜 | 機器人電纜-X3P 100mm | 1 | ? |
| 機器人電纜-X3P 180mm | 1 | 1 | |
| 機器人電纜-X3P 240mm | ? | 1 | |
| USB2.0到microB電纜 | 2 | 2 | |
| SBC | RaspberryPi 3型號B | 1 | ? |
| 英特爾?Joule?570x | ? | 1 | |
| 傳感器 | 激光距離傳感器 | 1 | 1 |
| 英特爾?Realsense?R200 | ? | 1 | |
| 記憶 | MicroSD卡8G | 1 | ? |
| 工具 | 螺絲刀 | 1 | 1 |
| 鉚接工具 | 1 | 1 | |
| Velcro電池 | 1 | 1 | |
| USB2LDS | 1 | 1 | |
| USB3.0集線器 | ? | 1 |
?
裝配
- 每個TurtleBots在箱子里都沒有組裝。按照說明組裝TurtleBot3。
五、入門教程-PC軟件設(shè)置
說明:
- 介紹如何在PC上安裝相關(guān)系統(tǒng)和軟件。
- 測試的系統(tǒng)版本是Ubuntu 16.04.1, ROS版本是Kinetic Kame
安裝Ubuntu
- 在遠(yuǎn)程PC(臺式機或筆記本電腦)中安裝
- 系統(tǒng)版本Ubuntu 16.04.1:
- https://www.ubuntu.com/download/desktop
- https://www.ubuntu.com/download/desktop/install-ubuntu-desktop
安裝ROS版本kinetic和相關(guān)包:
?
wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/kinetic/ros_install.sh && chmod 755 ./ros_install.sh && bash ./ros_install.sh catkin_ws kinetic?
- 詳細(xì)安裝過程:http://wiki.ros.org/kinetic/Installation/Ubuntu
安裝TurtleBot3及依賴包:
- 依賴包:
?
sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-hls-lfcd-lds-driver ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-gmapping ros-kinetic-turtlebot-teleop?
- turtlebot3
?
cd ~/catkin_ws/src/ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git cd ~/catkin_ws && catkin_make?
- 如果catkin_make完成沒有任何錯誤,使用TurtleBot3的準(zhǔn)備將完成。
網(wǎng)絡(luò)配置
- ROS需要IP地址在turtlebot和遠(yuǎn)程PC之間進行通信
- 分別在turtlebot和PC,執(zhí)行如下命令獲得對應(yīng)的IP地址:
?
ifconfig?
- 修改.bashrc
?
gedit ~/.bashrc?
- TURTLEBOT配置如下:
?
ROS_MASTER_URI = http://IP_OF_PC:11311 ROS_HOSTNAME = IP_OF_TURTLEBOT?
- PC配置如下:
?
ROS_MASTER_URI = http://IP_OF_PC:11311 ROS_HOSTNAME = IP_OF_PC?
-
ROS_MASTER 運行在遠(yuǎn)程PC上。
-
讓環(huán)境生效:
?
source ~/.bashrc
六、入門教程-SBC軟件設(shè)置
簡便安裝:
- 在Raspberry Pi 3(TurtleBot3 Basic)通過鏡像安裝Ubuntu MATE和Turtlebot3
- 利用SDcard讀卡器來安裝TurtleBot3 Basic映像
- SD卡的容量應(yīng)大于8 GB,以便安裝TurtleBot3 Basic映像
- 磁盤映像文件包含Ubuntu MATE 16.04.1和ROS kinetic kame
- Raspberry Pi 3鏡像下載:https://goo.gl/uOvWLh
- 鏡像安裝方法:
?
安裝前準(zhǔn)備
- 鏡像系統(tǒng)?官網(wǎng)下載
- 下載Win32DiskImager軟件并安裝?
- 一張Micro SD卡?
- 一塊樹莓派3開發(fā)板
- 樹莓派3電源
- HDMI線
- 支持HDMI的顯示器或電視機
- 一條網(wǎng)線(可選)
- 鍵盤
- 鼠標(biāo)
- 電腦,安裝Windows系統(tǒng)
系統(tǒng)安裝步驟
格式Miscro SD卡為FAT32格式
啟動Win32DiskImager
Image File處選擇Raspbian映像文件
Device處選擇盤符為你讀卡器的盤符
點Write,然后點一下Yes確定操作,開始系統(tǒng)寫入
寫入完成,提示成功
Micro SD卡插入樹莓派,接通電源啟動
?
樹莓派3手工安裝:
- 適用在樹莓派3上安裝(TurtleBot3 Basic)
(1)安裝Ubuntu MATE for Raspberry Pi 3
- 下載Raspberry Pi 3版本的Ubuntu MATE 16.04.1。
- 下載地址:https://ubuntu-mate.org/download/
- 下載鏡像:https://ubuntu-mate.org/raspberry-pi/
- 安裝鏡像:參見上文
(2)為Raspberry Pi 3安裝TurboBot3依賴的ROS包
- 安裝依賴包:
?
sudo apt-get install ros-kinetic-amcl ros-kinetic-rosserial ros-kinetic-map-server ros-kinetic-move-base?
- 安裝ROS:
?
wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/kinetic/ros_install.sh && chmod 755 ./ros_install.sh && bash ./ros_install.sh catkin_ws kinetic?
- 或者采用官方指南:http://wiki.ros.org/kinetic/Installation/Ubuntu
- 安裝turtlebot依賴:
?
sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-hls-lfcd-lds-driver ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-turtlebot-teleop ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view?
- 安裝turtlebot
?
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git cd ~/catkin_ws && catkin_make?
- 如果catkin_make完成沒有任何錯誤,使用TurtleBot3的準(zhǔn)備將完成。
- USB設(shè)置:以下允許將USB端口用于沒有root權(quán)限的OpenCR板
?
wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules?
英特爾?Joule?手工安裝:
- 適用在英特爾?Joule?安裝(TurtleBot3 Premium)
(1)安裝Ubuntu的英特爾?Joule?(TurtleBot3 Premium型號)
-
下載英特爾?Joule?的Ubuntu 16.04版本的映像。
- 鏡像地址:https://developer.ubuntu.com/core/get-started/intel-joule#alternative-install:-ubuntu-desktop-16.04-lts
-
制作可啟動的USB驅(qū)動器來安裝Ubuntu:
- https://software.intel.com/en-us/node/705675#ubuntu
- https://software.intel.com/en-us/node/700692
(2)安裝ROS和軟件包
- 參考樹莓派3的安裝ROS和軟件包方法
七、入門教程-OpenCR軟件設(shè)置
OpenCR
- OpenCR根據(jù)SBC的指令控制Dynamixels。為此,應(yīng)在板中構(gòu)建特定的固件。請參閱說明并配置設(shè)置。
OpenCR的ArduinoIDE設(shè)置
- 按照說明在遠(yuǎn)程PC上獲得OpenCR Arduino開發(fā)環(huán)境
USB端口設(shè)置
- 使OpenCR USB端口能夠在沒有root權(quán)限的情況下上傳Arduino IDE程序。
- 執(zhí)行如下命令:
編譯器設(shè)置
- 由于OpenCR庫是為32位平臺構(gòu)建的,64位PC需要用于Arduino IDE的32位編譯器相關(guān)內(nèi)容:
- 執(zhí)行如下命令:
安裝Arduino IDE
-
OpenCR需Arduino IDE 1.16.0及之后的版本
-
從官方的arduino主頁下載最新版本,地址:https://www.arduino.cc/en/Main/Software
-
將下載的文件解壓縮到所需的文件夾比如用戶的根目錄下tools,并從終端執(zhí)行安裝文件。如下:
mkdir ~/tools
wget
cd ~/tools/arduino-1.16.0
./install.sh -
增加路徑到環(huán)境中:
運行Arduino IDE
- 在linux下,新終端執(zhí)行:
- 圖示:
將OpenCR板移植到Arduino IDE
(1)增加Boards Manager
- 運行IDE,點擊File → Preferences, 復(fù)制如下內(nèi)容到Additional Boards Manager URLs:
-
大概需要20多分鐘完成。
-
如圖:
(2)通過Boards Manager安裝OpenCR軟件包
-
點擊Tools → Board → Boards Manager.
-
圖示:
-
在文本框中鍵入OpenCR以查找包。找到OpenCR by ROBOTIS后,點擊Install.
-
圖示:
-
安裝后,將顯示“INSTALLED”
-
圖示:
-
OpenCR Board列在Tools → Board 中。
-
圖示:
(3)端口設(shè)置
- 此步驟顯示程序上傳的端口設(shè)置。
- OpenCR應(yīng)通過USB端口連接到PC和OpenCR板。
- 選擇Tools → Port → /dev/ttyACM0.
- 圖示:
- /dev/ttyACM0的值可能會根據(jù)不同PC環(huán)境有差異。
(4)調(diào)制解調(diào)器刪除
- 在使用Arduino IDE編程并將程序上傳到OpenCR后,OpenCR將重新啟動并重新連接。
- 同時,Linux的調(diào)制解調(diào)器相關(guān)軟件包將發(fā)送AT命令來管理設(shè)備。
- 因此顯示OpenCR上的連接錯誤,因此此步驟應(yīng)該預(yù)先完成。
(5)Bootloader寫入
- STM32F7xx用于OpenCR板上的主MCU,支持DFU(設(shè)備固件升級)
- 這使MCU的內(nèi)置引導(dǎo)加載程序本身能夠通過使用USB引導(dǎo)DFU協(xié)議,主要用于引導(dǎo)加載程序初始化,恢復(fù)模式和引導(dǎo)加載程序更新
- 最大的優(yōu)點是讓用戶能夠使用USB引導(dǎo)加載程序,無需其他JTAG設(shè)備
- 使用嵌入在MCU中的DFU模式寫入固件,而無需編寫/調(diào)試設(shè)備,例如STLink。
(6)Programmer 設(shè)置
- 選擇Tools → DFU-UTIL
- 圖示:
(7)運行DFU模式
- 按下Reset同時按下Boot鍵,就能激活DFU模式
- 圖示:
(8)下載bootloader
- 點擊Tools → Burn Bootloader
- 圖示:
OpenCR固件的ROS設(shè)置
-
將TurtleBot3固件添加到OpenCR中
-
用于ROS的OpenCR固件(或源)是控制ROS中的Dynamixel和傳感器。
-
固件位于OpenCR示例中,也由board manager下載。
-
初級版本:點擊File → Examples → turtlebot3 → turtlebot_basic → turtlebot3_core
-
高級版本:點擊File → Examples → turtlebot3 → turtlebot_premium → turtlebot3_core
-
點擊Upload上傳到OpenCR板
-
圖示:
八、入門教程-開始使用
啟動TurtleBot3
- [Remote PC]運行ROScore
- [TurtleBot3 SBC]給LiDAR連接到ttyUSB0套接字的讀/寫權(quán)限
- [TurtleBot3 SBC]啟動launch文件
-
如果終端顯示lost sync with device錯誤信息,則說明TurtleBot3的傳感器設(shè)備必須未完全連接
-
現(xiàn)在,用各種遠(yuǎn)程操作方法測試TurtleBot3
?
九、入門教程-遠(yuǎn)程操作
遠(yuǎn)程操作
-
當(dāng)在TurtleBot3的SBC上操作時,以下說明是無用的。
-
在遠(yuǎn)程PC上執(zhí)行此操作。
-
TurtleBot3將由各種設(shè)備遠(yuǎn)程操作。
-
我們使用幾種無線設(shè)備(例如PS3,XBOX 360,ROBOTIS RC100等)對其進行了測試。
-
該示例由ROS在Ubuntu mate 16.04上使用Raspberry Pi 3(除了通過LEAP Motion測試)和OpenCR控制Dynamixel XM-430。
鍵盤控制
- [Remote PC] 安裝軟件包
- [Remote PC] 啟動進行簡單遠(yuǎn)程操作測試
- [Remote PC] 如果文件成功啟動,終端將顯示以下內(nèi)容。
RC100控制
- 使用ROBOTIS RC100的設(shè)置已經(jīng)在ROS的OpenCR固件中,因此沒有更多的必需軟件包
PS3操縱桿
- [Remote PC] 通過藍(lán)牙或USB電纜將PS3操縱桿連接到PC。
- [Remote PC] 安裝PS3操縱桿軟件包
- [Remote PC] 啟動PS3操縱桿的遙控軟件包
XBOX 360操縱桿
- [Remote PC] 通過藍(lán)牙將PS3操縱桿連接到PC。
- [Remote PC] 安裝XBOX 360操縱桿軟件包
- [Remote PC] 運行XBOX 360操縱桿的遙控軟件包
Wii遙控器
- [Remote PC] 通過藍(lán)牙將Wii遙控器連接到PC
- [Remote PC] 安裝Wii遙控器軟件包
- [Remote PC] 運行Wii遙控器的遙控器軟件包
Nunchuk控制
- 待完善
Android控制
- 下載ROS Teleop并運行應(yīng)用程序
LEAP Motion
- [Remote PC] 通過藍(lán)牙將LEAP運動連接到PC。
- [Remote PC] 安裝LEAP Motion軟件包
- https://www.leapmotion.com/setup
- https://developer.leapmotion.com/downloads/sdk-preview
- 簡單安裝方法:
- [Remote PC] 運行LEAP Motion
十、入門教程-SLAM?
說明:
- 介紹如何通過turtlebot3進行SLAM測試
SLAM
- The Simultaneous Localization and Mapping(SLAM)
- 同步定位與地圖構(gòu)建(SLAM或Simultaneous localization and mapping)是一種概念:希望機器人從未知環(huán)境的未知地點出發(fā),在運動過程中通過重復(fù)觀測到的地圖特征(比如,墻角,柱子等)定位自身位置和姿態(tài),再根據(jù)自身位置增量式的構(gòu)建地圖,從而達到同時定位和地圖構(gòu)建的目的。(維基百科)
- SLAM技術(shù)是TurtleBot3的典型功能,是Turtlebot品牌的一類。這里的視頻顯示了TurtleBot3可以繪制多少精確的地圖,即使它是一個小的便宜的機器人平臺。
- 相關(guān)信息:
通過遠(yuǎn)程操作創(chuàng)建地圖
- [Remote PC]打開終端,然后運行SLAM啟動文件
- [Remote PC] 通過Rviz可視化模型
將地圖保存到文件
- [Remote PC] 打開終端,然后運行地圖保存節(jié)點
十一、入門教程-導(dǎo)航?
說明:
- 介紹如何利用Turtlebot3進行導(dǎo)航
- 導(dǎo)航技術(shù)的主要用途是使機器人進入期望的位置。
導(dǎo)航
- [Remote PC]啟動導(dǎo)航文件
- 啟動Rviz
- [Remote PC] 在開始導(dǎo)航之前,TurtleBot3應(yīng)該知道它的位置和姿勢。
- 要給出初始數(shù)據(jù),請按照說明進行操作。
- 點擊2D Pose Estimate按鈕
- 通過單擊并拖動地圖上的方向來設(shè)置地圖上的大致位置。
- 箭頭的每個點意味著TurtleBot3的預(yù)期姿勢。激光掃描儀將在近似位置繪制線條,如地圖上的墻壁。
- 如果圖形沒有顯示線條,請重復(fù)上述過程。
- [遠(yuǎn)程PC]當(dāng)TurtleBot3已經(jīng)定位,它將自動計劃路徑。
- 要發(fā)送目標(biāo)位置:
- 點擊 2D Nav Goal按鈕
- 點擊地圖上你想要的TurtleBot驅(qū)動和拖動方向TurtleBot應(yīng)該指向地方
- 如果目標(biāo)位置的路徑被阻止,這可能會失敗。
- 要在機器人到達目標(biāo)位置之前停止機器人,請發(fā)送TurtleBot3的當(dāng)前位置。
?
參考文檔:
- http : //wiki.ros.org/turtlebot_navigation/Tutorials/Autonomously%20navigate%20in%20a%20known%20map
十二、入門教程-LDS
說明:
- 介紹Turtlebot3的激光雷達LDS
圖示:
概述
- HLS-LFCD LDS用于TurtleBot3的兩種型號。
- LDS(激光距離傳感器)是將由障礙物檢測收集的數(shù)據(jù)發(fā)送到用于SLAM技術(shù)的主機的傳感器
基本性能規(guī)格
| 工作電源電壓 | 5V DC±5% |
| 光源 | 半導(dǎo)體激光二極管(λ= 785nm) |
| 激光安全 | IEC60825-1 Class 1 |
| 目前的消費 | 400mA以下(沖擊電流1A) |
| 檢測距離 | 120mm?3,500mm |
| 接口 | 3.3V USART(230,400 bps)每6度42bytes,全雙工選項 |
| 環(huán)境光電阻 | 10,000 lux 或更小 |
| 采樣率 | 1.8kHz |
| 尺寸 | 69.5(W)×95.5(D)×39.5(H)mm |
| 質(zhì)量 | 低于125g |
測量性能規(guī)格
| 距離范圍 | 120?3500mm |
| 距離精度(120mm?499mm) | ±15mm |
| 距離精度(500mm?3,500mm) | ±5.0% |
| 距離精度(120mm?499mm) | ±10mm |
| 距離精度(500mm?3,500mm) | ±3.5% |
| 掃描速率 | 300±10rpm |
| 角范圍 | 360° |
| 角分辨率 | 1° |
規(guī)范文檔
- 包括內(nèi)容如基本性能,測量性能,機構(gòu)布局,光路,數(shù)據(jù)信息,引腳描述,命令。
在TurtleBot3使用LDS
- HLS-LFCD LDS用于TurtleBot3 Basic和TurtleBot3 Premium。
總結(jié)
以上是生活随笔為你收集整理的turtlebot3入门教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】细说.NET 中的多线程 (一 概
- 下一篇: 【转】TCP/IP协议--TCP的超时和