zoukankan      html  css  js  c++  java
  • 机器人系统仿真(十三)——Gazebo仿真环境搭建

    参考视频:【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程_哔哩哔哩_bilibili

    参考文档:http://www.autolabor.com.cn/book/ROSTutorials/

    素材下载链接:https://github.com/zx595306686/sim_demo.git

    到目前为止,我们已经可以将机器人模型显示在 Gazebo 之中了,但是当前默认情况下,在 Gazebo 中机器人模型是在 empty world 中,并没有类似于房间、家具、道路、树木... 之类的仿真物,如何在 Gazebo 中创建仿真环境呢?

    Gazebo 中创建仿真实现方式有两种:

    • 方式1: 直接添加内置组件创建仿真环境

    • 方式2: 手动绘制仿真环境(更为灵活)

    也还可以直接下载使用官方或第三方提高的仿真环境插件。

    1.使用素材的环境

    在功能包 urdf02_gazebo 下新建文件夹 worlds,将下载的素材中的 box_house.world 放入此文件夹

     在 launch 新建 demo03_env.launch

    <launch>
        <!--1.需要在参数服务器中载入 urdf -->
        <param name="robot_description" command="$(find xacro)/xacro $(find urdf02_gazebo)/urdf/car.urdf.xacro" />
        <!--2.启动 Gazebo 仿真环境 -->
        <include file="$(find gazebo_ros)/launch/empty_world.launch" >
            <arg name="world_name" value="$(find urdf02_gazebo)/worlds/box_house.world" />
        </include>
        <!--3.在 Gazebo 中添加机器人模型 -->
        <node pkg="gazebo_ros" type="spawn_model" name="spawn_model" args="-urdf -model car -param robot_description" />
    </launch>

    接着运行

    cys@ubuntu:~/demo05_ws$ source ./devel/setup.bash
    cys@ubuntu:~/demo05_ws$ roslaunch urdf02_gazebo demo03_env.launch

     2.添加内置组件创建仿真环境

    2.1 启动 Gazebo 并添加组件

    启动 roscore 

    启动

     rosrun gazebo_ros gazebo

     2.2 保存仿真环境

    添加完毕后,选择 file ---> Save World as 选择保存路径(功能包下: worlds 目录),文件名自定义,后缀名设置为 .world

    2.3 启动

    <launch>
    
        <!-- 将 Urdf 文件的内容加载到参数服务器 -->
        <param name="robot_description" command="$(find xacro)/xacro $(find demo02_urdf_gazebo)/urdf/xacro/my_base_camera_laser.urdf.xacro" />
        <!-- 启动 gazebo -->
        <include file="$(find gazebo_ros)/launch/empty_world.launch">
            <arg name="world_name" value="$(find demo02_urdf_gazebo)/worlds/hello.world" />
        </include>
    
        <!-- 在 gazebo 中显示机器人模型 -->
        <node pkg="gazebo_ros" type="spawn_model" name="model" args="-urdf -model mycar -param robot_description"  />
    </launch>

    核心代码: 启动 empty_world 后,再根据arg加载自定义的仿真环境

    <include file="$(find gazebo_ros)/launch/empty_world.launch">
        <arg name="world_name" value="$(find demo02_urdf_gazebo)/worlds/hello.world" />
    </include>

    3.自定义仿真环境

    3.1 启动 gazebo 打开构建面板,绘制仿真环境

    3.2 保存构建的环境

    点击: 左上角 file ---> Save (保存路径功能包下的: models)

    然后 file ---> Exit Building Editor

    3.3 保存为 world 文件

    可以像方式1一样再添加一些插件,然后保存为 world 文件(保存路径功能包下的: worlds)

    3.4 启动

    同方式1

    4.使用官方提供的插件

    当前 Gazebo 提供的仿真道具有限,还可以下载官方支持,可以提供更为丰富的仿真实现,具体实现如下:

    4.1 下载官方模型库

    git clone https://github.com/osrf/gazebo_models

    之前是:hg clone https://bitbucket.org/osrf/gazebo_models但是已经不可用

    注意: 此过程可能比较耗时

    4.2 将模型库复制进 gazebo

    将得到的gazebo_models文件夹内容复制到 /usr/share/gazebo-*/models

    4.3 应用

    重启 Gazebo,选择左侧菜单栏的 insert 可以选择并插入相关道具了

  • 相关阅读:
    oracle表连接------&gt;排序合并连接(Merge Sort Join)
    内存损坏问题的演示样例及分析
    HTML5 Canvas中9宫格的坑
    hive udaf 用maven打包运行create temporary function 时报错
    Re-installation failed due to different application signatures.
    UVA 6480 Zombie Invasion(模拟退火)
    POJ3436 ACM Computer Factory 【最大流】
    android图像处理系列之三--图片色调饱和度、色相、亮度处理
    android图像处理系列之四--给图片添加边框(上)
    android图像处理系列之五--给图片添加边框(中)
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/15057336.html
Copyright © 2011-2022 走看看