Skip to content

Commit

Permalink
Merge pull request #855 from borglab/SFMdata-add-type-hints
Browse files Browse the repository at this point in the history
clean up SFMdata python module
  • Loading branch information
dellaert authored Aug 22, 2021
2 parents 1478936 + 67403b0 commit 57bdf33
Showing 1 changed file with 18 additions and 15 deletions.
33 changes: 18 additions & 15 deletions python/gtsam/examples/SFMdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,39 @@
"""
# pylint: disable=invalid-name, E1101

from typing import List

import numpy as np

import gtsam
from gtsam import Cal3_S2, Point3, Pose3


def createPoints():
def createPoints() -> List[Point3]:
# 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)]
points = [
Point3(10.0, 10.0, 10.0),
Point3(-10.0, 10.0, 10.0),
Point3(-10.0, -10.0, 10.0),
Point3(10.0, -10.0, 10.0),
Point3(10.0, 10.0, -10.0),
Point3(-10.0, 10.0, -10.0),
Point3(-10.0, -10.0, -10.0),
Point3(10.0, -10.0, -10.0),
]
return points


def createPoses(K):
# Create the set of ground-truth poses
def createPoses(K: Cal3_S2) -> List[Pose3]:
"""Generate a set of ground-truth camera poses arranged in a circle about the origin."""
radius = 40.0
height = 10.0
angles = np.linspace(0, 2*np.pi, 8, endpoint=False)
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),
height)
position = gtsam.Point3(radius * np.cos(theta), radius * np.sin(theta), height)
camera = gtsam.PinholeCameraCal3_S2.Lookat(position, target, up, K)
poses.append(camera.pose())
return poses

0 comments on commit 57bdf33

Please sign in to comment.