JuliaRobotics Mission Statement
JuliaRobotics is a collection of robotics-related packages that focus on robot control, simulation, navigation, and visualization. JuliaRobotics intends to provide more visibility to robotics-related work within the Julia community. JuliaRobotics does not intend to replace other packages in the Julia ecosystem, but rather to improve the communication around combining the variety of open source packages available for robotics applications. JuliaRobotics intends to leverage the benefits of the Julia language. Lastly, JuliaRobotics has a code of conduct which encourages positive, constructive collaboration, and peer review to improve access and the quality of modern robotics technology.
Packages
Visualization
Arena.jl
Collection of all 2D and 3D visualizations associated with the Caesar.jl and RoME.jl robotic navigation packages. This package also relies on RoMEPlotting.jl.
MeshCatMechanisms.jl
Adds support for visualizing mechanisms and robots from RigidBodyDynamics.jl with MeshCat.jl. All geometries are constructed using MechanismGeometries.jl.
MechanismGeometries.jl
Implements several methods of generating or loading geometries associated with a RigidBodyDynamics.jl Mechanism
in Julia. It is currently used by MeshCatMechanisms.jl but can also be used independently.
Machine Vision
AprilTags.jl
This package is a ccall wrapper for the AprilTags library tailored for Julia.
SensorFeatureTracking.jl
Algorithms to track features of interest, such as KLT. Please see documentation, and file issues or make suggestions as you see fit. Note Features in this package are not yet optimized for speed, but the start of implementing machine/computer vision sparse feature functions that are useful to robotics.
Dynamics and Simulation
RigidBodyDynamics.jl
Julia implementation of various rigid body dynamics and kinematics algorithms.
RigidBodySim.jl
Simulation and visualization of articulated rigid body systems in Julia.
Calibration
MotionCaptureJointCalibration.jl
Kinematic calibration for robots using motion capture data.
SLAM and State-Estimation
Caesar.jl
An umbrella package for a Simultaneous Localization and Mapping toolkit that allows for non-Gaussian factor graph based SLAM. This package relies heavily on RoME.jl, IncrementalInference.jl, KernelDensityEstimate.jl, and others. Please see Arena.jl for visualization tools.
RoME.jl
Robot Motion Estimate package that implements many of the algebraic transforms, utilities, and tools for building local factor graph based SLAM systems. This package, together with IncrementalInference.jl, complete the algorithm known as multimodal iSAM (incremental smoothing and mapping).
Inference / Optimization
IncrementalInference.jl
A nonparametric solution (posterior belief estimate) to the Bayes (Junction) tree refactoring of non-Gaussian factor graph (joint probability) inference problem.
KernelDensityEstimate.jl
A Julia implementation of Nonparametric Belief Propagation (NBP) where (N x D) dimensional products of infinite functional objects are estimated through an efficient multiscale Gibbs sampling strategy. See associated KernelDensityEstimatePlotting.jl for visualization tools.