TurtleBot3使用课程-第一节a(北京智能佳)

       注意:当前课程中示例来源主要针对与ROS kinetic 版本和最初树莓派3B版本的机器人,后面的机器人软件已经升级了好几版本,部分内容可能于此说明不一致,仅供参考。

1.ROS设置(远程PC)

1.1 ROS安装和设置

参考资料:http://wiki.ros.org/kinetic/Installation/Ubuntu

ROS Kinetic版本适用于Ubuntu15.10,Ubuntu16.04和Debian8,但建议使用Ubuntu16.04。

1.1.1 设置source.list

输入下面的命令以获得要安装的ROS包的最新版本。

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

1.1.2 键设置

设置访问Ubuntu服务器的key。

sudo apt install curl

curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

1.1.3 ROS安装

首先,更新到最新版本的Ubuntu包索引。

sudo apt-get update

您可以逐个安装所需的ROS包,但一般情况下,建议安装桌面-完整包,如下所示

sudo apt-get install ros-kinetic-desktop-full

1.1.4安装包构建的依赖关系

此外,安装下面的包有助于创建和管理ROS工作区或下载与ROS包相关的其他包。

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-urdf ros-kinetic-xacro \

  ros-kinetic-compressed-image-transport ros-kinetic-rqt* \

  ros-kinetic-gmapping ros-kinetic-navigation ros-kinetic-interactive-markers

1.1.5初始化rosdep

在使用ROS之前需要初始化rosdep。

rosdep帮助您安装编译或运行用ROS编写的代码所需的相关包(正式称为依赖)

sudo rosdep init

rosdep update

1.1.6 ROS环境设置

如下图所示,将带有ROS设置的环境文件添加到.bashrc文件中,这样它每次运行shell时都会自动运行。

echo “source /opt/ros/kinetic/setup.bash” >> ~/.bashrc

下面是将.bashrc文件重新加载到当前打开的shell的命令。

source ~/.bashrc

 



     1.2 基于ROS命令


命令

功能

roscore

用作单个命令。 运行ROS主机和运行ROS所需的服务器。

rosrun

运行指定的节点。

roslaunch

使用选项运行文件中指定的多个节点。

rosclean

检查或删除ROS的日志文件。

roscd

将(更改dir)移动到存储指定ROS包的目录。

rostopic

检查ROS主题信息。

rosservice

检查ROS服务信息。

rosnode

检查ROS节点信息。

rosparam

检查ROS参数信息。

rosbag

记录或播放ROS中的消息。

rosmsg

显示ROS消息数据结构。

rossrv

显示ROS服务数据结构。

catkin_create_pkg

自动生成ROS包和相关文件。

catkin_make

用catkin构建系统构建包。

rospack

显示指定的ROS包信息。

2.TurtleBot3 ROS安装

用RaspberryPI3B+和RaspbianOS安装ROS1动力学。

图像文件包含ROS和TurtleBot3的基本包。

当使用不同的SBC和OS时,请参阅每个软件和硬件的手册。

1.下载Turtlebot3Raspbian图像为RaspberryPI3B+

2.下载后提取压缩文件

3.使用蚀刻器或Win32 DIsk Imager(Linux,Windows)工具将映像文件复制到SD卡

4.根据官方指南

5.从这里开始,使用连接到RaspberryPI的监视器和输入设备从RaspberryPI终端运行

6.输入下面的配置命令并选择   >

7.网络时间协议(NTP)服务器安装和同步


8.当设置完成后,您可以删除连接到RaspberryPI的监视器和输入设备。

3.网络设置

    3.1PC网络设置


ROS Master运行在Turtlebot3的远程PC上。

必须为基于ROS的Turtlebot3和远程PC设置IP地址以相互通信。

请注意,远程PC和TurtleBot3的PC(或SBC)必须连接到同一路由器才能连接到同一无线网络。 连接到网络后,通过输入以下命令查找IP地址。


下面显示的IP地址是远程PC的IP地址。


修改网络配置文件中的设置。如果未安装nano编辑器,请安装编辑器首先使用以下命令。


新闻    移动到文件的末尾。输入远程PC的IP地址的  还有 如下所示


当你完成编辑的时候  ,按  在屏幕上问你是否愿意保存,然后按  覆盖文件并退出。

最后,使用下面的命令将bashrc文件中的更改应用到当前终端窗口。


      3.2. Turtlebot3 SBC网络设置

若要从远程PC访问TurtleBot3 SBC终端,请输入ssh命令和TurtleBot3SBC的IP地址如下所示。 默认密码为小写

在终端窗口输入一下命令,编辑RaspberryPI的配置文件。



新闻   移动到文件的末尾。如下图,输入的IP地址远程PC到  并将RaspberryPI的IP地址发送到


4.运行Turtlebot3


在运行TurtleBot3之前,安装TurtleBot3所需的ROS包。


    4.1 提供

执行下面的命令时,请区分RemotePC和TurtleBot3 SBC。 特别是,不要在TurtleBot3 SBC上运行roscore。在执行命令之前,确保每个设备(TurtleBot3 SBC,RemotePC)的IP地址设置正确。

如果电池的电压低于11V,机器人将连续蜂鸣。 停止使用机器人,如果低压蜂鸣声响起,则给电池充电。

4.1.1 运行

[远程PC]运行下面的命令

4.1.2 TurtleBot3 提供


[TurtleBot3 SBC]以下安装方法仅适用于ROS1动力学。


如果TurtleBot3 模型是Burger,则当提包成功执行时,将在终端中显示一下消息




如果消息中发生与LIDAR(扫描)相关的传感器错误,请在检查TurtleBot3的LDS-01传感器连接后重复启动过程或重置OpenCR。

[远程PC]下面的命令显示了Turtle Bot3和远程PC成功执行时使用的主题列表。


[远程PC]您可以看到使用下面的代码在图表中执行的各种节点和消息的信息。


4. 1. 3. 运行TurtleBot3在RViz

[远程PC]在运行启动之前指定Turtle Bot3模型名称。 指定其中使用的模型的名称 在${TB3_MODEL}中,命令如下所示



[远程PC]打开一个新的终端窗口并键入以下命令。 使用下面的命令可以通过加载RViz的配置文件来可视化带有RViz的Turtle Bot。



      4. 2. 使用键盘进行远程控制

Turtle Bot3可以用各种设备远程控制。 对PS3、XBOX360、ROBOTIS RC100等控制器进行了远程控制测试。 硬件与Turtle Bot3 [DYNAMIXEL,树莓PI3B+,开放CR1.0,UbuntuMate16.04(ROS动能)]




[远程PC]使用下面的命令运行turtlebot3_teleop_key节点。

当节点成功执行时会出现以下消息,您可以使用键盘控制Turtle Bot3