目录

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. 二阶齐次线性微分方程的通解可以表示成两个线性无关解的线性组合
  2. [国际A类会议] 2018最最最顶级的人工智能国际峰会汇总!CCF推荐!
  3. kettle中的switch_Kettle学习笔记(二)— 基本操作
  4. 向MPEG创始人Leonardo Chiariglione提问
  5. Fetch API——简化你的AJAX
  6. mysql的innodb表生成的物理文件_MySQL innodb表使用表空间物理文件复制或迁移表
  7. Python格式化字符串f-string常用用法
  8. Linux使用vi/vim打开文档/文件报错E325:ATTENTION Found a swap file by the name
  9. 支持Visual Studio 2008和.NET 3.5的企业类库4.0
  10. asm.jar各版本下载网站
  11. python requirements.txt
  12. SM4算法的C++实现(代码)
  13. 论文_毕业设计复现机器学习模型案例大本营(收藏)
  14. 【转帖】GBase 数据库
  15. JOL:查看Java 对象布局、大小工具
  16. 水至清则无鱼,人至察则无徒
  17. 一起聊聊 dB、dB、dBm、dBi 吧!
  18. 进制之间的快速转换法:8421码及原码反码补码之间的相互转换关系
  19. [WEB_ezeval]
  20. jprofiler9.2注册码

热门文章

  1. Bilibili视频投稿经验
  2. You have not agreed to the Xcode license agreements. You must agree to both license agreements below
  3. c语言main必须返回int,C语言 错误:’:: main’必须返回’int’
  4. 鼎智收购北斗星手机网 推全新手机品牌青葱
  5. 新编计算机科学概论考试,热门计算机科学概论论文题目 计算机科学概论论文题目怎么定...
  6. 2022年全球市场有机硅结构密封胶总体规模、主要生产商、主要地区、产品和应用细分研究报告
  7. 技术手段VBA之爬虫
  8. Matlab/simulink、Saber及PSpice学习比较
  9. Linux为什么最多能分4个四个主分区
  10. 关于PS课程中色彩调整部分的学习总结