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

网友投稿 1034 2022-05-29

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

https://blog.csdn.net/ZhangRelay/article/details/107354023

下一代的Gazebo

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

基于插件的物理和渲染抽象-使用您自己的引擎,而无需重新编译模拟仿真器

分层系统,仅加载机器人与之交互的世界的一部分-这允许更大的模拟仿真世界

在多台机器上分布式模拟仿真

高度可定制的基于QtQuick的用户界面

超快速2D运动学物理引擎,平凡物理引擎(TPE)

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

服务器与客户端分离,实现无头模拟仿真

内置支持多种传感器,例如摄像机,激光雷达,IMU,深度摄像机,磁力计,高度计,气压传感器等。

动画人类演员

用于机器人控制的插件,例如差速驱动和防滑转向

图形界面,用于处理模型,自省属性,控制视角,插入模型等。

ROS 1和2集成

模拟仿真

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

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 Citadel: ROS 1 integration

Ignition Citadel: ROS 2 integration

更多案例:

Ignition Citadel: ROS 1 demos

Ignition Citadel: ROS 2 demos

库和工具

还有更多!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 Gazebo机器人模拟仿真支持ROS1 Noetic和ROS2 Foxy

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抽象,可用于测量和可视化各种软件的运行时间。

机器人

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:为防止交通事故,95后学生运用“黑科技”这样做!
下一篇:人机智能交互技术(ROS)实践作业模版与说明
相关文章