This page is focused on a general style of help for users. Since there is an essentially infinite set of tool combinations to use, we will supply a guide for each tool, written by an IHMC developer who uses that tool. Some pages may be a work in progress.
...
- Pick an operating system
Ubuntu - Free, most compatible with robots
Windows - Requires setting up long paths, installing redistributables, and setting Git'sautocrlf
to 'input'.macOS- our software isn't currently fully compatible with macOS - Install all of the following: (follow installation guides in linked pages)
- Graphics driver. For Nvidia GPUs and SCS 1, the proprietary Nvidia driver is currently required.
Otherwise you will get the error "Could not find GLX 1.3 config from peer info" - Java
- Git - Setup your credentials. On Windows, make sure to set
autocrlf
to 'input'.
It is recommended to install a GUI Client, like SmartGit.
There is also a command line tool vcstool that can perform batch Git operations on groups of repositories. - Gradle - Follow the "Installation" and "Configuration" sections.
(This can be skipped if using the repository-group script later to install Gradle.)
- Graphics driver. For Nvidia GPUs and SCS 1, the proprietary Nvidia driver is currently required.
- Choose and install an IDE:
Follow the "Installation" and "Configuration" sections in one of the following.
Make sure to setup the IHMC code formatter.- IntelliJ
+ More code navigation, refactoring, etc. tools
+ Gradle script editor
+ AI Assistant available in paid version - Eclipse
+ Faster compilation, quicker to launch simulations
+ Fantastic multi-monitor support
-
Gradle files only editable via plain text
- IntelliJ
Use Git to create a repository-group w/ IHMC Open Robotics Software
Multiexcerpt MultiExcerptName Repo group structure In your system home folder (or C:/ drive in Windows), create a repository-group.
Option 1:
Use repository-collections to clone a predefined set of repositories. If you are working on humanoids, use
humanoids.repos
.Option 2:
Use Git to manually clone the repository group:
- Clone repository-group.
You may name that repository-group folder something else, like "primary" or "secondary" which helps when you have more than one. - Inside the repository-group folder, clone the repositories you need. See
For just ihmc-open-robotics-software
It should look like:
repository-group ├── ihmc-open-robotics-software │ └── build.gradle │ └── gradle.properties │ └── settings.gradle ├── <other IHMC repositories as needed> ├── build.gradle ├── gradle.properties └── settings.gradle
You may wish to clone more projects depending what you are working on. Atlas and Valkyrie simulations are included in Open Robotics Software but not their user interfaces. Take a look at what repositories are available here: repository-collections
- Clone repository-group.
- Use your IDE to import the code you cloned
When you import a Gradle project, the IDE is analyzing the Java build structure that Gradle comes up with and copying that configuration into the IDE's data structures as if you had painstakingly configured a new Java project manually using the IDE's UI.
Perform the Import directly on the repository-group folder or the repository-group/build.gradle.kts file.
Follow the "Importing Gradle Projects" section of your IDE's page. Multiexcerpt MultiExcerptName networkConfig for IHMC Setup network configuration - Reserve an IP address if necessary.
- Reserve a DDS domain ID.
- Run
NetworkParametersCreator.java
and save it. - Don't forget to set the RTPSSubnet. (i.e.
RTPSSubnet=10.100.1.34/24
)
- To see if everything is working, run some sample simulations. For example
SpringFlamingoSimulation.java
orAtlasObstacleCourseDemo.java.
AtlasFlatGroundWalkingTrackSCS2.
It's recommended to skim over the guides and try to understand a bit about how things are working:
- Software builds
- IHMC Build Repository GroupREADMEs
- Operating systems
- Version control
- Git
- vcstool - Batch Git operations on groups of repos on command line
- SmartGit (install guide, license files) - Requires license, most feature complete Git GUI
- /wiki/spaces/HOWTO/pages/14288008 - Fancy, nice to use, but can be sluggish
- Eclipse EGit VCS Plugin - Not many features, buggy
- IDEs
- Java
- Gradle
...