ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
40

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
33

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 image Nacho  ( 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 image BeLi  ( 2014-09-26 08:59:07 -0500 )edit
3

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 image TraiBo  ( 2016-11-15 22:38:41 -0500 )edit

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

Zain gravatar image Zain  ( 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 image gaojiao  ( 2017-03-15 22:00:06 -0500 )edit

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

shawnysh gravatar image shawnysh  ( 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 image shawnysh  ( 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 image gaojiao  ( 2017-03-16 19:49:03 -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 image Ekaradon  ( 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 image AMatt  ( 2016-08-15 12:02:36 -0500 )edit
0

answered 2014-04-23 09:54:43 -0500

mlanting gravatar image

I use vim, but when I want the features of an IDE like Eclipse, I use Eclim ( http://eclim.org/ ) to access a headless instance of Eclipse fairly seamlessly right from vim. The biggest things are that when Eclipse has an issues it's even less graceful about it than when you're using the GUI, and that I sometimes futz around a bit when I pull in a new dependency to get it recognized properly. Maybe that's an issue with the GUI Eclipse too, but I haven't used Eclipse "normally" in a while.

People have also made plugins to support using Eclim with other popular editors as well.

edit flag offensive delete link more
0

answered 2014-04-12 22:38:27 -0500

Sentinal_Bias gravatar image

For python I use sublimedText2 which is basically a text editor with auto-complete

you can also get add-ons for it like sublimeCodeIntel, which basically checks your python code for errors. It will bring up docstrings when you hit the dot sometimes as well.

edit flag offensive delete link more
0

answered 2013-10-06 04:16:54 -0500

Artem gravatar image

updated 2013-10-06 04:31:09 -0500

The best option for Mac users is Xcode. There are a couple of things that still irritates me but it is useable and gives you the full power of Xcode. Especially with Xcode 5 it has become easier to find memory leaks and autocomplete is perfect. Moreover, clang gives you a very informative error description that speeds up development. Here is a short description on how you can integrate it.

edit flag offensive delete link more
3

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 image Claudio  ( 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 image Claudio  ( 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 image greensky  ( 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 image alfa_80  ( 2013-10-06 05:33:09 -0500 )edit
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
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 image Lorenz  ( 2011-02-17 10:10:01 -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

Question Tools

11 followers

Stats

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

Seen: 41,445 times

Last updated: Nov 11 '16