xipengwang / Aprilsam
Licence: lgpl-2.1
SLAM optimization algorithm
Stars: ✭ 170
Programming Languages
c
50402 projects - #5 most used programming language
Labels
Projects that are alternatives of or similar to Aprilsam
Assistive Gym
Assistive Gym, a physics-based simulation framework for physical human-robot interaction and robotic assistance.
Stars: ✭ 150 (-11.76%)
Mutual labels: robotics
Rt gene
RT-GENE: Real-Time Eye Gaze and Blink Estimation in Natural Environments
Stars: ✭ 157 (-7.65%)
Mutual labels: robotics
Myrobotlab
Open Source Java Framework for Robotics and Creative Machine Control
Stars: ✭ 163 (-4.12%)
Mutual labels: robotics
Libcanard
A compact implementation of the UAVCAN/CAN protocol in C for high-integrity real-time embedded systems
Stars: ✭ 151 (-11.18%)
Mutual labels: robotics
Motbeyondpixels
Monocular multi-object tracking using simple and complementary 3D and 2D cues (ICRA 2018)
Stars: ✭ 155 (-8.82%)
Mutual labels: robotics
Unsuperviseddeephomographyral2018
Unsupervised Deep Homography: A Fast and Robust Homography Estimation Model
Stars: ✭ 161 (-5.29%)
Mutual labels: robotics
Urdf Viz
visualize URDF/XACRO file, URDF Viewer works on Windows/MacOS/Linux
Stars: ✭ 149 (-12.35%)
Mutual labels: robotics
Robot
Simple library for controlling a raspberry pi based robot
Stars: ✭ 156 (-8.24%)
Mutual labels: robotics
Difftaichi
10 differentiable physical simulators built with Taichi differentiable programming (DiffTaichi, ICLR 2020)
Stars: ✭ 2,024 (+1090.59%)
Mutual labels: robotics
Robotcar Dataset Sdk
Software Development Kit for the Oxford Robotcar Dataset
Stars: ✭ 151 (-11.18%)
Mutual labels: robotics
Rl Baselines3 Zoo
A collection of pre-trained RL agents using Stable Baselines3, training and hyperparameter optimization included.
Stars: ✭ 161 (-5.29%)
Mutual labels: robotics
Autonomousdrivingcookbook
Scenarios, tutorials and demos for Autonomous Driving
Stars: ✭ 1,939 (+1040.59%)
Mutual labels: robotics
Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+8096.47%)
Mutual labels: robotics
Modernroboticscpp
Modern Robotics: Mechanics, Planning, and Control C++ Library --- The primary purpose of the provided software is to be easy to read and educational, reinforcing the concepts in the book. The code is optimized neither for efficiency nor robustness. http://modernrobotics.org/
Stars: ✭ 170 (+0%)
Mutual labels: robotics
AprilSAM: Real-time Smoothing and Mapping
Copyright APRIL Lab.
AprilSAM: Real-time Smoothing and Mapping
INSTALL
The default installation will place headers in /usr/local/include and shared library in /usr/local/lib. It also installs a pkg-config script into /usr/local/lib/pkgconfig.
$ make
$ sudo make install
USAGE
example/aprilsam_tutorial.c
.
A basic AprilSAM application can be seen in Create a graph:
april_graph_t *graph = april_graph_create();
Initialize optimize parameters:
struct april_graph_cholesky_param *chol_param = calloc(1,sizeof(april_graph_cholesky_param_t));
april_graph_cholesky_param_init(chol_param);
chol_param->show_timing = 0; //
chol_param->delta_xy = 0.1;
chol_param->delta_theta = 0.1;
chol_param->nthreshold = 100;
Add xyt node:
double ninit[3] = { 0,0,0 };
double nstate[3] = { 0,0,0 };
double ntruth[3] = { 0,0,0 };
april_graph_node_t *node = april_graph_node_xyt_create(nstate, ninit, ntruth);
node->UID = zarray_size(graph->nodes);
zarray_add(graph->nodes, &node);
Add xyt factor:
april_graph_node_t *na, *nb*;
zarray_get(graph->nodes, aidx, &na);
zarray_get(graph->nodes, bidx, &na);
matd_t *W = matd_create(3,3);
MATD_EL(W, 0, 0) = 1.0 / pow(0.1, 2);
MATD_EL(W, 1, 1) = 1.0 / pow(0.1, 2);
MATD_EL(W, 2, 2) = 1.0 / pow(to_radians(1), 2);
april_graph_factor_t *factor = april_graph_factor_xyt_create(na->UID, nb->UID, z, NULL, W);
zarray_add(graph->factors, &factor);
matd_destroy(W);
Cholesky optimization:
void april_graph_cholesky(graph, chol_param);
AprilSAM increnmetal optimization:
void april_graph_cholesky_inc(graph, chol_param);
Graph Chi^2 error: (f(x)-z)^T \Sigma^-1 (f(x)-z)
double april_graph_chi2(graph);
example/aprilsam_graph_save_simple.c
An example of saving and loading graph file can be seen in Save a graph:
void april_graph_save(april_graph_t *graph, const char *path)
Load a graph:
april_graph_t* april_graph_create_from_file(const char *path)
example/aprilsam_graph_save_with_attributes.c
An example of saving and retrieving graph/node/factor attributes can be seen in Add attributes:
void april_graph_attr_put(april_graph_t *graph, const stype_t *type, const char *key, void *data)
void april_graph_node_attr_put(april_graph_node_t *node, const stype_t *type, const char *key, void *data)
void april_graph_factor_attr_put(april_graph_factor_t *factor, const stype_t *type, const char *key, void *data)
Get attributes:
void* april_graph_attr_get(april_graph_t * graph, const char * key)
void* april_graph_node_attr_get(april_graph_t * graph, const char * key)
void* april_graph_factor_attr_get(april_graph_t * graph, const char * key)
example/aprilsam_demo.c
An example of evaluting AprilSAM on Manhattan3500 dataset can be seen in Test aprilsam optimization (Load an AprilSAM graph file):
./aprilsam_demo
Test aprilsam optimization (Load a text file):
./aprilsam_demo --datapath ../data/M3500.txt
Test batch update only step by step optimization:
./aprilsam_demo --datapath ../data/M3500.txt --batch_update_only
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].