https://github.com/personalrobotics/aikido
Artificial Intelligence for Kinematics, Dynamics, and Optimization
https://github.com/personalrobotics/aikido
motion-planning perception robot-control robotics ros
Last synced: 26 days ago
JSON representation
Artificial Intelligence for Kinematics, Dynamics, and Optimization
- Host: GitHub
- URL: https://github.com/personalrobotics/aikido
- Owner: personalrobotics
- License: bsd-3-clause
- Created: 2015-04-23T00:33:33.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2023-03-10T20:08:11.000Z (about 2 years ago)
- Last Synced: 2024-08-01T05:14:59.144Z (9 months ago)
- Topics: motion-planning, perception, robot-control, robotics, ros
- Language: C++
- Homepage: https://personalrobotics.github.io/aikido/
- Size: 20.3 MB
- Stars: 214
- Watchers: 70
- Forks: 30
- Open Issues: 99
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-robotic-tooling - aikido - Artificial Intelligence for Kinematics, Dynamics, and Optimization. (Planning and Control / Vector Map)
README
# AIKIDO - AI for KIDO [](https://github.com/personalrobotics/aikido/actions) [](https://codecov.io/gh/personalrobotics/aikido) [](https://www.codacy.com/app/personalrobotics/aikido?utm_source=github.com&utm_medium=referral&utm_content=personalrobotics/aikido&utm_campaign=Badge_Grade)[](https://zenodo.org/badge/latestdoi/34424077)
> :warning: **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.## Building from Source
### Dependencies
AIKIDO depends on [ROS]. You should [install ROS](http://wiki.ros.org/noetic/Installation/Ubuntu) by adding the ROS repository to your `sources.list` as follows. We encourage users to install [`noetic`](http://wiki.ros.org/noetic) with at least the following packages:
```shell
$ sudo apt install ros-noetic-actionlib ros-noetic-geometry-msgs ros-noetic-interactive-markers ros-noetic-roscpp ros-noetic-std-msgs ros-noetic-tf ros-noetic-trajectory-msgs ros-noetic-visualization-msgs
```AIKIDO also depends on [CMake], [Boost], [DART] \(version 6.8.5 or above), [OMPL], [yaml-cpp](https://github.com/jbeder/yaml-cpp), tinyxml2, pr-control-msgs, libmicrohttpd, and the
Python development headers (`python-dev` on Debian systems). [DART] and AIKIDO both
make heavy use of C++14 and require a modern compiler.### On Ubuntu Focal using CMake
You should install the ROS packages as described above to build all the ROS-dependent AIKIDO components (e.g., `aikido-control-ros`).
Install the other dependencies:
```shell
$ sudo add-apt-repository ppa:dartsim/ppa
$ sudo add-apt-repository ppa:personalrobotics/ppa
$ sudo apt-get update
$ sudo apt-get install cmake build-essential libboost-filesystem-dev libdart6-optimizer-nlopt-dev libdart6-utils-dev libdart6-utils-urdf-dev libmicrohttpd-dev libompl-dev libtinyxml2-dev libyaml-cpp-dev pr-control-msgs
```Once the dependencies are installed, you can build and install AIKIDO using [CMake]:
```shell
$ mkdir build
$ cd build
$ cmake ..
$ make # you may want to build AIKIDO using multi-core by executing `make -j4`
$ 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.:
```shell
$ . /path/to/my/workspace/setup.bash
```### On Ubuntu Focal using Catkin
It is also possible to build AIKIDO as a [third-party package][REP-136] inside a
[Catkin workspace][Catkin Workspaces]. 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][Catkin Tools], if possible.### On macOS using CMake
Please install [Homebrew] as described above, then you can easily install the dependencies as follows:
```shell
$ cd
$ brew bundle
```Once the dependencies are installed, you can build and install AIKIDO using [CMake]:
```shell
$ cd
$ mkdir build
$ cd build
$ cmake ..
$ make # you may want to build AIKIDO using multi-core by executing `make -j4`
$ sudo make install
```## Code Style
Please follow the [AIKIDO style guidelines](https://github.com/personalrobotics/aikido/blob/master/STYLE.md) when making a contribution.
## License
AIKIDO is licensed under a BSD license. See [LICENSE](./LICENSE) for more
information.## Authors
AIKIDO is developed by the
[Personal Robotics Lab](https://personalrobotics.cs.washington.edu/) in the
[Paul G. Allen School of Computer Science and Engineering](https://www.cs.washington.edu/) at
the [University of Washington](https://www.washington.edu/).
The library was started by
Michael Koval ([**@mkoval**](https://github.com/mkoval))
and Pras Velagapudi ([**@psigen**](https://github.com/psigen)).
It has received major contributions from
Shushman Choudhury ([**@Shushman**](https://github.com/Shushman)),
Ethan Gordon ([**@egordon**](https://github.com/egordon)),
Brian Hou ([**@brianhou**](https://github.com/brianhou)),
Aaron Johnson ([**@aaronjoh**](https://github.com/aaronjoh)),
Jennifer King ([**@jeking**](https://github.com/jeking04)),
Gilwoo Lee ([**@gilwoolee**](https://github.com/gilwoolee)),
Jeongseok Lee ([**@jslee02**](https://github.com/jslee02)),
and Clint Liddick ([**@ClintLiddick**](https://github.com/ClintLiddick)).
We also would like to thank
Michael Grey ([**@mxgrey**](https://github.com/mxgrey))
and Jeongseok Lee ([**@jslee02**](https://github.com/jslee02))
for making changes to DART to better support AIKIDO.[DART]: http://dartsim.github.io/
[OMPL]: http://ompl.kavrakilab.org/
[ROS]: http://ros.org/
[CMake]: http://www.cmake.org/
[Boost]: http://www.boost.org/
[REP-136]: http://www.ros.org/reps/rep-0136.html
[Catkin Workspaces]: http://wiki.ros.org/catkin/workspaces
[Catkin Tools]: http://catkin-tools.readthedocs.org/en/latest/
[Homebrew]: https://brew.sh/