ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo仿真和RViz仿真的学习后,本文将通过Gazebo与RViz联合仿真实现机器人在Gazebo仿真环境中运动。


目录

前言

URDF文件改写

Gazebo与RViz联合仿真


前言

机器人操作系统(ROS)提供了Gazebo与RViz两个仿真环境其各有各的用处,Gazebo多用于仿真环境的搭建如房间、马路等, RViz多用于传感器的配置如摄像头、激光雷达等。


URDF文件改写

URDF 文件是一个标准的 XML 文件,在 ROS 中预定义了一系列的标签用于描述机器人模型,主要包含以下部分:

  • < robot> 根标签
  • < link > 连杆标签
  • < joint > 关节标签
  • < gazebo > 仿真标签

其中< gazebo >仿真标签是联合仿真所必须的,接下来将参考Gazebo Sim官方文档来配置二轮差速机器人运动控制器(Controller)以改写URDF文件适用于Gazebo与RViz联合仿真。

step1.新建xacro文件

在urdf文件夹中新建文件controller.xaro并输入:【Ctrl+S保存】


    
        
        
            transmission_interface/SimpleTransmission
            
                hardware_interface/VelocityJointInterface
            
            
                hardware_interface/VelocityJointInterface
                1
            
        
    

    
    

    
        
            Debug
            true
            /
            1
            true
            true
            100.0
            true
            left_wheel_joint
            
            right_wheel_joint
            
            0.277
            
            0.073
            
            1
            30
            1.8
            cmd_vel
            odom 
            odom
            base_footprint
            
        
    

ROS入门教程(七)—— Gazebo与RViz联合仿真_第1张图片

其中驱动装置关节即车体与车轮的关节标签left(right)_wheel_joint,URDF官方文档解释了关节标签的含义如下图所示,本文的left(right)_wheel_joint的Parent为车体连杆标签base_link而Child为车轮连杆标签left(right)_wheel_link,读者可细细体会:

ROS入门教程(七)—— Gazebo与RViz联合仿真_第2张图片

step2.xacro转urdf

在urdf文件夹中打开集成终端,如下所示:

ROS入门教程(七)—— Gazebo与RViz联合仿真_第3张图片

 在集成终端中输入:

rosrun xacro xacro controller.xacro > controller.urdf

ROS入门教程(七)—— Gazebo与RViz联合仿真_第4张图片

step3.合并urdf文件

将导出的controller.urdf中第七行至倒数第二行复制粘贴到irobot.urdf的倒数第二行中:

ROS入门教程(七)—— Gazebo与RViz联合仿真_第5张图片

 这样我们在irobot.urdf文件中添加了仿真标签。


Gazebo与RViz联合仿真

step1.编写gazebo.launch


  
  
  

step2.编写rviz.launch


  
  
  
  

step3.分别运行两个launch文件

终端一输入:

source ./devel/setup.bash
roslaunch irobot gazebo.launch

终端二输入:

source ./devel/setup.bash
roslaunch irobot rviz.launch

 RViz环境配置参考ROS入门教程(五)—— RViz仿真如下所示:

ROS入门教程(七)—— Gazebo与RViz联合仿真_第6张图片

 最终结果如下:

ROS入门教程(七)—— Gazebo与RViz联合仿真_第7张图片

step4.发布消息

Ctrl+Alt+T打开终端输入:

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist "linear:
  x: 1.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.0" 

该代码段的旨在10HZ 的频率循环发送运动信息至订阅者,成功结果如下:

Gazebo与RViz联合仿真


文章预告:ROS入门教程(八)—— 传感器

资料来源:奥特学院(Autolabor)

商业转载请联系官方授权,非商业转载请注明出处

你可能感兴趣的:(ROS入门教程,ubuntu)