/aikido

Artificial Intelligence for Kinematics, Dynamics, and Optimization

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

AIKIDO - AI for KIDO Build Status Coverage Status

⚠️ Warning: AIKIDO is under heavy development. These instructions are primarily for reference by the developers.

AIKIDO is a C++ library, complete with Python bindings, for solving robotic motion planning and decision making problems. This library is tightly integrated with DART for kinematic/dynamics calculations and OMPL for motion planning. AIKIDO optionally integrates with ROS, through the suite of aikido_ros packages, for execution on real robots.

Dependencies

AIKIDO depends on CMake, Boost, DART (version 6.1 or above), OMPL, and the Python development headers (python-dev on Debian systems). DART and AIKIDO both make heavy use of C++11 and require a modern compiler.

Installation

Install on macOS using Homebrew

# install Homebrew package manager
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# add Homebrew tap for Personal Robotics Lab software
$ brew tap personalrobotics/tap
# install Aikido
$ brew install aikido0

Build from source (Standalone)

Once the dependencies are installed, you can build AIKIDO using CMake:

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

Aikido includes several optional components that depend on ROS. While we suggest building Aikido in a Catkin workspace (see below) to enable the ROS components, it is also possible to build those components in a standalone build. To do so, source the setup.bash file in your Catkin workspace before running the above commands, e.g.:

$ . /path/to/my/workspace/setup.bash

Build from source (Catkin)

It is also possible to build AIKIDO as a third-party package inside a Catkin workspace. To do so, clone AIKIDO into your Catkin workspace and use the catkin build command like normal.

If you are using the older catkin_make command, then you must build your workspace with catkin_make_isolated. This may dramatically increase your build time, so we strongly recommend that you use catkin build, which is provided by the catkin_tools package, if possible.

Code Style

Please follow the Aikido code style when you making a contribution.

License

Aikido is licensed under a BSD license. See LICENSE for more information.

Authors

Aikido is developed by the Personal Robotics Lab in the Robotics Institute at Carnegie Mellon University. The library was started by Michael Koval (@mkoval) and Pras Velagapudi (@psigen). It has received major contributions from Shushman Choudhury (@Shushman), Aaron Johnson (@aaronjoh), Jennifer King (@jeking), Gilwoo Lee (@lgw903), and Clint Liddick (@ClintLiddick). We also would like to thank Michael Grey (@mxgrey) and J.S. Lee (@jslee02) for making changes to DART to better support Aikido.