zoukankan      html  css  js  c++  java
  • 6.28-机器人模拟器Gazebo基础

    gazebo基础学习

    前言

    • 在算法人员开发出可以真机使用的算法之前进行仿真
    • 学习机器人物理仿真器的基本使用,包括创建场景,制作ROS控制接口等

    目录

    TOC

    参考

    gazebo_ros_pkgs
    ros intergration with gazebo
    gazebo tutorials
    sdf file specification
    plugins 101
    ROS探索总结(二十四)——使用gazebo中的插件

    学习记录

    基础

    安装gazebo7(ubuntu 14.04)

    • 注意:ros-indigo-desktop-full 与 gazebo2共同依赖libsdformat1,安装gazebo7需要卸载gazebo2,也会卸载ros-indigo-desktop-full,注意之后还要继续安装ros-indigo-desktop,以保证其他包不被autoremove掉
    • 注意:以后不要使用sudo apt-get autoremove
    sudo apt-get remove gazebo2
    sudo apt-get install ros-indigo-desktop
    sudo apt-get install gazebo7
    sudo apt-get install 
    liballegro4.4 liballegro4.4-plugin-alsa libcegui-mk2-0.7.6 libcegui-mk2-dev
      libdevil-dev libdevil1c2 libfltk1.1 libfltk1.1-dev liblcms1 liblcms1-dev
      liblcms2-dev liblodo3.0 liblua5.1-0-dev libmng-dev libois-1.3.0 libpmap3.0
      libreadline-dev libreadline6-dev libsilly robot-player
      ros-indigo-driver-base ros-indigo-stage ros-indigo-stage-ros

    安装ROS通讯包

    sudo apt-get install ros-indigo-gazebo7-ros-pkgs ros-indigo-gazebo7-ros-control

    ros-kinetic自带gazebo7不能正常打开

    • 由于gazebo无法自动成功下载到应该有的模型
    • 将下载好的模型复制到~/.gazebo/models中即可
    • 调试技巧-gazebo --verbose

    cs架构

    • gazebo实际上运行了两个可执行程序,一个是gzserver,一个是gzclient。gzserver运行传感器数据产生程序和物理引擎更新程序,能够脱离图形界面独立运行,一个例子是gzserver运行于云计算机上;gzclient运行一个基于QT的用户界面,作为仿真的可视化以及一些仿真参数的设置。
    • 当分别运行gzserver和gzclient时,可以运行多个gzclient实例。

    World Files环境文件

    • 环境描述文件包含仿真中所有的元素,包括机器人,光线,传感器以及静物等。此文件具有SDF格式,以*.world为扩展名
    • sdf文件是一种xml格式文件,用于描述机器人仿真器的物体和环境,经过多年发展SDF已经成为一个稳定,鲁棒的格式,并已经具有描述各种形式的机器人,静态或运动的物体,光线,障碍,甚至物理属性。

    Model Files模型文件

    • 模型文件拥有与环境文件一样的文件语法SDF,但是只能包含一个对,此文件的用途是重复使用模型文件,下面的语法可以使用模型文件
    <include>
      <uri>model://model_file_name</uri>
    </include>

    环境变量

    GAZEBO_MODEL_PATH
    GAZEBO_RESOURCE_PATH    # 其他搜索资源,如环境和媒体文件的路径 # gzserver,gazebo目标文件位置相对路径的起点
    GAZEBO_MASTER_URI
    GAZEBO_PLUGIN_PATH    # 放置插件的路径
    GSZEBO_MODEL_DATABASE_URI    # 在线下载模型的网络地址
    • 默认的setup.bash存放在
    source <install_path>/share/gazebo/setup.sh
    • 插件打开方法示例
    gzserver -s <plugin_filename> <world_file>
    gzclient -g <plugin_filename>

    模型构建

    单个模型构建

    创建一个基本sdf模型

    添加力学特性:惯性

    添加运动关节

    添加传感器

    添加外观

    • 使用freecad,blender,采用中间格式dae
    • 使用solidworks也是可以的

    模型拓扑结构

    • .config文件中声明sdf文件,sdf文件中包含.world内容和机器人部件sdf内容,sdf文件中包含dae,模型和力学特性内容

    使用meshes

    • 也就是在sdf文件的中定义等内容

    模型纹理和花纹

    传感器定义及噪声

    显示传感器数据

    添加噪声

    • 在sdf文件中添加等参数

    写插件来使用这个传感器

    • 是一个cpp文件
    • 添加CMake支持,生成一个插件名称和一个.so库文件
    • 在world文件中添加一些声明,与插件绑定

    源文件中加载这个模型和插件

    • 在源文件中编辑,添加这个传感器,创建接口API即消息发送和接收渠道
    • 测试

    与ROS连接

    • 添加ROS的传输层,在源文件中编辑
    • 修改CMakeLists.txt,编译
    • 完成了
  • 相关阅读:
    git简单使用
    Kafka初入门简单配置与使用
    Hbase简单配置与使用
    Oozie简单配置与使用
    Flume初入门简单配置与使用
    sqoop简单配置与使用
    Android基础系列合集
    Java 基础系列合集
    TCP 和 UDP 区别
    http get和post区别
  • 原文地址:https://www.cnblogs.com/lizhensheng/p/11117519.html
Copyright © 2011-2022 走看看