入門ROS教程視頻匯總(kinetic)(Ros教程)

      網(wǎng)友投稿 1081 2022-05-30

      參考網(wǎng)址: 1 MooreRobots ? ?2 Richard Wang? ? 3 Shawn Chen

      部分視頻網(wǎng)址:?http://v.youku.com/v_show/id_XMjUxMTc5MzE5Mg

      http://i.youku.com/i/UMTg1NDE4MDM2/videos

      注意下面是機(jī)器翻譯結(jié)果~

      MooreRobots

      博客

      關(guān)于

      博客文章

      2016/09/27 15:33

      2016/10/12 03:34

      2016/10/11 03:51

      2016/09/27 04:52

      2016/09/20 04:18

      2016/09/20 02:40

      【概述】獲得通過(guò)模擬在ROS與自主機(jī)器人開始

      RPW

      2016/09/27 15:33

      學(xué)習(xí)打造自主機(jī)器人真的很難,尤其是當(dāng)剛開始關(guān)閉。這源于機(jī)器人的獨(dú)特性,它是非常有必要了解一個(gè)廣泛的跨硬件和軟件的概念。

      1.模擬啟動(dòng)

      ROS仿真是一個(gè)很好的起點(diǎn),以幫助我們從架構(gòu)的角度獲得接觸到機(jī)器人。我們將能夠看到的測(cè)距和激光傳感器數(shù)據(jù)能以某種方式變成導(dǎo)致執(zhí)行有意義的行動(dòng)機(jī)器人運(yùn)動(dòng)指令。不幸的是,它可以是很難找到了最新的教程,不是簡(jiǎn)單地遞給我們一個(gè)全功能的機(jī)器人。

      我們分享我們的工作,展示了如何構(gòu)建從地上爬了涼亭和ROS模擬機(jī)器人。我們希望這將節(jié)省您的時(shí)間。我們已經(jīng)創(chuàng)建了一個(gè)代碼庫(kù),一個(gè)簡(jiǎn)短的一系列寫起坐,和視頻演示我們的模擬機(jī)器人。

      我們的代碼模擬了在ROS中自主導(dǎo)航差分驅(qū)動(dòng)機(jī)器人。寫窗口被分成三個(gè)部分:

      第1部分 :創(chuàng)建一個(gè)涼亭模型與ROS兼容。

      第2部分 :添加必要的感受外界刺激的傳感器

      第3部分 :?jiǎn)⒂米灾鲗?dǎo)航

      2.將物理機(jī)器人

      上的物理機(jī)器人運(yùn)行的代碼帶來(lái)由于硬件變化額外的挑戰(zhàn),環(huán)境的不確定性,以及在物理設(shè)備上測(cè)試的乏味性質(zhì)。

      考慮到這些困難,我們開始用通用的學(xué)習(xí)硬件現(xiàn)成的機(jī)器人,它方便地附帶了固件電機(jī)驅(qū)動(dòng)器和編碼器。請(qǐng)記住,這個(gè)機(jī)器人缺乏必要的傳感器和計(jì)算能力運(yùn)用先進(jìn)的算法,如SLAM。盡管如此,它仍然是非常有趣的,以了解如何適當(dāng)控制發(fā)送到電動(dòng)機(jī),以在期望的軌跡移動(dòng)機(jī)器人(即直線移動(dòng),圓形,方形等)。

      第4部分 :開環(huán)控制通過(guò)差動(dòng)驅(qū)動(dòng)模型的機(jī)器人

      第5部分 :閉環(huán)控制經(jīng)由輪編碼器的傳感器數(shù)據(jù)的機(jī)器人

      希望你現(xiàn)在更好地理解都使自主式機(jī)器人工作所需的部件。祝你好運(yùn)!

      [教程]模擬機(jī)器人模型ROS(第1部分)

      RPW

      2016/09/20 02:40

      ROS的軟件仿真可以幫助您了解如何使機(jī)器人“思考”。畢竟,這是一個(gè)大的飛躍,從線去以下機(jī)器人自動(dòng)駕駛汽車。可以說(shuō),在建設(shè)有用的機(jī)器人的最大挑戰(zhàn)之一就是軟件。通過(guò)ROS,你就能了解如何使用傳感器來(lái)確定機(jī)器人的根本性的挑戰(zhàn)(感應(yīng)),制定計(jì)劃,計(jì)算出機(jī)器人應(yīng)該做的(計(jì)劃),然后計(jì)算命令機(jī)器人執(zhí)行(表演)。

      在本教程中,我們將從頭開始開發(fā)一個(gè)仿真機(jī)器人(嗯......相對(duì)于turtlebot模擬)。有幾個(gè)原因,您可能希望走這條路線。

      通過(guò)編輯URDF模型(這樣你就不會(huì)與turtlebot卡)模擬你自己定制的機(jī)器人

      啟用了可開發(fā)的算法插入軟件和硬件機(jī)器人(因?yàn)橛布倪^(guò)度發(fā)展容易磨損和撕裂)

      暴露于ROS機(jī)器人架構(gòu)(這樣就可以避免重復(fù)從已經(jīng)了解到的設(shè)計(jì)錯(cuò)誤等)

      概述:仿真模型

      目標(biāo):創(chuàng)建在涼亭模擬器是由ROS訪問(wèn)的URDF模型。

      參考文獻(xiàn):有許多有用的教程。他們沒(méi)有完美地工作對(duì)我來(lái)說(shuō)開箱。我懷疑他們是不是跟上時(shí)代的,但它也有可能是我沒(méi)能正確地按照說(shuō)明進(jìn)行操作:

      RRBot

      R2D2

      差分驅(qū)動(dòng)(URDF格式)

      差分驅(qū)動(dòng)(SDF格式)

      結(jié)果:從頭開始建立一個(gè)簡(jiǎn)單的差分驅(qū)動(dòng)模型,模擬在涼亭和rviz可視化的

      庫(kù)代碼

      GIT中克隆-b基https://github.com/richardw05/mybot_ws.git

      視頻演練

      兼容性

      本教程將過(guò)時(shí)隨著時(shí)間的推移毫無(wú)懸念地成為。這是用于此的書面記錄的硬件和軟件:

      ROS:動(dòng)力學(xué)

      操作系統(tǒng):Ubuntu的16.04

      OS:7.0.0涼亭

      內(nèi)存:8GB DDR4

      SSD:三星EVO

      CPU:英特爾酷睿i5

      GPU:GTX 750ti

      目錄結(jié)構(gòu)

      大多數(shù)教程會(huì)聚到以下工作空間結(jié)構(gòu):

      mybot_ws

      SRC

      mybot_control

      配置

      mybot_control.yaml

      發(fā)射

      mybot_control.launch

      的CMakeLists.txt

      package.xml中

      mybot_description

      發(fā)射

      mybot_rviz.launch

      urdf

      macros.xacro

      materials.xacro

      mybot.gazebo

      mybot.xacro

      的CMakeLists.txt

      package.xml中

      mybot_gazebo

      發(fā)射

      mybot_world.launch

      世界

      mybot.world

      的CMakeLists.txt

      package.xml中

      簡(jiǎn)要說(shuō)明:

      mybot_description指定整個(gè)機(jī)器人結(jié)構(gòu)為鏈接和關(guān)節(jié),并且可以在啟動(dòng)rviz模型。

      mybot_gazebo推出在涼亭環(huán)境中的模型,包含不同的仿真世界。

      mybot_control(未使用)能在我們的模型中的關(guān)節(jié)控制,以便它可以左右移動(dòng)。

      要了解更多關(guān)于創(chuàng)建工作區(qū)/包,看看這個(gè)YouTube上的教程。

      創(chuàng)建目錄結(jié)構(gòu)的基本骨架,我們開始與工作空間{WORKSPACE} _ws,這里我們?cè)O(shè){WORKSPACE}?= mybot。

      CD? MKDIR mybot_ws CD mybot_ws 柳絮INIT MKDIR SRC 柳絮構(gòu)建 回聲 “源?/ mybot_ws / devel的/ setup.bash” >>的?/ .bashrc#添加的工作區(qū)進(jìn)行搜索路徑

      src文件夾中有三個(gè)主要的包,{} MODEL _Control,{} MODEL _description,{}模型_gazebo。我們?cè)O(shè)定{}模型?= mybot。要?jiǎng)?chuàng)建一個(gè)包:catkin_create_pkg?{程序包名稱}?{} PKG_DEPENDENCIES。在這種情況下,我們沒(méi)有{} PKG_DEPENDENCIES?=“”。

      CD?/ mybot_ws / src目錄/ catkin_create_pkg mybot_control catkin_create_pkg mybot_description catkin_create_pkg mybot_gazebo

      創(chuàng)建機(jī)器人模型(URDF)

      在?/ mybot_ws / src目錄/ mybot_description / urdf,有四個(gè)文件:

      mybot.xacro:主文件加載其他三個(gè)文件,僅包含URDF項(xiàng)目,如關(guān)節(jié)和鏈接

      mybot.gazebo:包含特定涼亭的標(biāo)簽,包裹內(nèi)嘎斯

      materials.xacro:地圖串色

      macros.xacro:宏來(lái)幫助簡(jiǎn)化

      運(yùn)行模式

      加載在單獨(dú)的終端涼亭模擬器和rviz

      roslaunch mybot_gazebo mybot_world.launch roslaunch mybot_description mybot_rviz.launch

      發(fā)送一基本控制器命令,并確保在兩個(gè)涼亭和rviz機(jī)器人移動(dòng)

      rostopic酒吧/ cmd_vel geometry_msgs /扭轉(zhuǎn)“線性: X:0.2 Y:0.0 有:0.0 角度: X:0.0 Y:0.0 Z:0.1"

      雜項(xiàng)

      如果無(wú)法找到?jīng)鐾げ寮惭bROS運(yùn)動(dòng)控制器

      命令和apt-get安裝ROS動(dòng)能-ROS控制 命令和apt-get安裝ROS動(dòng)能-ROS控制器 命令和apt-get安裝ROS-動(dòng)能涼亭封郵件 命令和apt-get安裝ROS-動(dòng)能涼亭-ROS

      如果機(jī)器人不rviz移動(dòng),檢查TF改造樹

      rosrun TF view_frames 了Evince frames.pdf

      如果你想運(yùn)行在mybot_controller自己的控制器,看看這個(gè)教程

      [教程]在涼亭模擬傳感器(第2部分)

      RPW

      2016/09/20 04:18

      有效地與周圍環(huán)境交互的機(jī)器人需要三個(gè)基本組成部分:

      傳感器揭示周圍環(huán)境

      規(guī)劃要弄清楚該怎么做

      執(zhí)行器,使機(jī)器人移動(dòng)

      我們將展示如何傳感器加入到我們的基本差分驅(qū)動(dòng)模式。一旦配有傳感器,我們的機(jī)器人將有足夠的準(zhǔn)備使用ROS導(dǎo)航堆棧,這將使它能夠自行移動(dòng)!

      概述:模擬傳感器

      目標(biāo):外感受性的傳感器添加到我們的模擬差分驅(qū)動(dòng)機(jī)器人

      用途:?jiǎn)⒂靡蕾囉诟兄車h(huán)境的算法(又名自主導(dǎo)航!!)。

      參考文獻(xiàn):

      涼亭插件庫(kù)

      涼亭相機(jī)教程

      庫(kù)代碼

      混帳克隆-b base_sensors https://github.com/richardw05/mybot_ws.git

      視頻演練

      模擬攝像機(jī)

      我們只需要添加的代碼兩個(gè)街區(qū)。

      mybot_description / urdf / mybot.xacro - 添加相機(jī)型號(hào)

      mybot_description / urdf / mybot.gazebo - 添加攝像頭插件

      啟動(dòng)在涼亭模型。

      roslaunch mybot_gazebo mybot_world.launch

      運(yùn)行一個(gè)節(jié)點(diǎn),以查看相機(jī)數(shù)據(jù)。

      rosrun image_view image_view圖像:= / mybot /攝像機(jī)1 / image_raw

      在涼亭模擬器插入的對(duì)象,以確保它在相機(jī)視圖顯示出來(lái)。

      啟動(dòng)rviz。

      roslaunch mybot_description mybot_rviz.launch

      / mybot /攝像機(jī)1 / image_raw:確保相機(jī)數(shù)據(jù)可以rviz與主題閱讀

      模擬激光

      再次,代碼只有兩個(gè)上下的塊:

      mybot_description / urdf / mybot.xacro - 添加激光模型

      mybot_description / urdf / mybot.gazebo - 添加激光插件

      mybot_description /網(wǎng)格/ hokuyo.dae(可選) - 花式HOKUYO激光模型

      啟動(dòng)在涼亭和rviz檢查

      [教程]模擬ROS導(dǎo)航堆棧(第3部分)

      RPW

      2016/09/27 04:52

      在這一點(diǎn)上,我們已經(jīng)創(chuàng)建了滿足必要的先決條件自主導(dǎo)航模擬差分驅(qū)動(dòng)器型號(hào):變換樹,測(cè)距,激光掃描儀,和基本控制器。現(xiàn)在,我們可以使我們的仿真機(jī)器人使用ROS的導(dǎo)航堆棧走動(dòng)自身。在本教程中,我們要:

      插上ROS導(dǎo)航堆棧

      創(chuàng)建地圖

      導(dǎo)航與地圖

      正如你所看到的,這些步驟都是有據(jù)可查的,所以我們只是把他們放在一起為我們的機(jī)器人。

      概述:使用ROS導(dǎo)航堆棧

      目標(biāo):整合ROS導(dǎo)航堆棧為我們的模擬機(jī)器人

      用途:?jiǎn)⒂米灾鲗?dǎo)航,所以我們并不需要遠(yuǎn)程控制我們的機(jī)器人

      資源

      利用ROS導(dǎo)航堆棧啟動(dòng)文件示例

      提示組織大型項(xiàng)目

      眾多機(jī)器人項(xiàng)目的啟動(dòng)文件示例

      roscd turtlebot_navigation /啟動(dòng)/包括更多的啟動(dòng)文件的例子

      混帳克隆-b導(dǎo)航https://github.com/richardw05/mybot_ws.git

      地圖和導(dǎo)航:Turtlebot(可選)

      學(xué)做自主的Turtlebot此舉有助于建立在期待什么樣的行為的基線。基本上有三個(gè)步驟:創(chuàng)建地圖,保存地圖,和加載地圖。

      創(chuàng)建地圖

      下面運(yùn)行下面的命令。使用teleop四處移動(dòng)機(jī)器人,建立一個(gè)準(zhǔn)確和全面的地圖。

      在1號(hào)航站樓,推出世界涼亭

      roslaunch turtlebot_gazebo turtlebot_world.launch

      在2號(hào)航站樓,啟動(dòng)地圖構(gòu)建

      roslaunch turtlebot_gazebo gmapping_demo.launch

      在3號(hào)航站樓,推出rviz并設(shè)置以下參數(shù):Localmap / Costmap /主題為/圖辦事處一覽/ Costmap /主題為/圖

      roslaunch turtlebot_rviz_launchers view_navigation.launch

      在第4航站樓,開始teleop

      roslaunch turtlebot_teleop keyboard_teleop.launch

      保存地圖

      在5號(hào)航站樓,地圖保存一些文件路徑

      rosrun map_server map_saver -f?/ mybot_ws / test_map

      載入地圖

      關(guān)閉所有之前的終端和運(yùn)行下面的下面的命令。一旦加載,使用rviz設(shè)置導(dǎo)航航路點(diǎn)和機(jī)器人應(yīng)該自主地移動(dòng)。

      在1號(hào)航站樓,推出世界涼亭

      roslaunch turtlebot_gazebo turtlebot_world.launch

      在2號(hào)航站樓,啟動(dòng)地圖構(gòu)建

      roslaunch turtlebot_gazebo amcl_demo.launch MAP_FILE:=?/ mybot_ws / test_map.yaml

      在3號(hào)航站樓,啟動(dòng)rviz

      roslaunch turtlebot_rviz_launchers view_navigation.launch

      地圖和導(dǎo)航:我們的機(jī)器人

      我們遵循我們自己的差分驅(qū)動(dòng)機(jī)器人相同的步驟。

      請(qǐng)注意,我們修改我們的模型導(dǎo)航好一點(diǎn)。例如,我們?cè)黾恿艘粋€(gè)額外腳輪,以減少在突然停車彈跳激光。據(jù)我們了解,我們的機(jī)器人模型需要額外的調(diào)整,因?yàn)樗幸恍┢婀值膶?dǎo)航扭結(jié)。任何建議,將不勝感激。然而,我們的模型是足以與ROS導(dǎo)航堆棧播放。

      創(chuàng)建地圖

      下面運(yùn)行下面的命令。使用teleop四處移動(dòng)機(jī)器人,建立一個(gè)準(zhǔn)確和全面的地圖。

      在1號(hào)航站樓,推出世界涼亭

      roslaunch mybot_gazebo mybot_world.launch

      在2號(hào)航站樓,啟動(dòng)地圖構(gòu)建

      roslaunch mybot_navigation gmapping_demo.launch

      在3號(hào)航站樓,推出rviz并設(shè)置以下參數(shù):

      roslaunch mybot_description mybot_rviz_gmapping.launch

      在第4航站樓,開始teleop

      roslaunch mybot_navigation mybot_teleop.launch

      保存地圖

      在5號(hào)航站樓,地圖保存一些文件路徑

      rosrun map_server map_saver -f?/ mybot_ws / src目錄/ mybot_navigation /地圖/ test_map

      載入地圖

      關(guān)閉所有之前的終端和運(yùn)行下面的下面的命令。一旦加載,使用rviz設(shè)置導(dǎo)航航路點(diǎn)和機(jī)器人應(yīng)該自主地移動(dòng)。

      在1號(hào)航站樓,推出世界涼亭

      roslaunch mybot_gazebo mybot_world.launch

      在2號(hào)航站樓,啟動(dòng)地圖構(gòu)建

      roslaunch mybot_navigation amcl_demo.launch

      在3號(hào)航站樓,啟動(dòng)rviz

      roslaunch mybot_description mybot_rviz_amcl.launch

      雜項(xiàng)

      (可選)安裝Turtlebot一個(gè)很好的參考

      命令和apt-get安裝ROS-動(dòng)能turtlebot ROS-動(dòng)能turtlebot-ROS的應(yīng)用程序,動(dòng)能turtlebot- 相互作用ROS-動(dòng)能turtlebot模擬器ROS-動(dòng)能kobuki-FTDI ROS動(dòng)能-AR-徑跡 阿爾瓦 - 封郵件

      如果ROS找不到turtlebot_gazebo

      rosdep更新

      無(wú)法建立一個(gè)適當(dāng)?shù)牡貓D嗎?

      考慮降低你的貼圖的分辨率。改變?cè)隽恐祻?.05至.01:

      /opt/ros/kinetic/share/turtlebot_navigation/launch/includes/gmapping.launch.xml

      自主移動(dòng)時(shí)紡紗很多嗎?

      設(shè)置這些參數(shù),以抑制發(fā)送到基站控制器的命令。加

      <名稱= “move_base / DWAPlannerROS / acc_lim_theta” 值= “10.0”/>

      /opt/ros/kinetic/share/turtlebot_gazebo/launch/amcl_demo.launch

      AMCL不加載地圖是否正確?

      當(dāng)您保存的地圖文件,該文件YAML包含對(duì)PGM文件的路徑;?因此,你不能移動(dòng)地圖文件。如果你這樣做,重定向在YAML文件的路徑。

      [教程]在ROS硬件機(jī)器人的開環(huán)控制(部分4)

      RPW

      2016/10/11 03:51

      我們以一個(gè)實(shí)際的機(jī)器人運(yùn)行ROS我們的第一個(gè)步驟。我們將改變線性和旋轉(zhuǎn)目標(biāo)速度命令轉(zhuǎn)換為將我們的差分驅(qū)動(dòng)機(jī)器人的左右輪執(zhí)行的運(yùn)動(dòng)指令。我們使用不使用傳感器數(shù)據(jù)(如編碼器)作為反饋的開環(huán)控制系統(tǒng)。

      概述:機(jī)器人的開環(huán)控制

      目標(biāo):通過(guò)速度指令的機(jī)器人通過(guò)WiFi的開環(huán)控制

      目的:學(xué)習(xí)差分驅(qū)動(dòng)機(jī)器人的開環(huán)控制,使用ROS的消息傳遞接口通過(guò)WiFi,和物理機(jī)器人的電機(jī)控制。

      概述:

      我們有兩臺(tái)機(jī)器:一臺(tái)主機(jī)運(yùn)行Ubuntu,并通過(guò)樹莓派控制的機(jī)器人。這些器件通過(guò)ROS消息通過(guò)網(wǎng)絡(luò)在一起,以共享相同的ROS主通信。為樹莓裨ROS節(jié)點(diǎn)控制所述馬達(dá)(左+右)和發(fā)布機(jī)器人的編碼器的讀數(shù)。ROS為電機(jī)主機(jī)計(jì)算速度目標(biāo)節(jié)點(diǎn)并更新機(jī)器人的里程計(jì)。

      安裝軟件為機(jī)器人的樹莓派

      主機(jī)和樹莓派之間建立聯(lián)網(wǎng)

      用于發(fā)送電機(jī)命令給機(jī)器人創(chuàng)建ROS節(jié)點(diǎn)

      測(cè)試機(jī)器人正確地如下控制命令

      混帳克隆-b的開環(huán)https://github.com/richardw05/gopigo_ws.git

      ROS:動(dòng)力學(xué)

      操作系統(tǒng):Ubuntu的16.04

      差分驅(qū)動(dòng)機(jī)器人:GoPiGo

      無(wú)線USB棒:樹莓派USB無(wú)線適配器

      其它差分驅(qū)動(dòng)機(jī)器人會(huì)工作,但可能需要修改代碼來(lái)控制電機(jī)。

      如果訂購(gòu)一個(gè)新的USB加密狗的WiFi,考慮到支持802.11交流,如果你最終打算在未來(lái)的流攝像機(jī)數(shù)據(jù)的WiFi設(shè)備。

      0(GoPiGo)軟件安裝

      機(jī)器人的覆盆子裨將與GoPiGo板控制并與各種外圍設(shè)備進(jìn)行通信(如馬達(dá),IR傳感器等)接口。我們將安裝ROS并在樹莓派的GoPiGo庫(kù)。

      在樹莓派安裝ROS的樹莓派使用自定義ROS的安裝過(guò)程。請(qǐng)按照這里的教程:wiki.ros.org/ROSberryPi/Installing ROS動(dòng)力學(xué)的樹莓派。

      在樹莓派安裝GoPiGo?有關(guān)安裝GoPiGo庫(kù)可以在這里找到:http://www.dexterindustries.com/GoPiGo/programming/python-programming-for-the-raspberry-pi-gopigo/installing-gopigo-python -圖書館

      1.(可選)與ROS網(wǎng)絡(luò)通過(guò)WiFi

      WiFi聯(lián)網(wǎng)將允許主機(jī)和機(jī)器人通過(guò)ROS消息進(jìn)行通信。我們首先要設(shè)置Wi-Fi網(wǎng)絡(luò),然后配置ROS網(wǎng)絡(luò)。

      無(wú)線網(wǎng)絡(luò)設(shè)置。

      如果你已經(jīng)可以機(jī)器之間的SSH,你可以跳過(guò)this.Make確保兩臺(tái)設(shè)備都連接到同一子網(wǎng)(或簡(jiǎn)單地連接到同一個(gè)路由器)。我們希望從主機(jī)SSH到樹莓派。

      如果您不知道設(shè)備的IP地址,使用NMAP搜索設(shè)備的子網(wǎng)。

      NMAP -sN 192.168.1.0/24

      您現(xiàn)在應(yīng)該能夠通過(guò)SSH進(jìn)入樹莓派。

      SSH PI @ {IPADDRESS}

      如果你有麻煩SSH'ing到樹莓派,你可能需要您的主機(jī)的SSH公鑰添加到樹莓派的的?/ .ssh / authorized_keys中。

      作為可選步驟,IP地址是很難記住,改變定期所以請(qǐng)考慮使用主機(jī)名代替

      主機(jī)名-I

      ROS在無(wú)線網(wǎng)絡(luò)

      我們?cè)O(shè)置兩個(gè)設(shè)備通過(guò)WiFi與ROS,使它們共享相同的ROS主溝通。我們選擇在主機(jī)上運(yùn)行的ROS主machine.On主機(jī),啟動(dòng)ROS主

      roscore

      在樹莓派,其配置為使用主機(jī)的ROS主人。

      對(duì)于一個(gè)臨時(shí)解決方案,

      出口ROS_MASTER_URI = HTTP:// IP_ADDRESS:11311

      對(duì)于一個(gè)永久的解決方案,加上線以上到你的.bashrc文件。

      試驗(yàn)表明,該工程。在樹莓派:

      rostopic酒館/測(cè)試std_msgs /浮點(diǎn)32 5.0

      在主機(jī)上:

      rostopic回聲/測(cè)試

      wiki.ros.org/ROS/Tutorials/MultipleMachines

      nootrix.com/software/ros-networking

      wiki.ros.org/turtlebot/Tutorials/indigo/NetworkConfiguration

      2.體系結(jié)構(gòu)

      在這個(gè)項(xiàng)目中,我們的主機(jī)將在高級(jí)別目標(biāo)速度指令讀取機(jī)器人的身體是轉(zhuǎn)化為機(jī)器人執(zhí)行個(gè)人左右輪的命令。如下所示,我們有兩個(gè)關(guān)鍵ROS節(jié)點(diǎn):diffdrive_controller其被在機(jī)器人上運(yùn)行主機(jī)和gopigo_controller上運(yùn)行。這種分離將讓我們通過(guò)重新編寫GoPiGo具體ROS節(jié)點(diǎn)替代其他機(jī)器人硬件的未來(lái)。

      從的結(jié)構(gòu)借用ROS導(dǎo)航堆棧,我們基本上實(shí)現(xiàn)基本控制器。下面顯示的是一個(gè)更精細(xì)的粒面折紋ROS節(jié)點(diǎn)之間傳輸?shù)暮诵男畔⒌南蛳隆?/p>

      在操作上,我們采取目標(biāo)線性和旋轉(zhuǎn)速度,并使用逆運(yùn)動(dòng)學(xué)來(lái)生成用于左眼和右輪的切向車輪速度。機(jī)器人變換這些切向速度目標(biāo)納入角速度目標(biāo)。然后這些轉(zhuǎn)化到電動(dòng)機(jī)指令并發(fā)送至電動(dòng)機(jī)。詳情如下實(shí)施進(jìn)一步討論。

      3.實(shí)施

      我們實(shí)行從地上爬起來(lái)這個(gè)項(xiàng)目。我們通過(guò)初始化工作空間開始。然后,我們創(chuàng)建了GoPiGo控制器與電機(jī)接口。在此之上,我們所建立的差分驅(qū)動(dòng)器控制器將控制速度目標(biāo)為每個(gè)車輪。

      初始化一個(gè)新的工作區(qū)

      我們創(chuàng)建了一個(gè)名為gopigo_ws工作區(qū)。回憶柳絮命令:

      MKDIR gopigo_ws 柳絮INIT CD gopigo_ws MKDIR SRC 柳絮構(gòu)建

      GoPiGo控制器

      所述GoPiGo控制器接收目標(biāo)速度,并將它們轉(zhuǎn)換成電機(jī)命令使機(jī)器人執(zhí)行。對(duì)于每個(gè)車輪,我們?nèi)∧繕?biāo)切向速度(如何快速向前或向后移動(dòng)),其轉(zhuǎn)換為角速度(如何快速旋轉(zhuǎn)的車輪),然后將其轉(zhuǎn)化為電機(jī)命令(馬達(dá)的方向和速度) 。

      定義如下:

      v:切向速度

      瓦特:角速度

      [R?:車輪半徑

      為涉及切向速度與角速度,

      用于馬達(dá),我們可以指定電動(dòng)機(jī)方向(0向后1個(gè)向前)和電機(jī)速度(0最慢; 255最快)。鑒于電機(jī)速度是無(wú)單位的,我們將創(chuàng)建從目標(biāo)角速度到電機(jī)的命令的映射。

      有幾個(gè)因素需要考慮:有低于該輪根本就沒(méi)有移動(dòng)最小電動(dòng)機(jī)速度指令,有一個(gè)最大的電機(jī)速度指令上面我們不能進(jìn)一步增加,我們必須謹(jǐn)慎指定在電機(jī)旋轉(zhuǎn)方向。

      如以上所描述的,我們創(chuàng)建從角速度的簡(jiǎn)單分段線性映射到電動(dòng)機(jī)指令為如下所示。當(dāng)給定的最小和最大電動(dòng)機(jī)速度我們內(nèi)插的角速度。進(jìn)一步校準(zhǔn)可以幫助創(chuàng)造未來(lái)的更細(xì)粒度的映射。

      要理解公式:http://www8.cs.umu.se/kurser/5DV122/HT13/material/Hellstrom-ForwardKinematics.pdf

      差分驅(qū)動(dòng)器

      差動(dòng)驅(qū)動(dòng)控制器采取/ cmd_vel消息并計(jì)算左右車輪的切向速度。我們?nèi)绾螐木€性和機(jī)器人的身體各個(gè)車輪的速度轉(zhuǎn)動(dòng)速度(V,W)走這并不完全是顯而易見的。幸運(yùn)的是,這是被稱為逆運(yùn)動(dòng)在充分研究的問(wèn)題。

      定義以下輸入:

      :機(jī)器人本體的目標(biāo)線速度

      :機(jī)器人本體的目標(biāo)旋轉(zhuǎn)速度

      大號(hào):機(jī)器人輪之間距離

      定義以下輸出:

      :右輪的切向速度

      :左車輪的切向速度

      我們知道下面的等式成立(請(qǐng)參閱下面的進(jìn)一步的解釋資源)。基本的直覺(jué)是,上面公式反映當(dāng)機(jī)器人直線前進(jìn)運(yùn)動(dòng),而底部方程反映了機(jī)器人代替旋轉(zhuǎn)的情況:

      有趣的是,我們能夠解決這些方程得到:

      我鼓勵(lì)你去嘗試和解決車輪速度。結(jié)果意義,如果你考慮的邊緣情況。試想,如果我們只想機(jī)器人直線前進(jìn)運(yùn)動(dòng),從而和。你會(huì)得到意料之中相同的切向車輪速度使該機(jī)器人直線前進(jìn):

      試想,如果我們只設(shè)定的角度旋轉(zhuǎn),方便和。您還將獲得意料之中相反的切向車輪速度使機(jī)器人到位旋轉(zhuǎn)。

      正運(yùn)動(dòng)學(xué)介紹:MotionAndSensing.pptx

      正運(yùn)動(dòng)學(xué)數(shù)學(xué):http://www8.cs.umu.se/kurser/5DV122/HT13/material/Hellstrom-ForwardKinematics.pdf

      全機(jī)器人實(shí)現(xiàn)教程:http://apprize.info/programming/ros/10.html

      堿控制器示例:http://wiki.ros.org/pr2_controllers/Tutorials/Using機(jī)器人基座控制器,以驅(qū)動(dòng)機(jī)器人

      Turtlebot控制代碼示例:https://github.com/markwsilliman/turtlebot

      差分驅(qū)動(dòng)運(yùn)動(dòng)學(xué):https://chess.eecs.berkeley.edu/eecs149/documentation/differentialDrive.pdf

      差分驅(qū)動(dòng)帶腳輪:http://robotics.stackexchange.com/questions/8911/how-to-find-kinematics-of-differential-drive-caster-robot

      運(yùn)動(dòng)學(xué)優(yōu)秀篇章:http://www.cs.cmu.edu/~rasc/Download/AMRobots3.pdf

      隨著gopigo_controller和diffdrive_controller,我們現(xiàn)在有機(jī)器人的開環(huán)控制。通過(guò)發(fā)布/ cmd_vel的消息,我們將能夠控制機(jī)器人的運(yùn)動(dòng)。

      4.啟動(dòng)

      我們引入托管多個(gè)方便的啟動(dòng)文件的兩個(gè)ROS節(jié)點(diǎn):nav_behaviors和gopigo_description。要啟動(dòng)我們的實(shí)際機(jī)器人的開環(huán)控制,在主機(jī)上:

      roslaunch nav_behaviors nav_behaviors.launch

      在樹莓派:

      roslaunch gopigo_description gopigo_interface.launch

      現(xiàn)在,我們的ROS節(jié)點(diǎn)監(jiān)聽速度指令,運(yùn)行在?/ gopigo_ws /這兩個(gè)shell腳本之一:

      ./nav_forward.py ./nav_rotate.py

      結(jié)果應(yīng)該是機(jī)器人分別向前移動(dòng)或代替旋轉(zhuǎn),。如果發(fā)生這種情況,您已成功創(chuàng)建一個(gè)開環(huán)控制器為你的機(jī)器人!

      如果您沒(méi)有訪問(wèn)GoPiGo機(jī)器人,你仍然可以測(cè)試代碼:

      如果你有一個(gè)不同類型的機(jī)器人,那么你將需要編輯gopigo_controller / src目錄/ gopigo_controller.py。搜索gopigo_on標(biāo)志和編輯對(duì)傳輸指令您電機(jī)。您可能需要編輯gopigo_description /啟動(dòng)/ gopigo_interface.launch的參數(shù)值

      您仍然可以測(cè)試模擬控制器。轉(zhuǎn)到gopigo_description /啟動(dòng)/ gopigo_interface.launch和gopigo_on標(biāo)志設(shè)置為false。這將消除發(fā)送到電機(jī)的任何命令。然后,您可以檢查以下ROS消息意義:

      rostopic回聲/ cmd_vel rostopic回聲/ lwheel_tangent_vel_target rostopic回聲/ rwheel_tangent_vel_target rostopic回聲/ lwheel_angular_vel_control rostopic回聲/ rwheel_angular_vel_control rostopic回聲/ lwheel_angular_vel_motor rostopic回聲/ rwheel_angular_vel_motor

      如果執(zhí)行nav_forward.py,那么將會(huì)看到相應(yīng)的車輪匹配值。

      如果執(zhí)行nav_rotate.py,然后期望看到對(duì)面的值對(duì)應(yīng)的車輪。

      [教程]在ROS硬件機(jī)器人的閉環(huán)控制(部分5)

      RPW

      2016/10/12 03:34

      在本節(jié)中,我們側(cè)重于使用輪編碼器的傳感器數(shù)據(jù)有兩個(gè)目的:

      閉環(huán)PID控制

      雖然開環(huán)控制實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,它并不總是可靠地在實(shí)際的機(jī)器人運(yùn)行時(shí),由于工作環(huán)境(即從地面摩擦)及內(nèi)在因素(即左,右馬達(dá)之間的差異)的組合發(fā)揮作用。

      閉環(huán)控制使用傳感器數(shù)據(jù)(即輪編碼器),以調(diào)節(jié)通過(guò)反饋電機(jī)控制(即誤差作為目標(biāo)和測(cè)量之間的差)。PID控制是一種流行的閉環(huán)控制器,實(shí)現(xiàn)起來(lái)很簡(jiǎn)單。

      測(cè)距W /慣性導(dǎo)航

      測(cè)距是有價(jià)值的,因?yàn)樗牵?)在未來(lái)使用ROS導(dǎo)航堆棧一個(gè)必要的輸入和2)讓我們看到了機(jī)器人的軌跡

      我們結(jié)合車輪編碼器的讀數(shù)從兩個(gè)輪子(推算)估計(jì)隨著時(shí)間的推移(測(cè)距)機(jī)器人的位置。

      概述:機(jī)器人的閉環(huán)控制

      目標(biāo):用于閉環(huán)PID控制和估計(jì)機(jī)器人測(cè)距輪編碼器的傳感器數(shù)據(jù)的使用

      目的:學(xué)習(xí)從傳感器數(shù)據(jù)結(jié)合反饋來(lái)改進(jìn)機(jī)器人控制和狀態(tài)估計(jì)

      大綱:

      閱讀機(jī)器人輪編碼器

      兩個(gè)輪子的PID控制

      航位推算估計(jì)機(jī)器人里程計(jì)

      庫(kù)代碼

      混帳克隆-b閉環(huán)https://github.com/richardw05/gopigo_ws.git

      視頻演練

      建筑

      再次,我們有一個(gè)主機(jī)和通過(guò)WiFi連接的機(jī)器人。如下圖所示,我們添加兩個(gè)ROS節(jié)點(diǎn)。gopigo_state_updater是在機(jī)器人上運(yùn)行,并變換輪編碼數(shù)據(jù)轉(zhuǎn)換成角速度車輪速度的估計(jì)。我們擴(kuò)大gopigo_controller使用PID控制這些編碼器的讀數(shù)。diffdrive_odom是在主機(jī)上運(yùn)行, 并使用編碼器測(cè)算進(jìn)行航位推算。

      下面顯示的是這些ROS節(jié)點(diǎn)之間傳送的ROS消息。

      在操作上,我們首先估計(jì)從輪編碼器的讀數(shù)角速度車輪速度。這些都是用于PID控制器,這將減少目標(biāo)和測(cè)量速度之間的誤差。下一步,我們通過(guò)使用正向運(yùn)動(dòng)學(xué)來(lái)恢復(fù)機(jī)器人的線性和旋轉(zhuǎn)速度,其被用來(lái)估計(jì)機(jī)器人測(cè)距執(zhí)行航位推算。

      履行

      我們將通過(guò)創(chuàng)建一個(gè)新gopigo_state_updater節(jié)點(diǎn)和編輯gopigo_controller節(jié)點(diǎn)把我們的開環(huán)控制到閉環(huán)控制。然后,我們?cè)谛耫iffdrive_odom節(jié)點(diǎn)進(jìn)行航位推算。

      GoPiGo狀態(tài)更新

      車輪編碼器測(cè)量每個(gè)車輪實(shí)際上多少轉(zhuǎn)過(guò)身來(lái),估計(jì)其實(shí)際的角速度。后來(lái),我們的PID控制器將修正目標(biāo)和實(shí)際車輪速度之間的不匹配。首先,gopigo_state_updater節(jié)點(diǎn)必須變換輪編碼讀數(shù)角速度。

      有趣的是,GoPiGo的車輪編碼器返回走過(guò)的厘米數(shù);?相比之下,大多數(shù)編碼器返回經(jīng)過(guò)蜱蟲的數(shù)量。任一測(cè)量類型可以轉(zhuǎn)化為角速度。對(duì)于我們的車輪編碼器數(shù)據(jù),我們可以計(jì)算橫移為經(jīng)過(guò)編碼器距離的比例弧度。然后我們計(jì)算除以在拍攝的時(shí)候anuglar速度。

      定義如下:

      e:在距離變化的編碼器

      [R?:機(jī)器人車輪半徑

      :時(shí)間移動(dòng)的距離編碼器讀取

      瓦特:車輪的角速度

      為了計(jì)算角速度,我們首先使用編碼器的距離,以計(jì)算所述車輪的圓周穿過(guò)的比例。我們用總弧度為一個(gè)旋轉(zhuǎn)(顯然2 PI)乘以此。最后,我們除以移動(dòng)的距離所需要的時(shí)間。

      該方程可以進(jìn)一步簡(jiǎn)化導(dǎo)致車輪的角速度。所述gopigo_state_updater節(jié)點(diǎn)的這個(gè)主要目的是發(fā)布這些角度車輪速度。

      GoPiGo控制器瓦特/ PID控制

      一旦我們有了一個(gè)測(cè)量的角車輪速度,我們可以應(yīng)用PID控制器來(lái)校正誤差(目標(biāo)角速度車輪速度 - 測(cè)量的角車輪速度)。回想一下,每個(gè)車輪的目標(biāo)角速度車輪速度由diffdrive_controller節(jié)點(diǎn)給出。直觀地說(shuō),這個(gè)想法是,如果我們的電機(jī)沒(méi)有在我們的目標(biāo)速度移動(dòng)(過(guò)慢或過(guò)快),那么我們就應(yīng)該調(diào)整我們的電機(jī)控制命令(快或慢)來(lái)糾正這些差異。例如,如果地板摩擦導(dǎo)致車輪旋轉(zhuǎn)速度低于預(yù)期,那么我們需要給予較高的電機(jī)控制命令以進(jìn)行補(bǔ)償。

      PID控制器充分研究所以讓我們只提供一點(diǎn)直覺(jué)。它往往是容易想象像汽車的巡航控制一維的例子。的狀態(tài)的系統(tǒng)的是機(jī)器人的當(dāng)前速度。巡航控制設(shè)定的目標(biāo)速度。的控制命令來(lái)調(diào)整油門踏板。如果移動(dòng)速度太慢,然后推更難對(duì)油門踏板反之亦然。該測(cè)量是告訴我們車輛的速度里程表。的錯(cuò)誤是測(cè)量和目標(biāo)之間的差。調(diào)整誤差為0,意味著我們將實(shí)現(xiàn)我們的目標(biāo)速度。在大多數(shù)的物理系統(tǒng),我們不想立即跳到0至100英里每小時(shí),所以我們需要計(jì)算的控制命令是逐步調(diào)整車速。PID控制器基本上覆蓋不同的情況三個(gè)單獨(dú)的控制調(diào)整技術(shù)的總和:

      (P)roportional?-控制命令是一個(gè)比例的電流誤差(例如,在油門踏板推足夠緩慢斜坡上升到目標(biāo)速度)

      (I)ntegral?-控制指令的比例過(guò)去的錯(cuò)誤(例如更多的天然氣,如果我們有很大的誤差了一會(huì)兒)

      (D)。微分?-控制命令是一個(gè)比例未來(lái)在誤差變化(例如快速反應(yīng)以在錯(cuò)誤的變化)

      請(qǐng)注意,關(guān)鍵的區(qū)別是考慮(過(guò)去,現(xiàn)在和將來(lái))的時(shí)間框架。它實(shí)際上是沒(méi)有必要使用所有這三個(gè)控制調(diào)整,以便隨時(shí)根據(jù)需要進(jìn)行調(diào)整。請(qǐng)看看這些資源,了解更多詳情。

      https://www.coursera.org/learn/mobile-robot

      https://en.wikipedia.org/wiki/PID_controller

      除了概念上理解PID控制,我們還需要實(shí)現(xiàn)它。盡管方程在連續(xù)表示給定的,我們的計(jì)算平臺(tái)必須以離散表示抗衡。對(duì)于比例控制,我們只考慮電流測(cè)量所以它僅僅是當(dāng)前誤差(目標(biāo)減計(jì))的比例。對(duì)于積分控制,我們可以計(jì)算錯(cuò)誤的滾動(dòng)總和。對(duì)于差分控制,我們只計(jì)算當(dāng)前和以前的錯(cuò)誤之間的區(qū)別。

      我們希望,pid_control功能表明它是如何實(shí)現(xiàn)簡(jiǎn)單的PID控制器。當(dāng)然,密鑰將試驗(yàn)來(lái)確定合適的增益(KP,KI,KD)使用。

      差分驅(qū)動(dòng)里程計(jì)

      通過(guò)航位推算,我們可以從兩個(gè)車輪結(jié)合輪編碼器的傳感器數(shù)據(jù),不僅恢復(fù)機(jī)器人的線性和旋轉(zhuǎn)速度(在一個(gè)完美的系統(tǒng)中,我們將恢復(fù)輸入/ cmd_vel),而且還估計(jì)其隨時(shí)間的位置。正向運(yùn)動(dòng)學(xué)指方程的序列(基于物理系統(tǒng)如何響應(yīng)給定的輸入模式)到傳感器的數(shù)據(jù)轉(zhuǎn)換成機(jī)器人測(cè)距。我們的運(yùn)動(dòng)學(xué)方程不承擔(dān)任何車輪打滑,拖,而本質(zhì)上是難以準(zhǔn)確預(yù)測(cè)在現(xiàn)實(shí)環(huán)境中如此測(cè)距估計(jì)往往不會(huì)完全符合實(shí)際等因素的影響。

      讓我們定義以下輸入:

      大號(hào):機(jī)器人的輪子之間的距離

      W_L:左車輪的角速度

      w_r:右輪的角速度

      :及時(shí)更新變化

      X:機(jī)器人的前面x位置

      ?:機(jī)器人的前一個(gè)y位置

      :機(jī)器人前的姿態(tài)

      定義以下輸出:

      [R?:曲率瞬時(shí)中心的半徑

      V_L:左車輪的切向速度

      V_R:右輪的切向速度

      V_C:機(jī)器人的線速度

      w_c:機(jī)器人的旋轉(zhuǎn)速度

      :機(jī)器人的X位置

      :機(jī)器人的當(dāng)前y位置

      :機(jī)器人的當(dāng)前方向

      入門ROS教程與視頻匯總(kinetic)(Ros教程)

      我們使用假設(shè)兩種情況之一時(shí),我們的差動(dòng)驅(qū)動(dòng)機(jī)器人正在移動(dòng)簡(jiǎn)單正向運(yùn)動(dòng)學(xué)方程:要么機(jī)器人正在移動(dòng)直線前進(jìn)或繞“曲率(ICC)的瞬時(shí)中心”移動(dòng)。

      移動(dòng)直線前進(jìn)

      如果在前進(jìn),動(dòng)力很簡(jiǎn)單。注意,機(jī)器人的角速度是0,因?yàn)閮蓚€(gè)車輪以相同的速度移動(dòng):

      當(dāng)然,我們可以更新機(jī)器人的姿勢(shì)(全球位置和方向)為:

      旋轉(zhuǎn)一圈

      我們首先計(jì)算其周圍的機(jī)器人以下(在這個(gè)時(shí)刻)的圓的半徑。這使我們能夠計(jì)算出機(jī)器人的旋轉(zhuǎn)速度。

      然后,我們可以計(jì)算出這個(gè)圈子的中心。

      我們遵循通過(guò)更新機(jī)器人的姿勢(shì)。

      我們發(fā)布了計(jì)算機(jī)器人的全球姿態(tài)在世界上機(jī)器人的TF變換和里程計(jì)信息兩者。測(cè)距消息還包括速度信息,這當(dāng)然意味著,測(cè)距消息包括關(guān)于機(jī)器人的狀態(tài)的詳細(xì)信息(位置,方向,線速度,旋轉(zhuǎn)速度)。

      ROS測(cè)程執(zhí)行:http://wiki.ros.org/navigation/Tutorials/RobotSetup/Odom

      ROS測(cè)程在Python:answers.ros.org/question/79851/python-odometry

      發(fā)射

      我們將使用車輪編碼器傳感器數(shù)據(jù)用于1)PID反饋控制和2)來(lái)估計(jì)機(jī)器人的測(cè)距。

      我們使用相同的啟動(dòng)文件nav_behaviors.launch和gopigo_interface.launch。我們編輯它們運(yùn)行額外的ROS節(jié)點(diǎn)(diffdrive_odom為nav_behaviors.launch和gopigo_state_updater為gopigo_interface.launch)。嘗試運(yùn)行以下場(chǎng)景。

      測(cè)距的仿真

      作為一個(gè)基本的完整性檢查,我們要確保我們的前進(jìn)運(yùn)動(dòng)轉(zhuǎn)換通過(guò)展示,我們可以恢復(fù)原來(lái)的cmd_vel消息正確。

      在gopigo_interface.launch,為所有的以下內(nèi)容:

      現(xiàn)在運(yùn)行的啟動(dòng)文件。在主機(jī)上:

      roslaunch nav_behaviors nav_behaviors.launch

      在樹莓派:

      roslaunch gopigo_description gopigo_interface.launch

      打印以下消息來(lái)驗(yàn)證我們的計(jì)算是正確的:

      rostopic回聲/ cmd_vel rostopic回聲/ lwheel_tangent_vel_target rostopic回聲/ rwheel_tangent_vel_target rostopic回聲/ lwheel_angular_vel_target rostopic回聲/ rwheel_angular_vel_target rostopic回聲/ lwheel_angular_vel_control rostopic回聲/ rwheel_angular_vel_control rostopic回聲/ lwheel_angular_vel_motor rostopic回聲/ rwheel_angular_vel_motor rostopic回聲/ lwheel_angular_vel_enc rostopic回聲/ rwheel_angular_vel_enc rostopic回聲/ lwheel_tangent_vel_enc rostopic回聲/ rwheel_tangent_vel_enc rostopic回聲/ cmd_vel_enc

      發(fā)送目標(biāo)/ cmd_vel消息,并看到這些消息如何變化。

      ./nav_forward.sh ./nav_rotate.sh

      當(dāng)我們?cè)O(shè)置gopigo_on為False,gopigo_state_updater節(jié)點(diǎn)基本上都會(huì)在目標(biāo)角速度復(fù)制(在本質(zhì)上,模擬仿佛編碼器讀數(shù)完全匹配我們給定的模型)。檢查/ cmd_vel和/ cmd_vel_enc匹配。

      測(cè)程的GoPiGo

      讓我們用實(shí)際車輪編碼器傳感器數(shù)據(jù)計(jì)算測(cè)距。

      在gopigo_interface.launch,為所有的以下內(nèi)容:

      運(yùn)行上面列出的相同的啟動(dòng)文件。同時(shí)打印出同樣的ROS消息。

      驗(yàn)證/ cmd_vel和/ cmd_vel_enc是相似的。這應(yīng)該告訴你,以及如何現(xiàn)實(shí)我們預(yù)期的模式相匹配。

      PID控制在GoPiGo

      PID控制應(yīng)該確保車輪在預(yù)期的速度旋轉(zhuǎn)。

      在gopigo_interface.launch,設(shè)置

      嘗試不同的摩擦運(yùn)行上表面上的機(jī)器人,并驗(yàn)證該機(jī)器人更可靠地行進(jìn)相同的距離時(shí),PID控制被接通。

      GitHub 機(jī)器人 視頻

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:第八屆藍(lán)橋杯 2017年省賽真題(Java 大學(xué)C組)(第八屆藍(lán)橋杯單片機(jī)國(guó)賽)
      下一篇:計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí)總結(jié)(計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí)總結(jié)(重點(diǎn)))
      相關(guān)文章
      亚洲伊人成无码综合网 | 国产亚洲精品AAAA片APP| 亚洲av福利无码无一区二区| 久久影院亚洲一区| 亚洲综合色视频在线观看| 亚洲AV日韩精品一区二区三区| 亚洲国产午夜精品理论片| 亚洲美女视频一区二区三区| 亚洲国产人成在线观看69网站| 久久久久亚洲AV无码专区首| 亚洲AV成人片色在线观看| 亚洲AV无码1区2区久久| 亚洲韩国—中文字幕| 久久久久久亚洲Av无码精品专口 | 四虎必出精品亚洲高清| 亚洲精品天堂在线观看| 亚洲欧洲日产国码久在线| 亚洲欧美中文日韩视频| 久久亚洲中文字幕无码| 国产精品手机在线亚洲| 亚洲区小说区图片区| 亚洲中文字幕无码久久精品1| 亚洲一久久久久久久久| 久久精品国产精品亚洲毛片| 亚洲精品免费在线| 亚洲日韩国产精品乱-久| 亚洲成a人无码亚洲成www牛牛| 亚洲av无码片vr一区二区三区| 婷婷亚洲天堂影院| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久久久亚洲爆乳少妇无| 亚洲无码在线播放| 亚洲国产精品国自产电影| 亚洲妇女水蜜桃av网网站| 亚洲国产视频久久| 国产偷国产偷亚洲高清人| 在线观看亚洲精品福利片| 亚洲AV无码久久精品蜜桃| 亚洲手机中文字幕| 亚洲最大无码中文字幕| 国产亚洲福利一区二区免费看 |