Gazebo之Actors简介

ops/2024/11/14 23:43:19/

Gazebo之Actors简介

  • 1. 源由
  • 2. Actors简介
  • 3. Skeleton
    • 3.1 Skin
    • 3.2 Animation
  • 4. Scripted trajectory
    • 4.1 脚本参数
    • 4.2 轨迹移动
  • 5. 简单测试
  • 6. 参考资料

1. 源由

在仿真环境添加角色(人、物等),并为之创建脚本动画,可以使得模拟更加贴合实际应用场景,从而验证自动驾驶,避障等相关程序逻辑。

这些仿真内容将被RGB摄像头看到,进而通过ROS节点接收,通过图形算法进行分析,做出相应判断、动作实现自动驾驶等高级应用功能。

而仿真环境最重要的一点就是为此提供一个验证平台,从而更高效的验证逻辑算法的正确性。

2. Actors简介

在Gazebo环境下,两种类型Actors:

  • Skeleton animation
  • Trajectory animation(Combined)

注:Gazebo Sim 支持两种不同的骨骼动画文件格式:COLLADA (.dae) 和 Biovision Hierarchy (.bvh)。

角色具有以下属性:

  • 不受任何力的作用,无论是来自重力、接触还是其他任何来源。
  • 角色支持从COLLADA (.dae)和BVH (.bvh)文件导入的骨骼动画。
  • 角色可以在SDF中直接编写轨迹脚本。

3. Skeleton

打开empty.sdf,并添加一个名为 actor_walking 的角色,如下所示:

<actor name="actor_walking"><skin><filename>https://fuel.gazebosim.org/1.0/Mingfei/models/actor/tip/files/meshes/walk.dae</filename><scale>1.0</scale></skin><animation name="walk"><filename>https://fuel.gazebosim.org/1.0/Mingfei/models/actor/tip/files/meshes/walk.dae</filename><interpolate_x>true</interpolate_x></animation>
</actor>

3.1 Skin

  • <skin> 标签中,加载了一个 COLLADA 文件 walk.dae,该文件指定了我们的角色的外观。当在 <skin> 标签中使用 COLLADA 文件时,其动画也会被加载。
  • <scale> 用于调整皮肤的大小。

3.2 Animation

  • <animation> 标签中,我们使用 <filename> 标签指定我们的角色如何移动。
  • <interpolate_x> 用于在跟随轨迹时在路径点之间插值动画。将其设置为 true 可以实现更真实和流畅的动画。

4. Scripted trajectory

脚本动画,它包括指定在特定时间要达到的一系列姿势。Gazebo Sim 负责在这些姿势之间插值运动,使运动流畅。

4.1 脚本参数

    <script><loop>true</loop><delay_start>0.000000</delay_start><auto_start>true</auto_start>

脚本在 <actor> 标签内定义。在 <script> 标签中可用以下参数:

  • loop:设置为 true 时,脚本将重复循环。为了实现流畅的连续运动,请确保最后一个路径点与第一个路径点匹配,正如我们将要做的那样。
  • delay_start:这是脚本开始前等待的时间(以秒为单位)。如果在循环运行中,则每个循环开始前都将等待这段时间。
  • auto_start:设置为 true 时,动画将在仿真开始播放时立即开始。如果希望动画仅在被插件触发时开始播放,则可以将其设置为 false。

4.2 轨迹移动

轨迹定义为一系列路径点:

        <trajectory id="0" type="walk" tension="0.6"><waypoint><time>0</time><pose>0 0 1.0 0 0 0</pose></waypoint><waypoint><time>2</time><pose>2.0 0 1.0 0 0 0</pose></waypoint><waypoint><time>2.5</time><pose>2 0 1.0 0 0 1.57</pose></waypoint><waypoint><time>4</time><pose>2 2 1.0 0 0 1.57</pose></waypoint><waypoint><time>4.5</time><pose>2 2 1.0 0 0 3.142</pose></waypoint><waypoint><time>6</time><pose>0 2 1 0 0 3.142</pose></waypoint><waypoint><time>6.5</time><pose>0 2 1 0 0 -1.57</pose></waypoint><waypoint><time>8</time><pose>0 0 1.0 0 0 -1.57</pose></waypoint><waypoint><time>8.5</time><pose>0 0 1.0 0 0 0</pose></waypoint></trajectory></script>

<trajectory> 标签内,我们定义了一系列路径点供角色跟随。<trajectory> 有三个属性:idtypetension

  • type 应与 <animation> 标签的 name 属性中指定的值相同。因此,在本例中它被指定为 walk
  • tension 参数用于控制轨迹与给定路径点的贴合程度。默认的 tension 值为零,相当于 Catmull-Rom 样条,这可能会导致动画超越路径点。tension 值为一将使动画紧贴路径点。tension 值应在 0 到 1 的范围内。

<trajectory> 标签下,我们定义以下内容:

  • waypoint:轨迹中可以有任意数量的路径点。每个路径点由时间和姿态组成:
    • time:从脚本开始计时,表示到达该姿态的时间(以秒为单位)。
    • pose:相对于初始角色姿态应该达到的姿态。

5. 简单测试

  • 路径点定义的顺序并不重要,它们将按照给定的时间顺序执行; 定义在
  • 轨迹作为一个整体被平滑处理。这意味着Gazebo做了平滑插值处理,但路径点中包含的确切姿态可能不会完全达到。
$ gz sim actor_demo.sdf

在这里插入图片描述

测试资料:[SnapLearnGazebo/lesson_03_actors}(https://github.com/SnapDragonfly/SnapLearnGazebo/tree/main/lesson_03_actors)

6. 参考资料

【1】ArduPilot开源代码之ROS2Humble+CartographerSLAM+SITL+Gazebo
【2】ArduPilot飞控之Gazebo + SITL + MP的Jetson Orin环境搭建
【3】ArduPilot飞控之ubuntu22.04-Gazebo模拟
【4】PX4模块设计之七:Ubuntu 20.04搭建Gazebo模拟器


http://www.ppmy.cn/ops/90017.html

相关文章

Centos8搭建npm和maven的nexus私服

nexus私服部署需要依赖JDK&#xff0c;故首先在服务器上部署JDK。 JDK 8 的安装教程 1. 下载安装包 官网下载&#xff1a; Java Archive 注&#xff1a; 官网下载需要注册 Oracle 账户并登录。 2. 安装 将下载下来的tar包上传到服务器上&#xff0c;示例为上传到服务器的/…

PyTorch乐器声音音频识别应用

新书速览|PyTorch深度学习与企业级项目实战-CSDN博客 乐器声音音频识别对实现自动化乐理分析、音乐信息检索和音频内容识别等应用具有重要意义。乐器声音音频识别是指通过对乐器演奏或录制的音频进行分析&#xff0c;自动判断出音频中所使用的乐器种类。这对于音乐家、音乐学者…

sqlilab本地靶场注入less-1~less-6

如何通过information_schema数据库查表名&#xff0c;列名 首先要了解mysql和mariadb数据库默认自带的tables有哪些&#xff1a; mariadb自带数据库 information_schema performance_schema mysql MySQL自带数据库 information_schema performance_schema mysql…

优化Apache Kylin性能:从调优到高效查询

优化Apache Kylin性能&#xff1a;从调优到高效查询 Apache Kylin 是一个开源的分布式分析引擎&#xff0c;能够提供超高速的查询能力&#xff0c;特别适用于大规模数据集上的多维分析&#xff08;OLAP&#xff09;。优化Kylin的性能对于确保其在大数据环境下的高效运行至关重…

ELK实现nginx、mysql、http的日志可视化实验

API接口&#xff1a; 软件内部代码之间通信的接口 代码的连接点 端口是对外提供访问程序的内容接口 filebeat&#xff1a; 1、可以在本机收集日志 2、也可以远程收集日志 3、轻量级的日志收集系统&#xff0c;可以在非java环境运行 logstash是在jvm环境中运行&#xff0c…

未授权访问漏洞系列

环境 1.此漏洞需要靶场vulhub&#xff0c;可自行前往gethub下载 2.需要虚拟机或云服务器等linux系统&#xff0c;并在此系统安装docker和docker-compose提供环境支持 3.运行docker-compose指令为docker-compose up -d即可运行当前目录下的文件 Redis未授权访问漏洞 一、进…

UE5 大鹅的点击移动 第三人称

文章目录 一、创建动画蓝图二、创建 Location 地标三、Character 和 PlayerControl 的控制四、实现效果 一、创建动画蓝图 这里以 UE5 从零开始制作跟随的大鹅-CSDN博客 创建的动态资产创建动画蓝图&#xff1b;需要用到的资产列表有&#xff1a;大鹅的骨骼网格体&#xff0c;…

2024 7.29~8.4 周报

一、上周工作 2024 7.22~7.28周报-CSDN博客 二、本周计划 修改论文 三、完成情况 3.1 论文修改 3.1.1 摘要 问题&#xff1a;所写问题是一般性的深度网络问题&#xff08;过拟合&#xff09;&#xff0c;并没有针对FWI的问题&#xff08;边缘不清晰、深层不清晰、速度慢…