首頁 > TurtleBot3【2020通用教程】 > TurtleBot3使用課程-第一節b(北京智能佳)
2020
11-26

TurtleBot3使用課程-第一節b(北京智能佳)

目錄

1.模擬運行TurtleBot 2

1.1 ROS安裝和設置 2

1.1.1 turtlebot3 在Gazebo中模擬 3

1.1.1.1用于Gazebo的ROS包裝 3

1.1.1.2 turtlebot3運行 7

1.1.1.3避免碰撞 7

1.1.1.4運行 RViz 7

1.2真實機器人與仿真交叉開發 8

1.2.1目標 8

1.2.1.1網絡配置 8

1.2.1.2網絡設置方案1 8

1.2.1.3網絡設置方案2 11

1.2.2 ROS網絡設置 13

1.2.3其他設置 14

1.2.4 Turtlebot3,如何運行模擬轉換 16



1.模擬運行TurtleBot

Turtlebot3支持一個可以通過仿真在虛擬環境中編程和開發機器人的環境。 有兩種開發環境可供選擇:使用假節點和RViz可視化工具或使用3D模擬器Gazebo。 使用假節點適合于測試機器人的模型和運動,但它具有無法使用傳感器的缺點。 Gazebo推薦使用SLAM導航,因為它允許模擬各種傳感器,如IMU、LIDAR和相機。

1.1ROS安裝和設置

要使用turtlebot3_fake_node,需要安裝turtlebot3_simulation元包。 要使用turtlebot3_simulation元包,必須安裝turtlebot3元包和turtlebot3_msgs包。

[遠程PC]使用以下命令安裝包。

[遠程PC]要運行虛擬機器人,請運行turtlebot3_fake的.launch文件,如下所示。

turtlebot3_fake是一個簡單的節點,可以在不使用真正的機器人的情況下進行模擬。 在RViz中,您可以使用遠程控制節點控制虛擬Turtle Bot3。

您必須首先指定turtlebot3的模型名稱。 在下面的命令中指定模型的名稱(漢堡、華夫、waffle_pi)到與${TB3_MODEL}對應的部分。






1.1.1 turtlebot3 在Gazebo中模擬

使用Gazebo有兩種模擬方法,一種使用ROS中的turtlebot3_gazebo包,另一種使用沒有ROS的turtlebot3_gazebo_plugin。在這里,我們將使用使用ROS和turtlebot3_gazebo的方法。

1.1.1.1用于Gazebo的ROS包裝

當第一次在遠程PC上運行Gazebo時,程序可能需要一段時間才能啟動。


A.虛擬世界的例子

[遠程PC]Turtle Bot3可以使用下面的命令加載到Gazebo上的一個空空間中。





B.turtlebot3 世界例子

[遠程PC]Turtle Bot3可以使用下面的命令加載到基于turtle Bot符號的地圖中。




C.turtlebot3房子示例

[遠程PC]Turtle Bot3可以使用下面的命令加載到虛擬建筑中。




1. 1. 1. 2. turtlebot3運行

[遠程PC]打開一個新的終端窗口并使用下面的命令運行turtlebot3_teleop_key節點


1. 1. 1. 3. 避免碰撞

[遠程PC]要自動移動turtlebot3世界中的turtlebot3,請關閉所有操作終端,并在新終端窗口中輸入以下命令。


[遠程PC]打開一個新的終端窗口并運行下面的避免碰撞模擬節點。


1. 1. 1. 4. 運行 RViz

[遠程 PC]RViz在模擬運行時可視化發布主題的數據。

您可以通過在新的終端窗口中輸入以下命令來運行RViz。



1.2真實機器人與仿真交叉開發

1.2.1目標

提出了一個環境,使20個Turtlebot3點和40個模擬之間的無縫交叉開發,并提出了一個網絡配置計劃。

提出了交叉開發的實現方法。


1.2.1.1 網絡配置


假設

所有TB3和用戶PC(模擬)都有一個靜態IP。

雖然用戶PC即使不是靜態IP也可以操作,但建議用戶使用靜態IP來方便ROS網絡設置。

每個用戶都知道用戶應該使用的TB3的IP地址。

1.備選案文1

使用多個路由器(5個):4個TB3和8個人(包括模擬器)使用一個路由器(推薦)

2.備選案文2

連接到高性能路由器的40人和20TB3

1.2.1.2 網絡設置(方案1

1.路由器設置

     SSID和路由器IP(IP帶):每個路由器都有不同的設置方法,因此省略了詳細的解釋


2.turtlebot3網絡設置

IP地址示例(在Turtlebot_Server_1的情況

[Turtlebot3]IP:4個單元

10.17.1.11

10.17.1.12

10.17.1.13

10.17.1.14

[用戶個人電腦]IP:8

10.17.1.22

10.17.1.23

10.17.1.24

10.17.1.25

10.17.1.26

10.17.1.27

10.17.1.28

設置Turtlebot3的IP和用戶PC連接到其余4臺服務器,地址上面的方法相同。


網絡設置

[Turtlebot3](10.17.1.11)

1.將鍵盤、鼠標和監視器連接到Turtlebot,然后啟動RaspberryPI。

2.打開終端窗口,更改  一部分  文件。


3.添加下面的內容

4.保存文件后重新啟動


5.配置網絡管理器如下圖所示


6.連接到路由器,檢查IP地址




1.2.1.3網絡設置(方案2)

1.路由器設置

SSID和路由器IP(IP帶):每個路由器都有不同的設置方法,因此省略了詳細的解釋。

Turtlebot_Server:10.17.1.1(10.17.1.x)

  1. Turtlebot3機器人網絡設置(使用靜態IP方便)IP地址示例

IP地址示例

IP:20個單位

10.17.1.11~30-[用戶個人電腦]IP:40臺

10.17.1.1.101~140-網絡設置-[Turtlebot3](10.17.1.11)

1.將鍵盤,鼠標和監視器連接到Turtlebot,然后啟動RaspberryPI

2.打開終端窗口,更改  一部分 文件。


3.添加下面的內容


4.保存文件后重新啟動


5.連接到路由器,檢查IP地址。 打開一個終端,輸入如下。



[用戶個人電腦](10.17.1.101)

1.在網絡管理器中設置后保存,如下圖所示。



2.連接到路由器,檢查IP地址


1.2.2 ROS網絡設置

這里的ROS網絡設置是一種不同于以前使用的方法的新方法。

通過應用此方法,無需執行

連接到后的命令TurtleBot SBC從遠程PC在未來

完成設置后,您可以運行連接到網絡的TurtleBot3

在遠程PC上直接輸入帶有TurtleBot3的IP地址的命令。


1.[Turtlebot3]

不需要額外的ROS網絡設置。

2.[用戶個人電腦]

參考資料:e手冊

用戶PC IP示例:10.17.1.101

檢查用戶PC的IP(當輸入下面的命令時,上面設置的用戶PC的靜態IP將被輸出)


編輯 文件:修改下面的文本,如果缺少文本,則添加文本。


1.2.3其他設置

1.[Turtlebot3]

創造  使用機器標簽(文件位置:)在啟動文件中使用的文件:(  

/home/pi)


添加執行權限


2.[用戶個人電腦]

生成要連接的Turtlebot3的ssh鍵,使用下面要創建的腳本

創建keygen腳本:使用ssh鍵掃描Create腳本的各種算法進行密鑰生成

  創建腳本



添加執行權限


運行腳本(ex。 如果TB3的IP為10.17.3.11~30,則在將靜態IP設置為20TB3單元后,命令應在TB3打開后執行)


創造turtlebot3_robot_machine.發行

1.機器標記是針對節點的,因此它不能與包含標記一起工作。 turtlebot3_robot.launch文件需要修改。

2.[Turtlebot3]turtlebot3_robot.launch的候補。 不需要直接連接到3.Turtlebot,也不需要在運行時更改Turtlebot3的ROS網絡設置。

在turtlebot3/turtlebot3_bringup/Launch文件夾中創建下面的文件



1.2.4 Turtlebot3,如何運行模擬轉換

所有執行都在[遠程PC]上執行]

1.運行TB3

roscore打開roscore終端并輸入下面的命令


Turtlebot遙控器:turtlebot3_robot_machine.launch

打開另一個終端并輸入下面的命令(假設連接turtlebot3的IP地址為10.17.1.11)



1.當出現SSH錯誤時,輸入以下命令并再次運行


2.如果另一個用戶正在使用Turtlebot,則在啟動啟動文件時會出現以下消息


打開另一個終端,輸入下面的命令


Rviz

打開一個新終端,輸入以下命令(如果使用WafflePI,輸入waffle_pi而不是${TB3_MODEL}


2.運行模擬(Gazebo)參考:roscoree手冊

打開一個終端,輸入下面的命令


運行Gazebo打開另一個終端,并輸入下面的命令(如果使用WafflePI,則輸入waffle_pi而不是${TB3_MODEL})


Rviz

打開一個新終端,輸入以下命令(如果使用WafflePI,輸入waffle_pi而不是${TB3_MODEL})

3.使用切換

實時切換:涼亭在使用/use_sim_time參數的實時切換(切換使用同時保持roscore)方面存在困難。

切換方法

關閉所有節點,包括roscore(按下  在運行中+終端)

采用上述方法切換Turtlebot3真實機器人和仿真比較。



















本文》有 1 條評論

  1. 胡敏 胡敏 說:

    博主您好,請問貴公司的如下視頻中展示的智能體之間使用的控制協議算法方便告知嗎,我很感興趣:
    群體智能 多機器人群組協作人工智能程序演示
    https://www.bilibili.com/video/BV1eC4y1b7io?from=search&seid=6857627032895394340

留下一個回復