General Development Environment Setup Guide
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.
Getting Started
Remember to read the linked Confluence documentation for each tool. We have specific ways of using these tools and installation and configuration are important.
In general:
- 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
+ AI Assistant available in paid version - Eclipse
-
Gradle files only editable via plain text
- IntelliJ
Use Git to create a repository-group w/ IHMC Open Robotics Software
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:
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-collectionsrepository-group ├── ihmc-open-robotics-software │ └── build.gradle │ └── gradle.properties │ └── settings.gradle ├── <other IHMC repositories as needed> ├── build.gradle ├── gradle.properties └── settings.gradle
- 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. 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
AtlasFlatGroundWalkingTrackSCS2.
It's recommended to skim over the guides and try to understand a bit about how things are working:
- Software READMEs
- 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
Software Development
Okay, now you're ready to write code.
Check out the /wiki/spaces/IEH/overview.
- /wiki/spaces/Onboarding/pages/13893669
- /wiki/spaces/OSS/pages/17367342
- /wiki/spaces/Onboarding/pages/13893665
- /wiki/spaces/Onboarding/pages/406290436
- /wiki/spaces/Onboarding/pages/13893795
General Troubleshooting
System and application crashes - GC Overhead Exceptions
Sometimes applications or your entire system crashes. This can be due to being on a less capable machine or just running resource expensive or buggy applications.
- Reboot your machine
- Close out as many background applications as possible after booting
- Launch a system monitor where you can see CPU and RAM usage. Preferably a graph over time so you don't miss something.
- Launch IntelliJ and keep an eye on CPU and RAM
- Proceed slowly and wait for CPU to go to <5% stably before clicking the next thing