ros2 / ros2/common_interfaces

Rethink shape_msgs/SolidPrimitive.msg

Open
#190 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

backlog
Dominant language
C++
Stars
393
Forks
157
PR merge metrics
No merged PRs in 30d

Description

The current version of SolidPrimitive.msg looks like: https://github.com/ros2/common_interfaces/blob/b7e2ad503e1648468b1dc766c43aac12cc9aee5a/shape_msgs/msg/SolidPrimitive.msg .

If you look closely at that message, though, it has two problems:

  1. The messages share very little infrastructure with each other.
  2. We don't provide the facility to generate a shape with holes in it.

The first problem suggests that we should actually have 5 different messages: SolidBox.msg, SolidSphere.msg, SolidCylinder.msg, SolidCone.msg, and SolidPrism.msg . That would make these messages a lot more semantically defined, rather than artificially stuffing them into the same message.

The second problem is debatable about whether we want to support it. Gazebo, for instance, supports something called "poly lines" which are shapes with holes in them. An Example of this is in https://classic.gazebosim.org/tutorials?tut=extrude_svg&cat=model_editor_top#CreateaGazeboModel . Whether those shapes could be considered "primitive" is an open question, but one we should consider allowing. If we did allow this, we would need to think through the implications of this and how we present it to the user.

@tfoote @chapulina FYI.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading shape_msgs/msg/SolidPrimitive.msg and the linked Gazebo poly-lines example. Work through whether the proposed SolidBox.msg, SolidSphere.msg, SolidCylinder.msg, SolidCone.msg, and SolidPrism.msg split is appropriate, and whether shapes with holes belong in these interfaces. Done means the open design questions have a decided interface direction.

Written by the indexing model from the issue text.

Assessment

Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.