我在为 Gazebo 模拟器制作 World 插件时遇到了一些麻烦。
我有一个机械手,负责捡起一些盒子并将它们移动到特定的位置。为了模拟抓取,我只想将盒子(它们是静态模型)刚性地连接到机器人末端执行器上,并在它们就位时将它们分离。
不过,我无法执行这个简单的任务。我从课堂上找到了这个AttachStaticModel
功能;physics::Model
我以这种方式使用它:
robotModelPtr->AttachStaticModel(boxModelPtr, offset);
要么用作偏移量,要么ignition::math::Pose3d()
但boxLinkPtr->WorldPose() - robotLinkPtr->WorldPose()
它什么也不做。
然后,我尝试在盒子和机器人之间手动创建一个固定关节,如下所示:
robotModelPtr->CreateJoint("connection", "fixed", robotLinkPtr, boxLinkPtr)
但是这样做会导致盒子飞走。
盒子 SDF 由一个视觉节点和一个碰撞节点组成,它们都使用 .dae 网格。
任何建议将不胜感激。非常感谢。