最近在gazebo上添加actor进行仿真,我按照一般网上的教程,下载collision的包,也生成libcollisionplugins.so文件,添加路径等都没问题,最后出来的actor仅仅脚可以被激光检测,雷达激光直接穿过腿部,这是有问题的。
后来我对collision包下面的actorcollisionplugin.cc进行测试,在其中输出一些collision的信息。开始的输出大概如下:
这是我自己定义的碰撞名称以及scale。
actorcollisionplugin.cc中&collision : link->GetCollisions()
得到的是actor的碰撞名称
但是我得到的输出是:leftleg_collision;leftfoot_collision;之类的名称(这个忘截图了),我再查看actorcollisionplugin.cc中的
if (scaling.find(name) != scaling.end())
{
auto boxShape = boost::dynamic_pointer_cast<gazebo::physics::BoxShape>(
collision->GetShape());
这就明显不对了,因为我自己设置的collision和link得到的collision名称不一样!!这就是的最后的box