On Wed, Jul 1, 2015 at 9:05 PM, Esteve Fernandez <est...@osrfoundation.org> wrote:I think I've summarized the pros and cons of the issue well, but if
I've missed something please jump in and add to the conversation.
-1 The advantages listed above do not seem to justify the global hassle of updating all packages using these messages (not just core OSRF programs).
--
A separate proposal/concern is whether or not to make changes to the field names in CameraInfo. The question at hand is whether or not the convention can be changed to be more inclusive but still provide benefit.I happen to agree that CameraInfo's field names are not great. And though I agree with Jack that there are more important topics, there really isn't a better time to consider changes to messages than right now. However, we should propose those changes separately, as I did with the proposal to remove the seq field from Header.On Wed, Jul 8, 2015 at 11:21 AM, Robert Dean <bob....@gmail.com> wrote:I am going to disagree with Jack. Some of the common messages need to be broken. or technically it would be 'fixing' them. The names in CameraInfo specifically are horribly non descriptive. Changing the handful of core messages to make them more descriptive, and therefore the core easier to understand should the user base continue to expand, is a manageable migration risk. Having to change all of an entity's custom messages is higher risk.
--
- Quaternion.msg uses x, y, z, w and not w, x, y, z leading to some incomprehension (https://github.com/mrdoob/three.js/issues/2250)- why Point32.msg and Point.msg , why not Point64.msg- other messages are weird to me:- messages need to be re-thought (e.g. PointCloud2 : a mapping from channel to vector would make more sense (instead of mixing types like we do, which wastes space and complexifies the parsing))ok, I thought it was more obvious for CameraInfo but apparently not: the message was created by vision / OpenCV people. To us, it is obvious that K is a calibration matrix, P a projection matrix, R a pose rotation, t a pose translation ... (cf https://www.ics.uci.edu/~majumder/vispercep/cameracalib.pdf). This is a convention that was popularized by the book "Multiple view geometry" by Hartley and Zisserman.
Now, this is a math/matrix notation and if there is a new msg standard, sure, let's make things more roboticsy or science agnostic, let's reach as many people as possible. I would totally be down for creating special IDL for converting messages from ROS1 <-> ROS2 messages (like protobuf does I think).
But I believe this is a larger debate that is independent from ROS2. Here are other points that I'd like to be tackled whenever:
- messages need to be homogeneized (e.g. several ones for object recognition)
- messages need to be deprecated (e.g. PointCloud)
- why is the quaternion in Pose.msg named "orientation", but in Transform "rotation"
- to me Transform.msg should be named RigidTransform.msg.Maybe it is obvious to some of you, if so, let's quote the book/site reference/REP in the message itself (e.g., as I do help sometimes and not just complain :) https://github.com/ros/common_msgs/commit/168e19b72afc53fb8aad5cff0b2a5796ace40a8d#diff-b1009d9f62f18bf8c491348b99660cb3)Maybe a special message SIG ?
--
You received this message because you are subscribed to the Google Groups "ROS SIG NG ROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-ng-ro...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
- messages need to be re-thought (e.g. PointCloud2 : a mapping from channel to vector would make more sense (instead of mixing types like we do, which wastes space and complexifies the parsing))ok, I thought it was more obvious for CameraInfo but apparently not: the message was created by vision / OpenCV people. To us, it is obvious that K is a calibration matrix, P a projection matrix, R a pose rotation, t a pose translation ... (cf https://www.ics.uci.edu/~majumder/vispercep/cameracalib.pdf). This is a convention that was popularized by the book "Multiple view geometry" by Hartley and Zisserman.
Now, this is a math/matrix notation and if there is a new msg standard, sure, let's make things more roboticsy or science agnostic, let's reach as many people as possible. I would totally be down for creating special IDL for converting messages from ROS1 <-> ROS2 messages (like protobuf does I think).
But I believe this is a larger debate that is independent from ROS2. Here are other points that I'd like to be tackled whenever:
- messages need to be homogeneized (e.g. several ones for object recognition)
- messages need to be deprecated (e.g. PointCloud)
- other messages are weird to me:
- why is the quaternion in Pose.msg named "orientation", but in Transform "rotation"
- to me Transform.msg should be named RigidTransform.msg.
- why Point32.msg and Point.msg , why not Point64.msg
- Quaternion.msg uses x, y, z, w and not w, x, y, z leading to some incomprehension (https://github.com/mrdoob/three.js/issues/2250)Maybe it is obvious to some of you, if so, let's quote the book/site reference/REP in the message itself (e.g., as I do help sometimes and not just complain :) https://github.com/ros/common_msgs/commit/168e19b72afc53fb8aad5cff0b2a5796ace40a8d#diff-b1009d9f62f18bf8c491348b99660cb3)
Although some of these are non-optimal. For most of these the drivers SIG is probably a good place to discuss low level changes like these, there have been several similar discussions. We should still seek to only do highly valuable changes and avoid unnecessary changes. I don't think most of these reach that level.
What I'd like to see out of ROS2 is a future-proofing of these kinds of design problems. For example, for semantically-identical messages with different field labels, why can't we design a system where each user of the message can pick one of the versions of the field labels he or she wants to use. This could easily be done in dynamically-typed languages like python, and for statically-typed languages like C++ we could probably use namespace scoping or template metaprogramming to specify versions.
Then all we need to do is adjust the default message version as we release subsequent ROS distros, and migration becomes as easy as specifying the version when you include messages, specify their type names, or even just globally with compilation flags.
-j
--
You received this message because you are subscribed to the Google Groups "ROS SIG NG ROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-ng-ro...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.