Skip to content

Conversation

@juanjqo
Copy link
Member

@juanjqo juanjqo commented Nov 18, 2024

@dqrobotics/developers

This PR adds the first official version of the new DQ Robotics interface to connect with CoppeliaSim based on ZeroMQ remote API. This PR the abstract class DQ_CoppeliaSimInterface(), which I proposed here.

The new class DQ_CoppeliaSimZmqInterface() implements all methods of the superclass DQ_CoppeliaSimInterface().
Furthermore, the exclusive methods that are enabled by the ZeroMQ remote API are implemented in a different namespace called experimental. I added two examples in my own public repository https://github.com/juanjqo/dqrobotics-interface-coppeliasim-examples/tree/dqrobotics.

Furthermore, this PR proposes the following classes DQ_SerialCoppeliaSimRobot, DQ_SerialCoppeliaSimZmqRobot and, two robot classes URXCoppeliaSimZmqRobot and FrankaEmikaPandaCoppeliaSimZmqRobot.

Initial propose

drawing

Final version

drawing

Best regards,

Juancho

@juanjqo juanjqo marked this pull request as ready for review November 18, 2024 23:33
@juanjqo juanjqo marked this pull request as draft November 19, 2024 10:46
Copy link
Member

@bvadorno bvadorno left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, @juanjqo,

Please use more descriptive messages in your commits. "Made some modifications. But it is not working yet" is cryptic and unhelpful (what modifications?).

Thanks,
Bruno

…ppeliaSimInterfaceZMQ class. This strategy however, it is not suitable to allow low-level access from the experimental class. I removed temporarily from the CMake project the classes that require the DQ_CoppeliaSimInterfaceZMQ.
…between the two classes. Cleaning up repeated methods in the Experimental class.
…mbols in both classes by adding the implementation on the cpp and moving the template out to the header..
…methods add_primitive and object_exist_on_scene. However, there are more duplications to remove.
…xperimental class except the ones that perform intermediary steps in some plot methods. Fixed bug related to unit quaternion norm when the Newton engine is used.
@juanjqo
Copy link
Member Author

juanjqo commented Nov 20, 2024

Hi @bvadorno and @mmmarinho

I had a hard time implementing the @bvadorno's suggestion. But I think is ready. Thanks, @mmmarinho, for the clarification of some C++ concepts and for the implementation of the internal wrapper.
The current version of this PR only implements the class DQ_CoppeliaSimInterfaceZMQ and its child class DQ_CoppeliaSimInterfaceZMQExperimental. The former implements all methods from DQ_CoppeliaSimInterface and some deprecated ones to ensure backward compatibility with the DQ_VrepInterface. On the other hand, DQ_CoppeliaSimInterfaceZMQExperimental inherits the methods from DQ_CoppeliaSimInterfaceZMQ and implements experimental methods.

The other classes, as DQ_CoppeliaSimRobotZMQ, and some robot classes (e.g., FrankaEmikaPandaCoppeliaSimZMQRobot or URXCoppeliaSimZMQRobot will be added in a future PR.

Kind regards,

Juancho

@juanjqo juanjqo marked this pull request as ready for review November 20, 2024 16:11
@mmmarinho
Copy link
Member

Thanks @juanjqo.

@juanjqo and @bvadorno

I need to merge this pull request as a matter of urgency so that I can prepare my materials for next week's workshop. I'll add some other instructions to issue #1. These will include what @juanjqo mentioned about some remaining tasks to make this interface fully compatible.

It is better that we split this task into multiple pull requests otherwise we will have a difficult monster to handle. In addition, I'll have more experience with this interface to propose improvements.

Before I forget, @juanjqo, when you have the time, please adjust the UML to reflect what was done in this pull request.

Lastly, just FYI, to help disambiguate, I've added the string "[Murilo]" to the commits I made using the shared PC with Juan.

@mmmarinho mmmarinho merged commit 4cddaa8 into dqrobotics:main Nov 20, 2024
@mmmarinho mmmarinho changed the title This PR adds the first official version of the new DQ Robotics interface to connect with CoppeliaSim based on ZeroMQ remote API [PR] Adding DQ_CoppeliaSimInterfaceZMQ and DQ_CoppeliaSimInterfaceZMQ Extended Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants