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

Mixing ROS message versions

asked 2014-10-14 14:20:26 -0500

Dave Coleman gravatar image

If I have a robot (Baxter) with an older version of a ROS message (say, control_msgs from Groovy), can I build the latest version (Indigo) in my local user's workspace on the robot and use that message instead?

By this I mean I source /opt/ros/groovy/source.devel and I have the old version of control_msgs

But then I build that message again in ~/catkin_ws/src/control_msgs and source that workspace, I should no longer have issues with nodes built in my catkin_ws that need the newer version of the message, right?

In my testing, however, this does not work, so obviously roscore is tricker than this.


edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2014-10-15 15:06:29 -0500

Dave Coleman gravatar image

I figured out my issue - it was really simple. I was building control_msgs from source but forgot to build trajectory_msgs from source, which is part of common_msgs which control_msgs depended on. Once I did that the md5 sum matched.

edit flag offensive delete link more

answered 2014-10-14 14:40:33 -0500

Dirk Thomas gravatar image

I assume you have only build the control_msgs from source?

Since other Debian packages might use the previously generated C++ headers that is not sufficient. It should work fine if you also rebuild every ROS Indigo package from source which depends on control_msgs.

edit flag offensive delete link more


I built control_msgs and all packages that used it that I use

Dave Coleman gravatar image Dave Coleman  ( 2014-10-15 15:05:33 -0500 )edit

answered 2014-10-15 11:30:22 -0500

joq gravatar image

In general, mixing different ROS distributions in the same ROS graph is not supported and not recommended.

Sometimes things can be cobbled together so they work for a while, but it's not a good idea.

edit flag offensive delete link more


As long as the used message definitions have not changed it is a well supported and commonly applied use case.

Dirk Thomas gravatar image Dirk Thomas  ( 2014-10-15 12:12:16 -0500 )edit

Well there is always a chance for other caveat's, for example between hydro and groovy /tf is incompatible.

William gravatar image William  ( 2014-10-15 12:50:13 -0500 )edit

My experience has been that it is not worth the hassle. Much better to use Groovy if that is what your robot runs.

joq gravatar image joq  ( 2014-10-15 13:38:39 -0500 )edit

I am too involved with ROS development to use Groovy (e.g. MoveIt!)

Dave Coleman gravatar image Dave Coleman  ( 2014-10-15 15:04:53 -0500 )edit

Unfortunately you want bleeding edge and Rethink wants stability which are conflicting goals. We do our best to minimize changes between ROS distros, but in reality changes are exactly why we have distros.

William gravatar image William  ( 2014-10-15 15:27:19 -0500 )edit

Of course, I totally support making big changes between ROS distros and do lots of them myself. The problem is Rethink locking down their computer to advanced developers. But I'll hack around it, as I am.

Dave Coleman gravatar image Dave Coleman  ( 2014-10-15 15:49:25 -0500 )edit

Question Tools

1 follower


Asked: 2014-10-14 14:20:26 -0500

Seen: 934 times

Last updated: Oct 15 '14