• Stars
    star
    211
  • Rank 180,096 (Top 4 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created about 9 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Artificial Intelligence for Kinematics, Dynamics, and Optimization

AIKIDO - AI for KIDO Build Status codecov Codacy BadgeDOI

โš ๏ธ 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 by adding the ROS repository to your sources.list as follows. We encourage users to install noetic with at least the following packages:

$ 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, 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:

$ 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:

$ 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.:

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

On Ubuntu Focal using 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.

On macOS using CMake

Please install Homebrew as described above, then you can easily install the dependencies as follows:

$ cd <aikido_directory>
$ brew bundle

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

$ cd <aikido_directory>
$ 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 when 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 Paul G. Allen School of Computer Science and Engineering at the University of Washington. The library was started by Michael Koval (@mkoval) and Pras Velagapudi (@psigen). It has received major contributions from Shushman Choudhury (@Shushman), Ethan Gordon (@egordon), Brian Hou (@brianhou), Aaron Johnson (@aaronjoh), Jennifer King (@jeking), Gilwoo Lee (@gilwoolee), Jeongseok Lee (@jslee02), and Clint Liddick (@ClintLiddick). We also would like to thank Michael Grey (@mxgrey) and Jeongseok Lee (@jslee02) for making changes to DART to better support AIKIDO.

More Repositories

1

OpenChisel

An open-source version of the Chisel chunked TSDF library.
C++
444
star
2

prpy

Python utilities used by the Personal Robotics Laboratory.
Python
58
star
3

apriltags

ROS wrapper for the Apriltags visual fiducial tracker
PostScript
39
star
4

or_ompl

OpenRAVE bindings for OMPL motion planning algorithms.
C++
26
star
5

kinfu_ros

kinfu_ros is a version of kinfu_remake for generic ROS depth cameras
C++
26
star
6

apriltags_rgbd_node

more accurate apriltag detection using the depth sensor
Python
25
star
7

appl

Mirror of the Approximate POMDP Planning (APPL) C++ toolkit for POMDP planning.
C++
20
star
8

or_urdf

OpenRAVE plugin for loading URDF and SRDF files.
C++
19
star
9

tsr

Python Library for using Task Space Regions
Python
16
star
10

or_cdchomp

OpenRAVE plugin that implements the CHOMP trajectory optimizer.
C++
15
star
11

dartpy

๐ŸŽฏ ๐Ÿ Python bindings for the Dynamic Animation and Robotics Toolkit
C++
14
star
12

chimera

๐Ÿ A CLI tool for generating Boost.Python/pybind11 bindings from C/C++
C++
13
star
13

LRA-star

Lazy Receding Horizon A*
C++
13
star
14

collaborative_manipulation_corpus

A Corpus of Natural Language Instructions for Collaborative Manipulation
Python
12
star
15

boost_numpy_eigen

๐Ÿ Python bindings for conversion between numpy and Eigen objects
C++
11
star
16

k2_bridge

Server application for Kinect for Windows v2
C#
10
star
17

openvr_ros_bridge

Publish from openvr/windows to ROS over rosbridge
Terra
10
star
18

lego

LEGO : Leveraging Experience with Graph Oracles
Jupyter Notebook
8
star
19

libada

C++ library for simulating and running ADA based on DART and AIKIDO
C++
8
star
20

gazetracking

Eye gaze tracking using Pupil Labs head-mounted tracker.
CMake
7
star
21

pr_assets

OpenRAVE data used by the Personal Robotics Lab at CMU.
Python
7
star
22

linemod

C++
6
star
23

pr_behavior_tree

A simple python behavior tree library based on coroutines
Python
6
star
24

lemur

Lazily Evaluated Marginal Utility Roadmaps
C++
6
star
25

or_parabolicsmoother

An OpenRAVE Plugin for Parabolic Smoothing
C++
6
star
26

herb_description

URDF and SRDF descriptions of HERB.
Python
5
star
27

chisel_msgs

Breaking out chisel ROS messages into their own package to be used remotely
CMake
5
star
28

or_rviz

OpenRAVE viewer plugin that publishes the environment to RViz as InteractiveMarkers.
C++
5
star
29

herbpy

Python library for interacting with HERB.
Python
4
star
30

comps

Fork of the Constrained Manipulation Planning Suite (CoMPS) by Dmitry Berenson
C++
4
star
31

gls

Generalized Lazy Search
C++
4
star
32

moped

C
4
star
33

batching_pomp

Research code repository that implements anytime geometric motion planning on large dense roadmaps with densification strategies and searching via the POMP algorithm.
C++
4
star
34

web-interface-examples

Examples of connecting ROS to web technologies
Python
3
star
35

pr_ros_controllers

ros_control controller plugins developed by the Personal Robotics Lab at CMU
C++
3
star
36

TouchFilter2D

Experiments with touch in 2D using openframeworks
C++
3
star
37

joint_state_recorder

Record ROS JointState messages and index them by time.
C++
3
star
38

pr-rosinstalls

wstool .rosinstall files for various projects or setups
3
star
39

rewd_controllers

master
C++
3
star
40

docker-public-images

Public Docker images used in PRL codebase
Makefile
3
star
41

offscreen_render

A utility for rendering OpenRAVE kinbodies offscreen to get properties like depth, occlusion, color, etc.
C++
3
star
42

stargazer

ROS driver for the Hagisonic StarGazer
Python
3
star
43

or_fcl

OpenRAVE bindings for the Flexible Collision Checking Library (FCL).
C++
3
star
44

wampy

Python library for interacting with Barrett WAM arm in OpenRAVE.
Python
3
star
45

ada_feeding

Robot-assisted feeding demos and projects for the ADA robot
Python
3
star
46

bayesian_policy_optimization

2
star
47

libhuman

C++
2
star
48

or_trajopt

OpenRAVE plugin to expose TrajOpt code as an OpenRAVE planner
Python
2
star
49

softkinetic_driver

A driver for the depthsense325 adapted specifically for ADA. Based on a driver from IPA.
C++
2
star
50

benchmarks

Benchmarks to measure OpenRAVE's performance.
C++
2
star
51

pubs

BibTeX entries of publications
TeX
2
star
52

uvc_engine_pupil

C++
1
star
53

pointcloud_filter

Filters the point cloud data from the kinect sensor
C++
1
star
54

food_detector

Python
1
star
55

k2_client

ROS node for a Kinect 2 via a TCP server.
C++
1
star
56

btclient

Barrett WAM Client Library and Examples
C
1
star
57

simtrack_msgs

Messages for the simtrack tracking package.
CMake
1
star
58

ada_teleoperation

Python
1
star
59

ada_description

URDF and SRDF descriptions of ADA
Shell
1
star
60

feeding_web_interface

Web interface for the robot-assisted feeding system
JavaScript
1
star
61

or_octomap

or_octomap is a collision checker and sensor system plugin for OpenRAVE, intended to allow OpenRAVE meshes to be collision checked against octrees.
C++
1
star
62

face_detection

Repository for detecting facial features and head pose
C++
1
star
63

homebrew-tap

๐Ÿบ Homebrew tap for Personal Robotics Laboratory software
Ruby
1
star
64

forque_sensor_hardware

Reads and manages the Force/Torque sensor of the Forque
C++
1
star
65

ada_assistance_policy

Python
1
star
66

pytorch_pix2food

Generative adversarial network that predicts the position and shape of continuous food after pushing action.
Jupyter Notebook
1
star
67

ada_mouth

CMake
1
star
68

or_plugin

Utility library for creating OpenRAVE plugins.
C++
1
star
69

ada

Software for ADA, the Assistive Dextrous Arm developed by the Personal Robotics Lab at CMU.
Python
1
star
70

ros_control_client

Python and C++ libraries for commanding ros_control
Python
1
star
71

conban_spanet

Linear contextual bandit based on SPANet
Python
1
star
72

owd

OpenWAM ROS driver for controlling the Barrett WAM and BarrettHand.
C++
1
star
73

ork_renderer

C++
1
star
74

ada_ros2

ROS2 Hardware Interface and Description for the ADA Robot
Python
1
star
75

ada_meal_scenario

A set of scripts for a meal serving scenario using Ada.
Python
1
star
76

openrave_catkin

Utilities for building OpenRAVE plugins in a Catkin workspace.
CMake
1
star
77

mouse_as_joystick

Wrapper to read from a mouse (e.g. bluetooth mouse) and publish ros messages
Python
1
star