• 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真实机器人和仿真比较。

  • 相关阅读:
    xshell入门及Linux常用命令
    C++之vector
    c++ 之 string
    引用 与 指针
    关于时间复杂度的计算以及相关概念
    位运算
    thymeleafDemo
    面试总结
    关于mvvm原理实现,模拟vue(3)-----发布订阅
    关于mvvm原理实现,模拟vue(2)-----模板编译
  • 原文地址:https://www.cnblogs.com/bjrobot/p/14035459.html
Copyright © 2020-2023  润新知