All Projects → duckietown → hatchery

duckietown / hatchery

Licence: other
🐣 An IDE for building ROS applications

Programming Languages

kotlin
9241 projects
CMake
9771 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
Lex
420 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to hatchery

intellij-autohotkey
AutoHotkey plugin for the Jetbrain's IntelliJ platform
Stars: ✭ 30 (-55.22%)
Mutual labels:  ide, clion
Roboware Studio
An IDE environment for ROS development.
Stars: ✭ 189 (+182.09%)
Mutual labels:  ide, ros
Intellij Elixir
Elixir plugin for JetBrain's IntelliJ Platform (including Rubymine)
Stars: ✭ 1,488 (+2120.9%)
Mutual labels:  ide, clion
JetBrainsRunner
A Krunner Plugin which allows you to open your recent projects
Stars: ✭ 31 (-53.73%)
Mutual labels:  ide, clion
interstellar
Dark editor theme for JetBrains IDEs
Stars: ✭ 26 (-61.19%)
Mutual labels:  clion
uDevkit-IDE
An IDE for uDevkit or C/C++ projects with Git written in Qt5
Stars: ✭ 15 (-77.61%)
Mutual labels:  ide
Emacs Configuration
Emacs Configuration Using Purcell's Structure
Stars: ✭ 22 (-67.16%)
Mutual labels:  ros
Robotics-Object-Pose-Estimation
A complete end-to-end demonstration in which we collect training data in Unity and use that data to train a deep neural network to predict the pose of a cube. This model is then deployed in a simulated robotic pick-and-place task.
Stars: ✭ 153 (+128.36%)
Mutual labels:  ros
WoWDatabaseEditor
Integrated development environment (IDE), an editor for Smart Scripts (SAI/smart_scripts) for TrinityCore based servers. Featuring a 3D view built with OpenGL and custom ECS framework
Stars: ✭ 155 (+131.34%)
Mutual labels:  ide
rclex
Rclex: ROS 2 Client Library for Elixir
Stars: ✭ 77 (+14.93%)
Mutual labels:  ros
ros jetson stats
🐢 The ROS jetson-stats wrapper. The status of your NVIDIA jetson in diagnostic messages
Stars: ✭ 55 (-17.91%)
Mutual labels:  ros
PROBOT Anno
ROS Packages for PROBOT Anno.
Stars: ✭ 75 (+11.94%)
Mutual labels:  ros
intellij-ui-test-robot
The library allows you to write and execute UI tests among IntelliJ IDEA. You can test your Plugin.
Stars: ✭ 60 (-10.45%)
Mutual labels:  ide
code editor unity
A code editor for MY-BASIC, powered by the Unity3D engine. With this you may create your own Code Editor, Debugger and IDE for different scripting languages.
Stars: ✭ 13 (-80.6%)
Mutual labels:  ide
kakoune-ghci-bridge
Get intellisense for Haskell in Kakoune via ghci
Stars: ✭ 13 (-80.6%)
Mutual labels:  ide
dotfiles
🍀 Vim/Neovim + Tmux + Zsh + Alacritty = Build your own fantastic development environment
Stars: ✭ 65 (-2.99%)
Mutual labels:  ide
ExtremeStudio
ExtremeStudio is a PAWN editor and is designed to be used in SA-MP development.
Stars: ✭ 25 (-62.69%)
Mutual labels:  ide
SWET
Selenium WebDriver Page Test / workflow recorder (successor to SWD recorder)
Stars: ✭ 34 (-49.25%)
Mutual labels:  ide
nana-creator
Nana Creator - a RAD tool for (and built with) Nana C++ Library
Stars: ✭ 83 (+23.88%)
Mutual labels:  ide
skiros2
A skill-based platform for ROS v.2
Stars: ✭ 51 (-23.88%)
Mutual labels:  ros

🐣 Hatchery

An open source IDE for the Robot Operating System.

Provides language support and code assistance for developing ROS applications, with tools for deploying and monitoring live applications.

Installation

Prerequisites

Java must be installed prior to building Hatchery...

Building Hatchery requires a JRE or JDK. First check you have one installed: java -version

JDK 8 or higher is sufficient. Ubuntu/Debian:

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

First, clone this repository and open the project directory using the command line.

git clone https://github.com/breandan/hatchery && cd hatchery

To launch the IDE (optionally, you can specify the path to an existing ROS project):

./gradlew runIde [-Project="<ABSOLUTE_PATH_TO_ROS_PROJECT>"]

On first launch, you may need to setup a Python SDK. From File | Project Structure (or alternately Preferences | 🔍 Python Interpreter | Project Interpreter), then select or create a new Python SDK to receive coding assistance in Python files.

CLion users should follow the ROS Setup Tutorial to configure build paths...

and access CLion-specific features such as linking Catkin libraries, running a ROS node from the IDE and attaching a debugger to a running node. The Hatchery plugin can be installed in the usual way from the settings menu.

Duckietown participants should configure their Duckietown environment as instructed...

Ensure echo $DUCKIETOWN_ROOT returns the correct path to your Duckietown directory.

If not, you should first run source environment.sh from inside the Duckietown software directory.

Hatchery will use DUCKIETOWN_ROOT as the default project directory, so you can omit the -Project flag below.

Existing users of JetBrains' IDEs (ex. PyCharm, CLion, or IntelliJ IDEA) can install Hatchery directly through the IDE, via File | Settings | Plugins | Marketplace... | 🔍 "hatchery". Older versions of Hatchery are also available through the plugin repository.

For the adventurous, untested, canary builds are available on our TeamCity build server. Download the plugin ZIP file and install it from disk.

Contributing

To contribute to this project, run the following command from inside the project root directory:

./gradlew runIde -PluginDev

This will download and run IntelliJ IDEA CE and open the project. You are ready to get started!

ROS Enrivonment

Hatchery tries to locate the ROS installation directory, but it helps if you are running the IDE inside with the ROS environment. In most cases, we can detect the ROS installation path, however you may need to manually configure the ROS environment beforehand.

Getting Started

Watch the following screencast for a demonstration of some features:

Screencast

Features

Currently, Hatchery supports the following ROS filetypes:

  • ROS Launch (*.launch, *.test)
  • ROS Package (package.xml)
  • ROS URDF (*.urdf.xacro)
  • ROS Bag (*.bag)
  • ROS Service (*.srv)

It also supports refactoring and navigation in the following file types:

  • XML
  • Python
  • YAML
  • CMake
  • Bash

Planning

  • Implement preliminary project structure and XML support
  • Write an MVP/POC app that supports file renaming and refactoring
  • Add support for project templates and skeleton project creation
  • Add support for deploying a project from the local machine to the remote
  • Add support for monitoring and tracking running code, viewing logs
    • Save to local disk
    • Searching the log
  • Collect crash dumps and link to the corresponding code points
    • Link stack traces to source code
    • Copy environment info and crash dump to clipboard
  • Integration with the Robot Operating System (ROS)
  • Gazebo simulator integration
  • C/C++ support with build automation
  • Remote debugging and testing support
  • Docker integration
    • Basic Docker support
    • Remote host and script support
    • Docker Hub namespace awareness
    • Support for platformio tooling
    • X11 forwarding and rqt support
  • Static analysis
    • Invalid dependency detection
    • Validate Python/msg/srv compatibility
    • ROS nodes and graph analysis via rosdep/rqt_dep
  • rqt plugin support

Roadmap

We are currently working to expand support for the following features:

  • Syntax support - Highlighting, navigation, autocompletion
  • Program analysis - Code inspections, intentions, and linting
  • Testing support - Unit and integration testing, code coverage
  • Project creation - Project setup and boilerplate code generation
  • Dependency management - Track installed and missing packages
  • Monitoring utils - Logging, diagnostics, profiling and visualization
  • Crash analytics - Enhanced stack traces with source navigation
  • Build automation - Delta rebuilds, cmake magic, code hotswap
  • ROS integration - Nodes, topics, services, parameters, graphs
  • Duckumentation - Usage instructions and supported features

Authors

Special Thanks

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