Feature #1370

RCIRST converter should expose a public method for converting RCI types into corresponding RST types (and vice versa)

Added by C. Emmerich about 10 years ago. Updated almost 6 years ago.

Status:ClosedStart date:01/29/2013
Priority:NormalDue date:
Assignee:C. Emmerich% Done:

20%

Category:cpp
Target version:Robotics Service Bus - rsb-0.16

Description

In a project like FlexIRob, I have have to covnert RCI types to RST types frequently. So far, I have to do this manually. Hence, it would be desirable to have a method for converting RCI types (such as rci::Pose) to their corresponding RST types (such as rst::geometry::Pose) and vice versa. Inherently, the RCIRST converter (such as rcirst::PoseConverter) computes this conversion but does not expose a public accessable interface for that. Something like

class PoseConverter: public rsb::converter::Converter<std::string> {
public:

    static toRCI(const rst::geometry::Pose& pose);
    static toRST(const rci::Pose& pose);

    ...


would easily do the job...

Associated revisions

Revision b7e776e9
Added by Arne Nordmann almost 10 years ago

Extended rci PoseConverter to expose rci to rst conversion

refs #1370

  • PoseConverter now provides the public static methods rstToDomain and domainToRST to do the conversion between rci::Pose and rst::geometry::Pose
  • This can serve as a template for all RCI converters
  • All remainig code (apart from the rst<>rci conversion) can probably be extracted in a templated base rci-rst converter in the future

Revision f8ccd2b1
Added by Arne Nordmann almost 10 years ago

Extended rci PoseConverter to expose rci to rst conversion

refs #1370

  • PoseConverter now provides the public static methods rstToDomain and domainToRST to do the conversion between rci::Pose and rst::geometry::Pose
  • This can serve as a template for all RCI converters
  • All remainig code (apart from the rst<>rci conversion) can probably be extracted in a templated base rci-rst converter in the future

Revision 74777865
Added by Arne Nordmann over 6 years ago

Extended rci PoseConverter to expose rci to rst conversion

refs #1370

  • PoseConverter now provides the public static methods rstToDomain and domainToRST to do the conversion between rci::Pose and rst::geometry::Pose
  • This can serve as a template for all RCI converters
  • All remainig code (apart from the rst<>rci conversion) can probably be extracted in a templated base rci-rst converter in the future

History

#1 Updated by C. Emmerich about 10 years ago

Or, even better: Is it possible to extend the rci::Pose Interface in the rcirst-library with an additional constructor

rci::Pose(const rst::geometry::Pose&){
...
}

and an additional method
rst::geometry::Pose toRST() {
...
}

?

#2 Updated by Anonymous about 10 years ago

  • Status changed from New to Feedback

Right now, all the rst rci converters are hand-coded, yet very similar. They create the rst (intermediate) object anyway before passing it to the protobuf string converter, so they could be manually split up to publicly expose this step / rst object.

However, I wonder if we could already facilitate Rosetta Stone Project to safe manual work:
  • The converters use the same interface (base interface that is common to almost all rci types) in all converters for reading / writing the rci types anyway
  • So the only difference is the how they access the protobuf objects, which should be possible to generate via Rosetta Stone Project

#3 Updated by S. Wrede almost 10 years ago

  • Category set to cpp
  • Assignee set to C. Emmerich
  • Target version set to rsb-0.9

Our plan for the future would be to utilize Rosetta-based code generation to augment the RST-based domain objects with RCI functionality. This would require different data storage solutions (here e.g. NemoMath vectors should be used) and the (probably) template-based integration of helper / conversion functionality from RCI.

As a workaround, it should be possible to utilize the conversion functions contained in the libraries that are part of the rst-converters project.

#4 Updated by J. Moringen almost 10 years ago

  • Status changed from Feedback to In Progress
  • % Done changed from 0 to 20

We prototypically implemented the short-term solution for one converter. Christian will take care of the finalizing it and applying it to the remaining converters.

#5 Updated by J. Moringen almost 10 years ago

  • Target version changed from rsb-0.9 to rsb-0.10

#6 Updated by J. Moringen over 9 years ago

  • Target version changed from rsb-0.10 to rsb-0.11

#7 Updated by J. Moringen about 8 years ago

  • Target version changed from rsb-0.11 to rsb-0.12

#8 Updated by J. Wienke almost 8 years ago

  • Target version changed from rsb-0.12 to rsb-0.13

#9 Updated by J. Wienke over 7 years ago

What is the state of this issue?

#10 Updated by J. Moringen about 7 years ago

  • Target version changed from rsb-0.13 to rsb-0.14

#11 Updated by J. Moringen almost 7 years ago

  • Target version changed from rsb-0.14 to rsb-0.15

#12 Updated by J. Moringen over 6 years ago

  • Target version changed from rsb-0.15 to rsb-0.16

#13 Updated by J. Moringen almost 6 years ago

  • Status changed from In Progress to Closed

Also available in: Atom PDF