ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org
Ask Your Question
34

Which IDE(s) do ROS developers use? [closed]

asked 2011-02-15 08:25:22 -0500

Alex Bravo gravatar image

updated 2014-01-28 17:09:08 -0500

ngrennan gravatar image

While emacs and vi are great, there are also advantages in using IDEs, especially for code exploration and debugging. Which IDE(s) do developers use for C++, Python and other languages?

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by SL Remy
close date 2017-07-21 00:31:46.296952

13 Answers

Sort by » oldest newest most voted
31

answered 2011-02-15 08:36:25 -0500

kwc gravatar image

The IDEs page on ROS.org describes most of the non-Emacs/vi options. To the best of my knowledge, Eclipse is the most popular. There are scripts to help you integrate with the ROS build system, though it would definitely be wonderful if someone was willing to write an Eclipse plugin for ROS.

edit flag offensive delete link more

Comments

I started to work on that. Any help will be welcomed, rigth now I wrote a Eclipse Plugin with a RosMenu Launch RosMaster and Launch RosBridge as the "hello world" tools ;) and an sketch of a ROS View for the ROS nodes and services. If there are others interested contact me: lospinos AT gmail

Nacho gravatar imageNacho ( 2014-09-25 06:28:14 -0500 )edit

Hi, I'm very interested in this initiative. Eclipse is a full featured IDE for the languages used in ROS development. I'm contacting you for more info about.

BeLi gravatar imageBeLi ( 2014-09-26 08:59:07 -0500 )edit
35

answered 2011-02-15 11:58:43 -0500

aleeper gravatar image

I've found QtCreator to be easier to use than Eclipse, as it natively supports CMakeLists which are part of every ROS package. You just need to launch QtCreator from a terminal (NOT from the GUI menu) and it will have all the necessary environment variables to operate correctly.

edit flag offensive delete link more

Comments

1
I like QtCreator too. It's written in C++ instead of Eclipse's Java. So it's probably easier to write a ROS plugin for it since many ROS people know C++.
Alex Bravo gravatar imageAlex Bravo ( 2011-02-15 12:07:00 -0500 )edit
1
@aleeper; i am a big fan of Qt too, if possible can you write a small wiki on how to create a ROS package using QtCreator. Thank u.
blueskin gravatar imageblueskin ( 2011-02-16 01:59:23 -0500 )edit
2
Another fan of QtCreator here. I like that it's very lightweight, both in terms of size and especially in terms of speed. It just feels very snappy and starting from the command line it works out of the box with ROS packages.
Stefan Kohlbrecher gravatar imageStefan Kohlbrecher ( 2011-02-19 03:50:31 -0500 )edit
1

yea i love QtCreator is the most god-like IDE i have ever used. The support of opening cmake files natively is awesome. It also has a great UI.... Wish I could use it to code python as well

Sentinal_Bias gravatar imageSentinal_Bias ( 2013-12-09 10:01:07 -0500 )edit

Eclipse expects the build files (CmakeLists) to be in a separate tree from the source files, which is not the case with initial ROS install. There is a simple script to implement this - ( http://answers.ros.org/question/52013... ). Both Eclipse and QtCreator are great.

corb gravatar imagecorb ( 2014-11-05 08:48:23 -0500 )edit

QtCreator is really wonderful for ROS development. You can also use the QtDesigner, which produces UI files, that can be used with both Qt C++ and PyQt when creating a rqt plugin. I also find the debugging especially for multithreaded applications much easier compared to Eclipse.

rbaleksandar gravatar imagerbaleksandar ( 2015-05-24 16:04:46 -0500 )edit
19

answered 2011-02-15 10:08:58 -0500

mjcarroll gravatar image

updated 2011-03-24 19:13:48 -0500

I know that you specifically leave out vim and emacs in your consideration here, but I have to say, a well-tuned VIM install will do just about anything that you want.

I have a few plugins of choice for VIM:

  1. NerdTree: Brings up a split pane with your current working directory contents. Navigating using the same VIM keys, and allows you to change directory, files, move, copy, and most other filesystem operations.

  2. Ctags: Most people who use UNIX are probably versed with Ctags, but it bears repeating. Generates a list of "tags" such as functions, classes, and variables. This can then be accessed in a split-pane on VIM. Python and C(++) compatible.

  3. Yankring: Provides a buffer of previously copied text. Wonderful for keeping track of multiple copy-pastes as well as delete history.

The benefit of using VIM, in my opinion, is that I am frequently connecting to my robot over an ssh connection, and often don't want a full-blown IDE. When I am working in a terminal, I can open Vim right there, without switching back to an IDE. Vim is also common (in one form or another) on many, many systems (except for Ubuntu by default, for some reason). Vim provides me the power of an IDE without the weight of something like Eclipse.

Also, if the whole texty-console thing scares you (or learning vim, for that matter), solutions like MacVIM and GVIM provide a nice GUI interface, and use many of the system commands for copy, paste, etc.

EDIT: Adding ROS tags to your OmniCppComplete Answers: Vim Code Complete Under ROS

edit flag offensive delete link more

Comments

There is also a ROS plugin for vim: https://github.com/taketwo/vim-ros . It helps a lot navigating around ROS files thanks to its :Rosed and :TabRosed commands.

galou gravatar imagegalou ( 2014-08-27 03:12:13 -0500 )edit
1

It's been a while since I've seen this question, but I would also say that Vim does a great job with YouCompleteMe. You can use rospackage to grab the include flags from multiple packages so that the completions work. I can write something more thorough if there is interest.

mjcarroll gravatar imagemjcarroll ( 2014-09-20 10:55:24 -0500 )edit

I agree with @mjcarroll that YouCompleteMe works very well with ROS after a little configuration. I wrote a Gist for this: https://gist.github.com/galou/92a2d05... .

galou gravatar imagegalou ( 2014-10-03 08:38:40 -0500 )edit
7

answered 2011-02-16 12:32:16 -0500

makokal gravatar image

I think rosemacs does a pretty good job, especially if you hack a lot and have to ssh into stuff remotely

edit flag offensive delete link more

Comments

In particular for navigating around between different ros packages, rosemacs in combination with ido-mode is great. I couldn't find any other tool that allows me to open files in ros packages so quickly. Also, looking up message/service definitions or watching topics is perfectly integrated.
Lorenz gravatar imageLorenz ( 2011-02-17 10:10:01 -0500 )edit
6

answered 2014-09-28 07:34:48 -0500

paulbovbel gravatar image

updated 2014-10-01 10:58:47 -0500

JetBrains (of IDEA fame) has recently released a beta for CLion, a C/C++ IDE. It pulls in project data via CMakeLists.txt, so it works with ROS workspaces out of the box. It really blows away QtCreator and Eclipse in terms of usability (although a little rough around the edges being a beta), and the roadmap looks very impressive.

Make sure to start the IDE from bash, or update the .desktop definition similar to QtCreator.

edit flag offensive delete link more

Comments

1

I have some problem configuring the CLion IDE. It reports "catkin was neither found in workspace nor in the CMAKE_PREFIX_PATH" when building. I chaged the value of CMAKE_PREFIX_PATH in the cache, and that makes CLion working. However, afterwards, command "catkin_make" in console doesn't work.

Ekaradon gravatar imageEkaradon ( 2015-04-23 04:30:57 -0500 )edit

add 'set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/../install") set(CATKIN_DEVEL_PREFIX "${CMAKE_SOURCE_DIR}/../devel")' to the top level cmake and it works for me.

AMatt gravatar imageAMatt ( 2016-08-15 12:02:36 -0500 )edit
4

answered 2011-02-16 10:40:23 -0500

Straszheim gravatar image

Somebody took the IDE out of emacs without telling me. ;)

edit flag offensive delete link more
3

answered 2011-02-17 04:31:58 -0500

Alper Aydemir gravatar image

If I'm sitting in front of a big monitor then screen real estate is cheap and I use Eclipse. If I am coding on a robot, I bring up vim.

edit flag offensive delete link more
2

answered 2013-04-02 09:51:26 -0500

brice rebsamen gravatar image

updated 2013-10-04 09:28:43 -0500

bumping on an old question, but I needed to ramble about it...

I've been using Eclipse to code in ROS for about 2 years now. I like code completion, tooltips, and occasionally debugging in a GUI. Overall it works OK.

BUT:

  • it's way too slow.
    • Building is about 3 times slower than in the terminal
    • the indexer frequently takes minutes to complete, meanwhile slowing down the GUI
    • the GUI sometimes becomes unresponsive for no apparent reasons
  • it does not understand relation between packages, so if I have packages A and B, B depending on A, both open in the workspace as separate projects, if I make a change in A/a.h, and Ctrl+B (build all projects in the workspace), then it won't recompile files in B that depend on A/a.h ... I have to be aware of it and manually force recompilation of those files, either by clean and build which is slow, or touch the files and build which is tedious. I guess I could manually add inter projects dependencies but then that's going to be tedious to manage manually...
  • I am using ccache to speed up compilation and I am very happy with it. I have /usr/local/bin/gcc (and g++ and others), as symlinks to ccache. But for some reason eclipse does not use it. I don't know what it's using and it's scary. I suppose it's using /usr/bin/gcc but who knows
  • the indexer occasionally cannot find some objects (variables, methods, etc.). Sometimes even if it's within one single project.
  • I had to allow eclipse to use 8GB of memory in eclipse.ini so that the indexer wouldn't freeze the whole GUI. I can afford it but that seems ridiculous. I also tried using oracle's JRE but I didn't notice any improvement in term of memory management or speed.
  • some build errors (in particular linker errors) are not always reported properly

Reading about previous answers, I guess I'll give QtCreator a try.

Feeling better already, had to let some steam out... ;)

EDIT: I did switch to QtCreator a couple of months ago, and I've never looked back!

edit flag offensive delete link more

Comments

You can't complain here about how Eclipse is made. That's for the Eclipse developers.

Besides the problem of understanding that packages are linked is common every IDE as this relation is declared in the manifest.xml which is not parsed by any IDE. Only way would be for someone to write a plugin.

Claudio gravatar imageClaudio ( 2013-04-03 01:25:18 -0500 )edit

I use Netbeans and most of the same problems are there too, including the lenghtier compile time.

One thing I could suggest to at least get rid of the dependency problem (if you find yourself needing to recompile multiple packs so often) is to customize the build command of your IDE to use rosmake.

Claudio gravatar imageClaudio ( 2013-04-03 01:26:43 -0500 )edit

May I ask a question?? I'new to ROS. I have been developed some programs in gedit for a long time and bebug them by using printf.I just installed eclipse, but have no idea how to debug with it. Breakpoints don't work. Sorry for my pool english. Can I get ur help? my Email greensky7000@gmail.com

greensky gravatar imagegreensky ( 2013-10-04 07:49:32 -0500 )edit

You may want to use Eclipse, that provides you a good integration with GDB as a debugger.

alfa_80 gravatar imagealfa_80 ( 2013-10-06 05:33:09 -0500 )edit
1

answered 2011-02-15 16:22:24 -0500

Daniel Stonier gravatar image

Just for reference, we use an eclipse plugin for cmake that does text highlighting for cmake.

edit flag offensive delete link more
1

answered 2016-11-11 03:38:35 -0500

gaojiao gravatar image

I use RoboWare Studio. It can be found on http://wiki.ros.org/IDEs . The introduction is as follows:

RoboWare Studio is an IDE based on VSCode and is specially designed for ROS (indigo/jade/kinetic). With a double-click installation, RoboWare Studio can automatically detect and load ROS environment without additional configuration. The “out-of-the-box” feature helps developers pick it up and figure it out quickly. It provides an intuitive graphical interface for developers to create ROS workspace/package, add source files, create messages/services/actions, list generated packages/nodes, etc. Meanwhile, The CMakeLists.txt file can be updated automatically. It supports release-build and debug-build. Developers can debug C++ and Python codes right from the editor, with break points, call stacks, and an interactive console. It also displays ROS packages and nodes in the interface.

edit flag offensive delete link more

Comments

Thank you Gaojiao,info is useful.

TraiBo gravatar imageTraiBo ( 2016-11-15 22:38:41 -0500 )edit

I am having dependency errors while installing roboware. Can you please help?

Zain gravatar imageZain ( 2017-03-15 05:08:22 -0500 )edit

You may encounter dependency error for the following reasons: 1. your os is not ununtu 14.04 or 16.04. 2. your os is ARM architecture (not x86). 3. your os is 64-bit but Roboware Studio is 32-bit, or vice versa. (*amd64.deb is for 64-bit, and *i386.deb is for 32-bit)

gaojiao gravatar imagegaojiao ( 2017-03-15 22:00:06 -0500 )edit

a 64-bit os cannot install 32-bit roboware studio? why?

shawnysh gravatar imageshawnysh ( 2017-03-16 08:14:58 -0500 )edit

does it have auto-complete feature, helping code, no need to memorize so many function name?

shawnysh gravatar imageshawnysh ( 2017-03-16 08:16:16 -0500 )edit

Yes, if your os is 64-bit, you should install 64-bit roboware, if your os is 32-bit, you should install 32-bit roboware. Their dependencies are different for 32-bit/64-bit architecture. Unfortunately, for now, 32-bit roboware does not have auto-complete and go-to-definition feature.

gaojiao gravatar imagegaojiao ( 2017-03-16 19:49:03 -0500 )edit

Question Tools

8 followers

Stats

Asked: 2011-02-15 08:25:22 -0500

Seen: 28,888 times

Last updated: Nov 11 '16