Add python version of SFMdata as gtsam.examples submodule
The gtsam.examples submodule should be loaded explicitely: >>> import gtsam.examplesrelease/4.3a0
parent
0e134c09db
commit
982d81e1c9
|
@ -0,0 +1,32 @@
|
|||
|
||||
# A structure-from-motion example with landmarks
|
||||
# - The landmarks form a 10 meter cube
|
||||
# - The robot rotates around the landmarks, always facing towards the cube
|
||||
|
||||
import gtsam
|
||||
import numpy as np
|
||||
|
||||
def createPoints():
|
||||
# Create the set of ground-truth landmarks
|
||||
points = [gtsam.Point3(10.0,10.0,10.0),
|
||||
gtsam.Point3(-10.0,10.0,10.0),
|
||||
gtsam.Point3(-10.0,-10.0,10.0),
|
||||
gtsam.Point3(10.0,-10.0,10.0),
|
||||
gtsam.Point3(10.0,10.0,-10.0),
|
||||
gtsam.Point3(-10.0,10.0,-10.0),
|
||||
gtsam.Point3(-10.0,-10.0,-10.0),
|
||||
gtsam.Point3(10.0,-10.0,-10.0)]
|
||||
return points
|
||||
|
||||
def createPoses():
|
||||
# Create the set of ground-truth poses
|
||||
radius = 30.0
|
||||
angles = np.linspace(0,2*np.pi,8,endpoint=False)
|
||||
up = gtsam.Point3(0,0,1)
|
||||
target = gtsam.Point3(0,0,0)
|
||||
poses = []
|
||||
for theta in angles:
|
||||
position = gtsam.Point3(radius*np.cos(theta), radius*np.sin(theta), 0.0)
|
||||
camera = gtsam.PinholeCameraCal3_S2.Lookat(position, target, up)
|
||||
poses.append(camera.pose())
|
||||
return poses
|
|
@ -0,0 +1 @@
|
|||
from SFMdata import *
|
Loading…
Reference in New Issue