目录

1、stage介绍

2、启动turtlebot stage仿真程序

3、turtlebot_in_stage.launch 文件内容

4、设定目标位置,观看机器人自主导航过程


源码位于:turtlebot_simulator/turtlebot_stage

1、stage介绍

Stage是Player/Stage项目的一个软件,是一种用于移动机器人和智能传感系统研究的仿真工具。

Stage在一个二维的位图环境下模拟移动机器人、传感器和障碍物等对象。

Stage在设计中就考虑到了多智能体系统的问题,可以提供对多机器人系统的测试仿真。需要了解的是Stage只提供了真正简单,可计算的廉价的设备模式,而无法非常精密地仿真任何具体的设备终端。

Stage 还允许你利用目前还没有的虚拟机器人设备进行实验。

Stage提供了多种传感器和执行器,包括声纳,激光扫描测距仪,色斑显示器,里程计,抓斗,防撞器/触须器以及移动机器人基坐等。

2、启动turtlebot stage仿真程序

(indigo版本支持,kinetic版本没有跑通)

打开命令终端,输入一下命令:

roslaunch turtlebot_stage turtlebot_in_stage.launch

turtlebot_stage 导航仿真分别启动了以下ros包:

- stage                             仿真世界环境发布各种TF坐标关系,odom、base_scan等仿真数据

- map_server                 地图服务,加载其提供的仿真世界的地图

- move_base                  导航功能包,接收其他包的数据实现导航功能,调用A*、DWA实现路径规划

- static map                    静态地图

- amcl                               激光定位程序,通过粒子滤波算法实现机器人的实时定位

- rviz view                       Rviz可视化显示机器人状态、传感器数据、导航路线、costmap、设定导航目标点

启动的窗口包括:

IStage的仿真世界:(相当于真实世界)

II、Rviz环境:(地图、turtlebot模型、算法运行的数据可视化)

III、左右轮TF连接状态:

3、turtlebot_in_stage.launch 文件内容

<!--

Turtlebot navigation simulation:

- stage

- map_server

- move_base

- static map

- amcl

- rviz view

-->

<launch>

<arg name="base"       default="$(optenv TURTLEBOT_BASE kobuki)"/>  <!-- create, rhoomba -->

<arg name="stacks"     default="$(optenv TURTLEBOT_STACKS hexagons)"/>  <!-- circles, hexagons -->

<arg name="3d_sensor"  default="$(optenv TURTLEBOT_3D_SENSOR kinect)"/>  <!-- kinect, asus_xtion_pro -->

<!-- Name of the map to use (without path nor extension) and initial position -->

<arg name="map_file"       default=" $(env TURTLEBOT_STAGE_MAP_FILE)"/> <!-- robopark_plan -->

<arg name="world_file"     default=" $(env TURTLEBOT_STAGE_WORLD_FILE)"/>

<arg name="initial_pose_x" default="2.0"/>

<arg name="initial_pose_y" default="2.0"/>

<arg name="initial_pose_a" default="0.0"/>

<param name="/use_sim_time" value="true"/>

<!--  ******************** Stage ********************  -->

<!--

Publishes transforms:

/base_link -> /base_laser

/base_footprint -> /base_link (identity)

/odom -> base_footprint

Publishes topics:

/odom : odometry data from the simulated odometry

/base_scan : laser data from the simulated laser

/base_pose_ground_truth : the ground truth pose

Parameters:

base_watchdog_timeout : time (s) after receiving the last command on cmd_vel before stopping the robot

Args:

-g : run in headless mode.

-->

<node pkg="stage_ros" type="stageros" name="stageros" args="$(arg world_file)">

<param name="base_watchdog_timeout" value="0.5"/>

<remap from="odom" to="odom"/>

<remap from="base_pose_ground_truth" to="base_pose_ground_truth"/>

<remap from="cmd_vel" to="mobile_base/commands/velocity"/>

<remap from="base_scan" to="scan"/>

</node>

<!--  ***************** Robot Model *****************  -->

<include file="$(find turtlebot_bringup)/launch/includes/robot.launch.xml">

<arg name="base" value="$(arg base)" />

<arg name="stacks" value="$(arg stacks)" />

<arg name="3d_sensor" value="$(arg 3d_sensor)" />

</include>

<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">

<param name="use_gui" value="true"/>

</node>

<!-- Command Velocity multiplexer -->

<node pkg="nodelet" type="nodelet" name="mobile_base_nodelet_manager" args="manager"/>

<node pkg="nodelet" type="nodelet" name="cmd_vel_mux" args="load yocs_cmd_vel_mux/CmdVelMuxNodelet mobile_base_nodelet_manager">

<param name="yaml_cfg_file" value="$(find turtlebot_bringup)/param/mux.yaml"/>

<remap from="cmd_vel_mux/output" to="mobile_base/commands/velocity"/>

</node>

<!--  ************** Navigation  ***************  -->

<include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml"/>

<!--  ****** Maps *****  -->

<node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)">

<param name="frame_id" value="/map"/>

</node>

<include file="$(find turtlebot_navigation)/launch/includes/amcl/amcl.launch.xml">

<arg name="scan_topic" value="scan"/>

<arg name="use_map_topic" value="true"/>

<arg name="initial_pose_x" value="$(arg initial_pose_x)"/>

<arg name="initial_pose_y" value="$(arg initial_pose_y)"/>

<arg name="initial_pose_a" value="$(arg initial_pose_a)"/>

</include>

<!--  **************** Visualisation ****************  -->

<node name="rviz" pkg="rviz" type="rviz" args="-d $(find turtlebot_stage)/rviz/robot_navigation.rviz"/>

</launch>

4、设定目标位置,观看机器人自主导航过程

在rviz界面,点击菜单栏的【2D Nav Goal】 然后在图书中选择一个位置点击鼠标左键并拖到鼠标设定方向终点机器人的方向。

会发现机器人自动设定了全局路径,并启用DWA算法自动导航到设定的目标位置。

Turtlbot仿真之Stage相关推荐

  1. 机器人系统常用仿真软件介绍和效果

    机器人系统常用仿真软件介绍和效果 1 主要介绍以下七种仿真平台(侧重移动机器人仿真而非机械臂等工业机器人仿真): 1.1  USARSim-Unified System for Automation ...

  2. 机器人系统常用仿真软件介绍效果与评价指标

    本文转载自博主zhangrelay:http://blog.csdn.net/ZhangRelay/article/details/42586491 转载过来,方便自己查看,感谢原博主. 机器人系统常 ...

  3. 2022年杂学之机器人篇

    以下记录的是,我在学习中的一些学习笔记,这篇笔记是自己学习的学习大杂烩,主要用于记录,方便查找 一.概述 ##1.机器人概念简介 ##2.机器人的应用已经到渗透到方方面面了 ##3.机器人的现状和开发 ...

  4. ROS1云课→19仿真turtlebot(stage)

    ROS1云课→18一键配置 ROS1云课→17化繁为简stdr和f1tenth 依据一键配置将turtlebot仿真案例全部配置好. TurtleBot 是带有开源软件的低成本个人机器人套件. Tur ...

  5. Turtlebot+ROS Stage仿真环境实现MPC轨迹跟踪

    在无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现[40行代码]中介绍了MPC方法在无人车轨迹跟踪中的应用.以Udacity中的例子作为引子,详细介绍了MPC的原理,无人车的运 ...

  6. 【ROS-Stage】Stage机器人仿真实验(三)

    参考资料: Modules 本文大概翻译了Stage提供的几种模型的介绍,有些模型只翻译了简介,机器人底座.执行器和激光传感器翻译的比较详细.在最后给出了ROS中Stage的消息类型. 执行器模型(a ...

  7. 【ROS-Stage】Stage机器人仿真实验(二)

    参考资料 ROS stage_ros 与world 模型的讲解 The Stage Robot Simulator Modules 参考资料翻译 Stage提供了多种传感器和执行器模型,包括声纳和红外 ...

  8. matlab 柴油机仿真,用MATLAB/SIMULINK实现柴油机及其控制系统的动态仿真

    第 16卷(1998)第 3期 内 燃 机 学 报 Transaetions of CSICE VDl_16(1998)No.3 ④ f 用 MATLAB/SIMULINK 实现 柴油机 及其控制系统 ...

  9. ROS仿真环境中实现自主导航

    在看完自主导航小车实践的教程(自主导航小车实践)后,很多小伙伴留言说,在学习自主导航小车的时候手上没有合适的ROS机器人底盘做实验,缺少动手操作的机会,学习不深刻.对于底盘问题,我们也分享过一个制作麦 ...

最新文章

  1. jquery validate 详解二
  2. Shell第一个脚本-添加用户
  3. 一种创建进程间COM来启动IE的方式
  4. STM32 PWM输出(映射)
  5. 如何修改SAP calendar 里一周开始的第一天
  6. 全国计算机等级考试题库二级C操作题100套(第63套)
  7. POE交换机供电原理及工作过程
  8. scrapy 分布式 mysql_Scrapy基于scrapy_redis实现分布式爬虫部署的示例
  9. 过来人的亲身经验告诉你,如何从菜鸟晋升月薪过万的测试工程师
  10. BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型(CSOM)基础...
  11. pat A1052:Linked List Sorting静态链表+链表排序
  12. Javascript高级程序设计第四版详细测评
  13. Android 扫描二维码、制作二维码、识别图片中的二维码;简单的Zxing扫一扫功能;
  14. 管理类联考-英语: 前导( 三 )
  15. Strom完整攻略(一)
  16. 利用R语言对RNA-Seq进行探索分析与差异表达分析
  17. NetworkInterface网速监测
  18. EasyExcel导出Excel指定属性列
  19. 「精研科技」× 企企通,全球MIM龙头借助采购供应商数字化向多领域突破
  20. 企业业财一体化落地难?ERP系统推进业财融合,助力成功

热门文章

  1. SQLserver的Always On 可用性组
  2. 找数据不求人,轻松获取你想要的数据!
  3. win7系统如何关闭安全模式,关闭安全模式的方法
  4. 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
  5. Codeforces 892 A Greed(水题)
  6. 手把手教你,Stanford Drone 数据集的正确打开方式
  7. xv6源码解析(一)——系统启动
  8. C++(27)——判断数正负
  9. 个人基因组测序降到 500 元以内后基因组学将有哪些大的改变?
  10. 赠书福利丨被马斯克送上天的《银河帝国》和互联网江湖