Skip to content

tbretl/ae598-3dv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AE 598 3DV (An Invitation to 3-D Vision)

Getting started

Create a directory in which to put all of your work this semester. Let's suppose you call this directory AE598-3DV-Dev. Clone the repo you're looking at into this directory, as usual:

git clone https://github.com/tbretl/ae598-3dv.git

Install conda

I use miniforge to install conda.

I do not suggest you use anaconda for this purpose - it causes trouble. If you already have anaconda installed, I suggest you remove it.

It is ok to use miniconda - I used to do this - but if you do, I suggest that you configure your conda environment to use conda-forge as the only channel. To do this, you'd run the following commands just after creating and activating an empty envirionment:

conda config --env --add channels conda-forge
conda config --env --set channel_priority strict

This configuration is done by default in every environment if you use miniforge.

I use mamba as a drop-in replacement for conda (all the cool kids do this). Both come with miniforge. So, the instructions that follow will all use mamba. You can use conda instead if you like.

Create a conda environment

This will get us started:

mamba create -n ae598-3dv
mamba activate ae598-3dv
mamba install python=3 numpy scipy sympy matplotlib notebook ipywidgets ipympl opencv cmake eigen

We will add more packages as we need them.

Install a tag detector

We will make use of a fiducial marker system called AprilTags this semester. I have never been able to install the Python bindings that come with AprilTags, however, so instead I use the bindings from pupil-apriltags. These are available on PyPi and can be installed with pip (again, don't forget to activate your conda environment first):

pip install pupil-apriltags

While you're at it, please go ahead and clone the apriltag-imgs repository, which has images of several pre-generated tag families (again, I suggest putting this repository in the AE598-3DV-Dev directory):

git clone https://github.com/AprilRobotics/apriltag-imgs.git

Install symforce

SymForce is a library for nonlinear least-squares minimization. I like it because, unlike other libraries of this sort, it has a Python interface that is reasonably easy to use and is reasonably well documented. It also allows you, if you like, to autogenerate C++ code that is competitive with other state-of-the-art solvers (e.g., ceres, g2o, and GTSAM).

Although SymForce can be installed using pip, I suggest you build it from source. There are two reasons for this. First, some recent bug fixes haven't made it to the version that's available on PyPi yet. Second, the C++ headers are only available if you build and install from source.

It takes just a couple minutes to follow the instructions to build from source on my mac. First, I installed brew and used brew to install gmp (brew install gmp). Then, I cloned the SymForce repository (putting it in AE598-3DV-Dev) and used pip to compile and install (don't forget to activate your ae598-3dv environment first):

git clone https://github.com/symforce-org/symforce.git
cd symforce
pip install .
cd ..

The details will be a little different if you use Linux or Windows.

Don't forget to verify your installation after you install SymForce.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published