前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ignition Gazebo机器人模拟仿真支持ROS1 Noetic和ROS2 Foxy

Ignition Gazebo机器人模拟仿真支持ROS1 Noetic和ROS2 Foxy

作者头像
zhangrelay
发布2022-03-21 15:36:13
7400
发布2022-03-21 15:36:13
举报

Open Robotics的仿真 小组很高兴宣布ROS Noetic和Foxy之Ignition集成的发布!ROS用户可以轻松访问Ignition Citadel,这是Ignition的第一个5年LTS,将一直支持到2025年。

下一代的Gazebo

Ignition是下一代Gazebo模拟仿真器,具有更新的体系结构和旨在改善模拟仿真体验的新功能。Ignition的一些新功能包括:

  • 基于插件的物理和渲染抽象-使用您自己的引擎,而无需重新编译模拟仿真器
  • 分层系统,仅加载机器人与之交互的世界的一部分-这允许更大的模拟仿真世界
  • 在多台机器上分布式模拟仿真
  • 高度可定制的基于QtQuick的用户界面
  • 超快速2D运动学物理引擎,平凡物理引擎(TPE)

最重要的是,Ignition已经具有许多习惯Gazebo经典使用的功能,例如:

  • 服务器与客户端分离,实现无头模拟仿真
  • 内置支持多种传感器,例如摄像机,激光雷达,IMU,深度摄像机,磁力计,高度计,气压传感器等。
  • 动画人类演员
  • 用于机器人控制的插件,例如差速驱动和防滑转向
  • 图形界面,用于处理模型,自省属性,控制视角,插入模型等。
  • ROS 1和2集成

模拟仿真

可以在https://github.com/ignitionrobotics/ros_ign中找到集成包。尝试例如:

代码语言:javascript
复制
sudo apt install ros-foxy-ros-ign
. /opt/ros/foxy/setup.sh
ros2 launch ros_ign_gazebo_demos rgbd_camera_bridge.launch.py

有关在ROS上使用模拟器的更多详细教程:

更多案例:

库和工具

还有更多!Ignition不仅仅是模拟器:它是C++库和工具的集合,可以独立于机器人应用程序上的模拟器使用。可以在ROS软件包或普通C++项目上使用它们。

可以在package.xml中使用(rosdep):

  • ignition-citadel
  • ignition-cmake2
  • ignition-common3
  • ignition-fuel-tools4
  • ignition-gazebo3
  • ignition-gui3
  • ignition-launch2
  • ignition-math6
  • ignition-math6-eigen3
  • ignition-msgs5
  • ignition-physics2
  • ignition-plugin
  • ignition-rendering3
  • ignition-sensors3
  • ignition-tools
  • ignition-transport8
  • sdformat

包括15个库。以下是一些可能特别感兴趣的内容:

Ignition Math

Ignition Math是用于机器人应用程序的通用数学库。它提供了广泛的功能,包括:

  • 类型模板化的姿势,矩阵,向量和四元数类。
  • 形状表示以及用于计算体积,密度,尺寸和其他属性的运算符。
  • 材料属性,质量,惯性,温度,PID,千米数,球坐标和过滤的类。
  • 可选的Eigen组件,可在几种Eigen和Ignition Math类型之间转换。

Ignition Physics

许多物理模拟软件库已针对不同的应用程序(游戏,机器人技术,科学)设计并具有不同的功能(刚性或可变形接触,2d或3d)。Ignition Physics的设计前提是,没有一个单一的物理引擎能够普遍适用于所有模拟环境。根据物理引擎的功能,应该有可能支持一组不同的功能。然后可以根据每个应用程序的上下文为它选择一个物理引擎。

  • 物理引擎功能的粒度定义作为可选的API。
  • 用于在运行时加载具有所需功能的物理引擎的插件接口。
  • 刚体动力学模拟常见方面的功能
    • 从SDFormat文件构造模型。
    • 碰撞形状(例如框,球,圆柱,网格,高度图)。
    • 关节类型(例如旋转,棱柱形,固定,球,螺钉,通用)。
    • 步骤仿真,获取/设置状态,应用输入。
  • 使用dartsim的物理插件的参考实现。
  • CompositeData结构可有效使用API​​中的本机类型。

Ignition Rendering

与Ignition Physics类似,Ignition Rendering是一个C++库,旨在为不同的渲染引擎提供抽象。它提供了用于创建3D图形应用程序的统一API,并支持基于物理的渲染(PBR)。它附带了对Ogre 1和Ogre 2引擎的支持。

Ignition GUI

Ignition GUI建立在Qt Quick之上,可为小部件提供现代的材料设计外观,这些外观在开发机器人应用程序(例如3D视图,绘图,仪表板等)时非常有用,并且可以在方便的统一界面中一起使用。

Ignition GUI附带了几个可立即使用的小部件,并提供了可用于添加自定义小部件的插件界面。

Ignition Plugin

Ignition Plugin是一个瘦库,用于注册插件库并在运行时动态加载它们。

Ignition Common

Ignition Common提供了一组涵盖许多不同用例的组件。视听库支持处理音频和视频文件,图形库可以将各种3D网格纹理文件格式加载到通用的内存表示形式中,而Ignition Common的核心库包含跨Base64编码/解码到线程池的功能。

Ignition Common包含的许多功能中的一些是:

  • AV :基于FFMpeg的音频解码器,以及视频编码器和解码器。
  • Core :Base64编码和解码,电池模型,控制台日志记录,跨平台文件系统接口,URI处理和线程池。
  • Events :鼠标和键盘事件,以及高性能的信号和回调系统。
  • Graphics :Collada,SVG,STL,OBJ和DEM加载程序。内存中的网格,图像和材质表示。动画处理和BVH加载器。
  • Profiler:通用的Profiler抽象,可用于测量和可视化各种软件的运行时间。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下一代的Gazebo
  • 模拟仿真
  • 库和工具
  • Ignition Math
  • Ignition Physics
  • Ignition Rendering
  • Ignition GUI
  • Ignition Plugin
  • Ignition Common
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档