gazebo之actor标签行人添加碰撞属性

一、问题描述

按照之前的教程,我们能够实现在gazebo环境环境中添加actor标签,可以是人或者是立方体等,并且让其按照我们既定的轨迹来运动。

但是问题又来了。添加的actor就像幽灵一样,随意穿越机器人,而且无法被雷达检测到。

根本原因是,actor没有碰撞属性。

开始解决问题之前,我们首先确保各自版本和环境。

  • ROS melodic
  • gazebo 9

二、解决办法

1. gazebo的插件

使用gazebo提供的对应插件实现碰撞检测功能。

如果是默认安装的话,gazebo所有插件的安装位置:

/usr/lib/x86_64-linux-gnu/gazebo-9/plugins

进入对应链接,能看到很多插件:

在这里插入图片描述我们要解决的问题,需要用到的插件:

  1. libAttachModelPlugin.so
    这个插件能够将actor绑定在一个model上,这个model本身是有碰撞属性的,所以actor也就有了。

  2. libActorCollisionsPlugin.so
    比如面向的actor是人物模型,那么该模型本身就有很多关节。这个插件能够将人体每个部件做精细的描绘。实现更准确的碰撞仿真。


然而,ros自带gazebo下载好后,并没有这两个插件,我们需要自行下载。

第二个比较精细的插件,我在官网找到了资源,我传到CSDN中,不用积分,方便大家下载。
link

第一个我还没找到对应插件,不过第一个肯定没有第二个好用,我也懒得再找了。

2. 安装插件并在gazebo中使用

按照常规流程编译插件:

    mkdir build
    cd build
    cmake ..
    make

然后我们可以在build目录下看到对应的插件:

在这里插入图片描述

使用sudo将插件拷贝到我们之前提到的gazebo插件目录里:

sudo cp libActorCollisionsPlugin.so /usr/lib/x86_64-linux-gnu/gazebo-9/plugins

OK! 我们测试下是否可行:

gazebo actor_collisions.world

之后我们就可以按照actor_collisions.world中的写法,照猫画虎,在自己的actor标签中,添加对应插件了!

参考文献

https://github.com/osrf/gazebo/tree/gazebo11/examples/plugins/actor_collisions
https://github.com/BruceChanJianLe/gazebo-actor
https://blog.csdn.net/tanjia6999/article/details/102629735

Gazebo是一个用于仿真机器人和复杂系统的开源三维仿真环境。在Gazebo添加行人可以帮助我们模拟真实世界中的人类行为和交互。 在Gazebo中,我们可以通过一些步骤来添加行人。首先,我们需要创建一个行人模型。可以使用CAD软件或者从已有的行人库中选择一个合适的模型。接下来,我们需要定义行人的运动方式。这可以通过编写行人控制算法或者使用预定义的行人行走模式来实现。在定义好行人的模型和运动方式后,我们需要将其添加Gazebo的世界中。 可以通过创建行人的SDF(Simulation Description Format)文件来添加行人。SDF文件是一种用于描述仿真世界的XML格式文件。在SDF文件中,我们可以指定行人的名称、外观、运动方式、初始位置等属性。将行人的SDF文件保存到指定的目录后,我们可以通过调用Gazebo的API函数,在仿真环境中加载并显示这个行人模型。 在Gazebo添加行人后,我们可以通过一些方法来控制和观察他们的行为。例如,我们可以通过键盘或者游戏手柄来控制行人的运动,使其在仿真环境中行走、跑步或者停留。同时,我们还可以利用Gazebo提供的传感器模型,如摄像头或激光雷达,来观察行人的位置、速度等信息,并进行相关的分析和研究。 总之,通过在Gazebo添加行人,我们可以模拟真实世界中的行人行为和交互,从而更好地理解和研究人类活动。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值