ブライテンベルク車をベースにした二輪ロボットを作成しました。私たちのロボットには、2 つの車輪と PolygonDisk 本体があります (kepera や e-puck ロボットによく似ています)。ロボットの前面にカメラを追加したいと考えています。問題は、カメラをどのように制御し、正しい方向 (ロボットと同じ方向) にカメラを向け続けるかです。どうすればカメラをロボットと同じ方向に向けることができますか?
1 に答える
1
試行錯誤の末、ようやく完成しました。だからここに私がそれをした方法があります:
一般的な考え方は、リンクまたはオブジェクトを車両にリンクし、その回転と位置を測定して、カメラを向けるべき方向を見つけることです。
1) ロボットにリンクされたオブジェクトを追加します。
def addVisualCam(self):
joint = None
cam = breve.createInstances(breve.Link,1)
cam.setShape(breve.createInstances(breve.PolygonCone, 1).initWith(10,0.08,0.08))
joint = breve.createInstances(breve.FixedJoint,1)
# So ad-hoc it hurts. oh well...
joint.setRelativeRotation(breve.vector(0,1,0), -3.14/2)
joint.link(breve.vector(0,1.05,0), breve.vector(0,0,0), cam, self.vehicle.bodyLink, 0)
joint.setDoubleSpring(300, 1.01000, -1.01000)
self.vehicle.addDependency(joint)
self.vehicle.addDependency(cam)
cam.setColor(breve.vector(0,0,0))
self.cam = cam
2) この投稿を追加しますIterate:
def postIterate(self):
look_at = self.cam.getLocation() + (self.cam.getRotation() * breve.vector(0,0,1))
look_from = -(self.cam.getRotation()*breve.vector(0,0,1))
self.vision.look(look_at, look_from)
于 2009-06-22T12:54:10.720 に答える