Gazebo4种物理引擎介绍

Gazebo官网

官网: http://gazebosim.org/
在这里插入图片描述
注意到左上角这么一句话
Dynamics Simulation
Access multiple high-performance physics engines including ODE, Bullet, Simbody, and DART.

1. ODE 引擎

官网http://opende.sourceforge.net/
在这里插入图片描述
OpenDE SourceForge project
OpenDE WIKI
OpenDE auto generated API documentation
OpenDE User forum
Original ode.org website

2. Bullet 引擎

官网http://opende.sourceforge.net/
在这里插入图片描述

3. Simbody 引擎

官网

Simbody is useful for internal coordinate and coarse grained molecule modeling, large scale mechanical models like skeletons, and anything else that can be modeled as bodies interconnected by joints, acted upon by forces, and restricted by constraints.

This project is a SimTK toolset providing general multibody dynamics capability, that is, the ability to solve Newton’s 2nd law F=ma in any set of generalized coordinates subject to arbitrary constraints. (That’s Isaac himself in the oval.) Simbody is provided as an open source, object-oriented C++ API and delivers high-performance, accuracy-controlled science/engineering-quality results.

Simbody uses an advanced Featherstone-style formulation of rigid body mechanics to provide results in Order(n) time for any set of n generalized coordinates. This can be used for internal coordinate modeling of molecules, or for coarse-grained models based on larger chunks. It is also useful for large-scale mechanical models, such as neuromuscular models of human gait, robotics, avatars, and animation. Simbody can also be used in real time interactive applications for biosimulation as well as for virtual worlds and games.

This toolset was developed originally by Michael Sherman at the Simbios Center at Stanford, with major contributions from Peter Eastman and others. Simbody descends directly from the public domain NIH Internal Variable Dynamics Module (IVM) facility for molecular dynamics developed and kindly provided by Charles Schwieters. IVM is in turn based on the spatial operator algebra of Rodriguez and Jain from NASA’s Jet Propulsion Laboratory (JPL), and Simbody has adopted that formulation.

SOURCE CODE: Simbody is distributed in source form. The source code is maintained at GitHub. You can get a zip of the latest stable release here, then build it on your Windows, Mac OSX, or Linux machine (you will need CMake and a compiler).

You can also clone the git repository and build the latest development version here; the repository URL is https://github.com/simbody/simbody.git. If you would like to contribute bug fixes, new code, documentation, examples, etc. to Simbody (and we hope you will!), please fork the repository on GitHub and send pull requests.

If you are new to git, you may want to start with GitHub’s Bootcamp tutorial.

4. DART 引擎

官网http://dartsim.github.io/
在这里插入图片描述

4.1. Introduction

DART (Dynamic Animation and Robotics Toolkit) is a collaborative, cross-platform, open source library created by the Graphics Lab and Humanoid Robotics Lab at Georgia Institute of Technology with ongoing contributions from the Personal Robotics Lab at University of Washington and Open Source Robotics Foundation. The library provides data structures and algorithms for kinematic and dynamic applications in robotics and computer animation. DART is distinguished by its accuracy and stability due to its use of generalized coordinates to represent articulated rigid body systems and Featherstone’s Articulated Body Algorithm to compute the dynamics of motion. For developers, in contrast to many popular physics engines which view the simulator as a black box, DART gives full access to internal kinematic and dynamic quantities, such as the mass matrix, Coriolis and centrifugal forces, transformation matrices and their derivatives. DART also provides an efficient computation of Jacobian matrices for arbitrary body points and coordinate frames. The frame semantics of DART allows users to define arbitrary reference frames (both inertial and non-inertial) and use those frames to specify or request data. For air-tight code safety, forward kinematics and dynamics values are updated automatically through lazy evaluation, making DART suitable for real-time controllers. In addition, DART provides flexibility to extend the API for embedding user-provided classes into DART data structures. Contacts and collisions are handled using an implicit time-stepping, velocity-based LCP (linear complementarity problem) to guarantee non-penetration, directional friction, and approximated Coulomb friction cone conditions. DART has applications in robotics and computer animation because it features a multibody dynamic simulator and various kinematic tools for control and motion planning.

4.2. Features

4.2.1. General

  • Open source under BSD license written in C++.
  • Support multiple platforms: Ubuntu, Archlinux, FreeBSD, macOS, and Windows.
  • Fully integrated with Gazebo.
  • Support models described in URDF and SDF formats.
  • Provide default integration methods, semi-implicit Euler and RK4, as well as extensible
  • API for other numerical integration methods.
  • Support lazy evaluation and automatic update of kinematic and dynamic quantities.
  • Provide extensible API for embedding user-provided classes into DART data structures.
  • Support comprehensive recording of events in simulation history.
  • Provide 3D visualization API using OpenGL and OpenSceneGraph with ImGui support.
  • Provide extensible API to interface with various optimization problems such as nonlinear programming and multi-objective optimization.

4.2.2. Collision Detection

  • Support multiple collision detectors: FCL, Bullet, and ODE.
  • Support various collision shapes including primitive shapes, concave mesh, and probablistic voxel grid.
  • Support minimum distance computation.

4.2.3. Kinematics

  • Support numerous types of Joint.
  • Support numerous primitive and arbitrary body shapes with customizable inertial and material properties.
  • Support flexible skeleton modeling: cloning and reconfiguring skeletons or subsections of a skeleton.
  • Provide comprehensive access to kinematic states (e.g. transformation, position, velocity, or acceleration) of arbitrary entity and coordinate frames
  • Provide comprehensive access to various Jacobian matrices and their derivatives.
  • Support flexible conversion of coordinate frames.
  • A fully modular inverses kinematics framework.
  • A plug-and-play hierarchical whole-body inverse kinematics solver.
  • Provide analytic inverse kinematics interface with ikfast support.

4.2.4. Dynamics

  • Achieve high performance for articulated dynamic systems using Lie Group representation and Featherstone hybrid algorithms.
  • Enforce joints between body nodes exactly using generalized coordinates.
  • Provide comprehensive API for dynamic quantities and their derivatives, such as mass matrix, Coriolis force, gravitational force, other external and internal forces.
  • Support both rigid and soft body nodes.
  • Model viscoelastic joint dynamics with joint friction and hard joint limits.
  • Support various types of actuators.
  • Handle contacts and collisions using an implicit LCP to guarantee non-penetration, directional friction, and approximated Coulomb friction cone conditions.
  • Support ”Island” technique to subdivide constraint handling for efficient performance.
  • Support various Cartesian constraints and provide extensible API for user-defined constraints.
  • Provide multiple constraint solvers: Lemke method, Dantzig method, and PSG method.
  • Support dynamic systems with closed-loop structures.
Gazebo是一个广泛使用的开源机器人仿真平台,它可以用于模拟机器人在不同环境中的行为,以及对机器人进行控制和测试。Gazebo提供了许多物理引擎、传感器和效果等模块,使用户可以在虚拟环境中进行真实的仿真。它支持ROS(机器人操作系统)和其他操作系统,因此用户可以在不同的平台上使用Gazebo进行仿真。Gazebo还支持各类型的机器人和传感器模型,包括无人机、地面车辆、水下机器人和传感器等。 Gazebo的主要功能包括: - 仿真环境:Gazebo提供了一个高度可定制的仿真环境,包括天空、地形、建筑物和障碍物等。用户可以使用Gazebo创建自己的环境,或使用现有的环境模型。 - 物理引擎Gazebo支持多物理引擎,包括ODE、Bullet和Simbody等。用户可以选择最适合他们的应用程序的物理引擎。 - 控制器:Gazebo提供了多控制器,包括PID控制器和力/扭矩控制器等。用户可以使用这些控制器来控制他们的机器人。 - 传感器:Gazebo支持各传感器模型,包括相机、激光雷达、超声波传感器和GPS等。用户可以使用这些传感器来获取机器人周围的信息。 - ROS集成:Gazebo可以与ROS进行集成,使用户可以使用ROS的功能来控制和测试他们的机器人。例如,用户可以使用ROS中的话题和服务来控制机器人。 总之,Gazebo是一个功能强大的机器人仿真平台,它可以帮助用户测试和优化他们的机器人,从而提高机器人的性能和可靠性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值