最新消息:

4.2 开始使用Gazebo和仿真的TurtleBot

ROS1/一代机器人系统 少儿编程 1626浏览 0评论

4.2.1 引言

本例程将展示如何启动Gazebo仿真器引擎,该例程是下一步探索Gazebo和仿真TurtleBot做准备。Gazebo是一个仿真器,允许用户在逼真物理场景进行测试和实验,Gazebo是机器人学中很有用的工具,因为它允许用户快速创建并运行实验,且带有固体物理学和良好的图像。MATLAB通过ROS接口与Gazebo建立连接。

4.2.2 下载虚拟机

用户可以下载一个虚拟机映像文件,该文件已经安装了ROS和Gazebo,该虚拟机基于Ubuntu Linux系统,并预配置支持机器人系统工具箱的ROS例程。

下载并安装虚拟机的步骤参考链接:http://www.mathworks.com/robotics/15a/ros_vm_install。

启动虚拟机。

在Ubuntu桌面,用户可以看到三个Gazebo环境的图标,在Gazebo例程中,使用“Gazebo Empty”和“Gazebo Playground”,而TurtleBot的例程则使用“Gazebo TurtleBot World”。

4.2 开始使用Gazebo和仿真的TurtleBot

图4.2.1

点击“Gazebo Playground”,打开一个环境。

4.2 开始使用Gazebo和仿真的TurtleBot

图4.2.2

注意:如果屏幕看起来全部是黑的,通过最小化再最大化刷新图像。

在Ubuntu虚拟机打开一个新的终端。

输入“ifconfig”并返回查看虚拟机的网络信息。

在“eth0”下,“inet addr”显示虚拟机的IP地址。

4.2 开始使用Gazebo和仿真的TurtleBot

图4.2.3

必须设置两个ROS环境变量以启动网络:“ROS_MASTER_URI”和“ROS_HOSTNAME”。如果用户使用Linux虚拟机桌面上的演示,这些变量通常情况下在启动的时候就自动完成设置。

(可选)如果用户使用自己的虚拟机,通过在终端运行如下的指令设置变量值。用“ifconfig”获取的IP地址代替“IP_OF_VM”。

echo export ROS_MASTER_URI=http://IP_OF_VM:11311 >> ~/.bashrc
echo export ROS_HOSTNAME=IP_OF_VM >> ~/.bashrc

使用“echo $ENV_VAR”检查环境变量(使用合适的环境变量代替“ENV_VAR”),用户可以关闭终端再重新打开以起作用。

4.2 开始使用Gazebo和仿真的TurtleBot

图4.2.4

正确的环境变量设置如图所示(IP地址为示例)。

4.2 开始使用Gazebo和仿真的TurtleBot

图4.2.5

4.2.3 连接到已有的Gazebo仿真器

如果用户已有运行在Linux的Gazebo,按如下描述设置仿真器:在ROS网页,下载合适TurtleBot的包。根据ROS网页的指示,让TurtleBot运行在仿真的Gazebo环境。保证环境变量设置正确,用户可以在宿主计算机和Gazebo计算之间来回的发送数据。总共有许多种方式设置网络。1.3连接到ROS网络,包含ROS网络中如何验证设备的连接的一些建议。确保用户可以获得如下的话题,在Linux机器上的终端输入“rostopic list”查看可用的话题:

rostopic list

/odom
/mobile_base/commands/velocity
/mobile_base/commands/reset_odometry
/mobile_base/sensors/bumper_pointcloud
/mobile_base/events/cliff
/camera/rgb/image_raw
/scan

4.2.4 宿主计算机设置

查找网络中宿主计算机的IP地址,在Windows机器,在快速命令窗口输入“ipconfig”,在Mac或Linux机器,打开终端并输入“ifconfig”,即可看到IP地址如下图所示。

4.2 开始使用Gazebo和仿真的TurtleBot

图4.2.6

注意:根据用户连接便携式电脑方式不同,连接的类型可能变化,这种情况下用户使用以太网,然而,在许多种情况下无线(wlan)是合适的方式。使用“ping IP_OF_VM”对仿真器机器乒网测试,首先是成功的乒网,接着是不成功的乒网,如下图所示。

4.2 开始使用Gazebo和仿真的TurtleBot

图4.2.7

4.2.5 下一步

4.3TurtleBot的通信。

转自公众号:
Robot404

您必须 登录 才能发表评论!