1.Gazebo概述

在Gazebo中的模拟效果是非常好的.

它的特性

Dynamics Simulation

直接控制物理引擎参数

Building Editor

无需代码即可在Gazebo中创建机器人模型(只用insert就可以插入各种模型,可以在基于Gazebo的云端中创建机器人模型)

Advanced 3DGraphics

提高真实性

Sensors

提供激光雷达,摄像头,RGBD摄像头,IMU等传感器

Robot Models

提供多种机器人模型,包括PR2,iRobot,Create,TurtleBot,机械臂,灵巧手等

Environments

提供多种模拟环境

Programmatic Interfaces

支持ROS,API接口.

Gazebo构架(由服务器和客户端组成)

服务器:其作用是执行物理循环,生成传感器数据

执行文件:gzserver

Libraries:Physics(物理环境模拟),Sensors(传感器),Rendering(用于渲染),Transport(传输数据)

客户端:其作用提供用户交互和可视化仿真

执行文件:gzclient

Libraries:Transport,Rendering,GUI

如何运行gazebo

有两种方式:

1.单独运行server和client

gzserver

gzclient

2.同时运行gazebo server和client

gazebo

如果从ros中启动,则使用

rosrun gazebo_ros gazebo

本版本的ros是indigo,gazebo的版本为2.2,它有一个故障问题,即找不到models,

Ubuntu下显示隐藏文件,使用快捷键ctrl+h

下载完上面的文件之后,才可以运行Gazebo.

运行之前启动roscore,再运行rosrun gazebo_ros gazebo

从上面可以看出在world下面提供了Scene,Physics,Models(模拟各种模型,默认只有一个地平面),LIghts(模拟光线).

insert下面包含各种Models.

按住shift+z可以进行左右旋转

将上面内容保存 save world as,其格式为sdf

它默认的launch文件

在上面的文件中paused表示以暂停模式运行

use_sim_time表示使用模拟时间

extra_gazebo_args表示表示外部的其他参数

gui表示窗口模式

world_name默认是worlds/empty.world,我们可以指定自己的文件比如之前保存的demo_world.sdf文件,在后面直接把launch文件里面empty_world继承一下,然后把下面的参数默认换成自己的demo_world.world来运行刚刚配置好的世界.

上面的3个参数是跟在gazebo_ros中的参数,第一个参数是否暂停运行,第二个参数为headless,第三个参数为是否详细运行.

下面的script_type,如果是debug就运行debug,否则运行gzserver.

最下面是client的参数,如果选择gui的话.

willowgarage_world.launch文件继承自empty_world.launch文件

刚开始直接包含了empty_world.launch文件,然后把参数换成willowgarage.wold文件.

下面的参数是跟empty_world.launch是一样的可以不用指定.

TurtleBot in gazebo

下面看一下turtlebot的urdf文件

xacro::macro是支持描述文件的一种格式,

URDF(机器人描述的文件)的生成,

Turtlebot navigation

为了能够控制启动的机器人,把下面的一行加入文件turtlebot_gmapping.launch

如果不加就会出现如下错误

按照上面修改过后正确运行之后,再运行rviz

rosrun rviz rviz

然后再在rviz中添加如下内容

最后rviz中的显示结果如下:

看一下上面都发布了那些主题

它发布的主题跟move_base基本上是一致的.

它也有/move_base/goal这个主题,就是rviz上面的2d导航.

下面来启动一下turtlebot的gmapping

roslaunch turtlebot_navigation turtlebot_gmapping.launch ,同样需要按照上面的方式进行修改.

下面来写一个避障的程序,首先需要一个/scan主题,用它来发现离障碍物的距离.以及控制机器人运动的主题为

/cmd_vel_mux/input/teleop

在之前的包为turtlebot_navigation下的src下创建源文件turtlebot_walk.cpp

CMakeLists.txt

文件内容

package.xml

然后在launch文件的turtlebot_amcl.launch中加入下面内容,启动本程序的节点

下面运行一个turtlebot_amcl.launch文件

roslaunch turtlebot_navigation turtlebot_amcl.launch

关闭该节点.

第十八课 Gazebo仿真器的更多相关文章

  1. NeHe OpenGL教程 第四十八课:轨迹球

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  2. NeHe OpenGL教程 第三十八课:资源文件

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. NeHe OpenGL教程 第二十八课:贝塞尔曲面

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. NeHe OpenGL教程 第十八课:二次几何体

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. 深入浅出CChart 每日一课——第十八课 女神的套娃,玩转对话框

    前面笨笨已经给大家展示了CChart编程的N个例子.这些例子中,我们的CChart图像都是绘制在程序的主窗口中的. 在很多情况下,我们面对的情形不是这样的.这节课笨笨就给大家介绍一下怎样在对话框中用C ...

  6. 斯坦福第十八课:应用实例:图片文字识别(Application Example: Photo OCR)

    18.1  问题描述和流程图 18.2  滑动窗口 18.3  获取大量数据和人工数据 18.4  上限分析:哪部分管道的接下去做 18.1  问题描述和流程图

  7. Asp.Net Web API 2第十八课——Working with Entity Relations in OData

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html. 本文的示例代码的下载地址 ...

  8. 第二十八课:focusin与focusout,submit,oninput事件的修复

    focusin与focusout 这两个事件是IE的私有实现,能冒泡,它代表获得焦点或失去焦点的事件.现在只有Firefox不支持focusin,focusout事件.其实另外两个事件focus和bl ...

  9. 第十八课:js样式操作需要注意的问题

    样式分为,外部样式(<link />),内部样式(<style></style>),行内样式(style:).再加上一个important对选择器权重的干扰. 大体 ...

随机推荐

  1. 如何移除双系统mac中的windows系统

    双系统 双系统即在电脑的不同分区中安装两个系统,两个系统不会互相影响,但是同时只能有一个系统正在运行,并且必须通过重启的方式来更换系统. 双系统一般由于解决对不同系统的需求,而且在电脑中直接安装系统也 ...

  2. LOJ10034 图书管理

    题意 图书管理是一件十分繁杂的工作,在一个图书馆中每天都会有许多新书加入.为了更方便的管理图书(以便于帮助想要借书的客人快速查找他们是否有他们所需要的书),我们需要设计一个图书查找系统. 该系统需要支 ...

  3. 通过API访问Ambari的配置

    HttpClient client = new HttpClient(); Base64.Encoder encoder = Base64.getEncoder(); HttpMethod metho ...

  4. BZOJ3670:[NOI2014]动物园

    浅谈\(KMP\):https://www.cnblogs.com/AKMer/p/10438148.html 题目传送门:https://lydsy.com/JudgeOnline/problem. ...

  5. Java课程设计——坦克大战

    坦克大战——坦克类 一. 团队课程设计博客链接 https://www.cnblogs.com/chenhuilin/p/10275664.html 二.个人负责模块和任务说明 模块:坦克类(玩家坦克 ...

  6. FPGA各大厂商,不可不知

    引言: FPGA市场前景诱人,但是门槛之高在芯片行业里无出其右.全球有60多家公司先后斥资数十亿美元,前赴后继地尝试登顶FPGA高地,其中不乏英特尔.IBM.德州仪器.摩托罗拉.飞利浦.东芝.三星这样 ...

  7. selenium 定位元素可以用多个findElement

    selenium 定位元素可以用多个findElement,如driver.findElement(By.id"XXX").findElement(By.linkText(XXX) ...

  8. keytool生成JKS证书的详细步骤及截图

    注:防止有不必要的空格,尽量不要复制粘贴 1. 依据CFCA所提供的CN生成密钥存储文件和密钥对(创建JKS证书库) keytool -genkey -v -alias slserver -keyal ...

  9. 杂项-公司-百科:华特·迪士尼-un

    ylbtech-杂项-公司-百科:华特·迪士尼 华特·迪士尼(Walt Disney,全名Walter Elias Disney,又译沃尔特·迪士尼,1901年12月5日—1966年12月15日),出 ...

  10. keepalived 预防脑裂检测脚本

    1 检查vip [root@mysql2 keepalived]# cat /etc/keepalived/check_brain_keepalived.sh #!/bin/bash # 检查脑裂的脚 ...