All Projects → ihmcrobotics → Ihmc Open Robotics Software

ihmcrobotics / Ihmc Open Robotics Software

Robotics software featuring legged locomotion algorithms and a momentum-based controller core with optimization. Supporting software for world-class robots including humanoids, running birds, exoskeletons, mechs and more.

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Ihmc Open Robotics Software

Robotics setup
Setup Ubuntu 18.04, 16.04 and 14.04 with machine learning and robotics software plus user configuration. Includes ceres tensorflow ros caffe vrep eigen cudnn and cuda plus many more.
Stars: ✭ 110 (-13.39%)
Mutual labels:  robotics
Ros2 cookbook
Code snippets for ROS2
Stars: ✭ 117 (-7.87%)
Mutual labels:  robotics
Ros2learn
ROS 2 enabled Machine Learning algorithms
Stars: ✭ 119 (-6.3%)
Mutual labels:  robotics
Pymanoid
Humanoid robotics prototyping environment based on OpenRAVE
Stars: ✭ 112 (-11.81%)
Mutual labels:  robotics
Dolly
🤖🐑 It's a sheep, it's a dolly, it's a following robot. Dolly was born to be cloned.
Stars: ✭ 113 (-11.02%)
Mutual labels:  robotics
Invisible Highway
Invisible Highway is an experiment in controlling physical things in the real world by drawing in AR. Simply make a pathway along the floor on your phone and the robot car will follow that path on the actual floor in your room. A custom highway with scenery is generated along the path to make the robots a little more scenic on your phone screen.
Stars: ✭ 118 (-7.09%)
Mutual labels:  robotics
Espway
Segway-like robot implemented on ESP8266
Stars: ✭ 109 (-14.17%)
Mutual labels:  robotics
Rclnodejs
Node.js version of ROS 2.0 client
Stars: ✭ 126 (-0.79%)
Mutual labels:  robotics
M Loam
Robust Odometry and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration
Stars: ✭ 114 (-10.24%)
Mutual labels:  robotics
Learningbycheating
Driving in CARLA using waypoint prediction and two-stage imitation learning
Stars: ✭ 119 (-6.3%)
Mutual labels:  robotics
Iros20 6d Pose Tracking
[IROS 2020] se(3)-TrackNet: Data-driven 6D Pose Tracking by Calibrating Image Residuals in Synthetic Domains
Stars: ✭ 113 (-11.02%)
Mutual labels:  robotics
Stereo dense reconstruction
Dense 3D reconstruction from stereo (using LIBELAS)
Stars: ✭ 113 (-11.02%)
Mutual labels:  robotics
Awesome Robotics Datasets
A collection of useful datasets for robotics and computer vision
Stars: ✭ 119 (-6.3%)
Mutual labels:  robotics
Rafcon
RAFCON (RMC advanced flow control) uses hierarchical state machines, featuring concurrent state execution, to represent robot programs. It ships with a graphical user interface supporting the creation of state machines and contains IDE like debugging mechanisms. Alternatively, state machines can programmatically be generated using RAFCON's API.
Stars: ✭ 112 (-11.81%)
Mutual labels:  robotics
Cleanit
Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners. Under development.
Stars: ✭ 125 (-1.57%)
Mutual labels:  robotics
Robotics Coursework
🤖 Places where you can learn robotics (and stuff like that) online 🤖
Stars: ✭ 1,810 (+1325.2%)
Mutual labels:  robotics
Se2clam
SE(2)-Constrained Localization and Mapping by Fusing Odometry and Vision (IEEE Transactions on Cybernetics 2019)
Stars: ✭ 116 (-8.66%)
Mutual labels:  robotics
Grasp multiobject multigrasp
An implementation of our RA-L work 'Real-world Multi-object, Multi-grasp Detection'
Stars: ✭ 127 (+0%)
Mutual labels:  robotics
Core
Cloud Robotics Core: Kubernetes, Federation, App Management
Stars: ✭ 125 (-1.57%)
Mutual labels:  robotics
Gen.jl
A general-purpose probabilistic programming system with programmable inference
Stars: ✭ 1,595 (+1155.91%)
Mutual labels:  robotics

IHMC Open Robotics Software

Compile: Compile Test (3000+ tests): Test

Download <-- Download from Bintray

Tested Platforms

Robots

  • Atlas
  • Valkyrie

Developers

We test all of our software on OSX, Windows, and Ubuntu. It is likely to work on other platforms but not necessarily tested.

Branches

This repository uses the git-flow branching model. You can find more about git-flow here.

Licensing

All of the software in IHMC Open Robotics Software is licensed under the Apache 2.0 license.

Getting Started

Using IHMC Open Robotics Software .jar releases with Maven/Gradle

The release .jars for the various IHMC Open Robotics Software packages are hosted on Bintray. You can browse the release packages at https://bintray.com/ihmcrobotics/maven-release. Instructions for adding the Maven repository and identifying the artifacts can also be found on Bintray for each package.

At a minimum, you will need to have the following repositories declared in your build script to use IHMC Open Robotics Software .jars:

repositories {
   maven {
      url  "https://dl.bintray.com/ihmcrobotics/maven-release" // IHMC Code releases
   }
   maven {
      url  "https://dl.bintray.com/ihmcrobotics/maven-vendor" // Third-party libraries that we have vendored for various reasons
   }

   /* You will also need to add either jcenter() or mavenCentral() or both, depending on your preference */
}

Developing with IHMC Open Robotics Software from source

Requirements

IHMC Open Robotics Software uses the Gradle build system, and requires JDK 8 with JavaFX. We also strongly suggest an IDE, either Eclipse or IntelliJ (Ultimate or Community is fine). Currently, we require Gradle 4.10+.

Installing Gradle: https://gradle.org/install/

Companion Software

Other IHMC Libraries

IHMC Open Robotics Software both depends on and is depended on by many other IHMC Robotics Libraries. A small sampling of our other software includes:

You can find all of our other repositories as well as the ones above at https://github.com/ihmcrobotics

ROS API's

We provide a native ROS 2 API for many of the core components in our software stack. You can find the .msg definitions for use in your own projects here: https://github.com/ihmcrobotics/ihmc_interfaces

We have ROS 1 support via the ROS 2 ros1_bridge package. You can find the ROS 1 message definitions and instructions on using the ROS 1 Bridge here: https://github.com/ihmcrobotics/ihmc_msgs

IDE Support

Our Gradle models are tested in IntelliJ IDEA 2018 (both Community and Ultimate) with the Gradle plugin. Eclipse 2018.09+ or higher with the Buildship plugin. The Buildship plugin is bundled with the Eclipse IDE for Java Developers (but not Java EE Developers). It can always be manually installed to any version of Eclipse using the installation instructions.

Building .jars

IHMC Open Robotics Software is pre-configured for generating Maven publications. You can publish directly from the source code right in to your local Maven repository, e.g. the $HOME/.m2 directory. These builds will be tagged with a build "version" of "LOCAL" instead of an incrementing version number.

An example workflow for developing against a local clone of the software:

  1. Clone IHMC Open Robotics Software
  2. Make modifications
  3. Publish to your local $HOME/.m2 repository

To publish jars to your local Maven repository:

$ cd /path/to/ihmc-open-robotics-software
$ gradle publishAll -PcompositeSearchHeight=0

To depend on the jars in your local Maven repository:

In this example we'll have a compile-time dependency of the locally built Simulation Construction Set project. In the build.gradle of the project you wish to have link against Simulation Construction Set:

repositories {
  mavenLocal()
  <your other repositories>
}

dependencies {
  compile group: "us.ihmc", name: "simulation-construction-set", version: "LOCAL", changing: true
}

Creating a project

To create a project that uses IHMC Open Robotics Software, your project hierarchy needs to take a particular form.

First be sure you have completed the section above titled "Clone repositories".

Next, create your project folder:

mkdir -p src/ihmc/my-project-a

Follow the project setup tutorial at https://github.com/ihmcrobotics/ihmc-build#quick-project-setup.

Your directory structure should now look something like:

src/ihmc
├── my-project-a
│   └── build.gradle
│   └── gradle.properties
│   └── settings.gradle
├── my-project-b
│   └── ...
├── ihmc-open-robotics-software
│   └── atlas
│   └── common-walking-control-modules
│   └── ...
├── my-multi-project-c
│   └── subproject-a
│   │  └── build.gradle
│   └── subproject-b
│      └── build.gradle
├── ...
├── build.gradle
├── gradle.properties
└── settings.gradle

If this is set up correctly, you will have applied the ihmc-build plugin and use the dependency resolver methods exposed by the build extension. Alternatively, you can manually identify dependencies on projects using the normal Gradle syntax for project dependencies. A sample build.gradle dependency block:

/* Normal Gradle way */
dependencies {
  compile project(':ihmc-open-robotics-software:ihmc-java-toolkit')
  testCompile project(':ihmc-open-robotics-software:ihmc-java-toolkit-test')
}

/* ihmc-build way */
mainDependencies {
  compile group: "us.ihmc", name: "ihmc-java-toolkit", version: "source"
}
testDependencies {
  compile group: "us.ihmc", name: "ihmc-java-toolkit-test", version: "source"
}

Maintainers

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].