Skip to content

Conversation

ffasilva
Copy link
Member

@ffasilva ffasilva commented Sep 10, 2025

Dear @dqrobotics/developers,

This PR implements the classes DQ_SerialCoppeliaSimRobotZMQ, LBR4pCoppeliaSimRobotZMQ, and YouBotCoppeliaSimRobotZMQ. They are the ZMQ equivalent of the old V-REP interface classes DQ_SerialVrepRobot, LBR4pVrepRobot, and YouBotVrepRobot, respectively.

DQ_SerialCoppeliaSimRobotZMQ inherits from DQ_CoppeliaSimRobot and implements all the abstract methods required by it, whereas LBR4pCoppeliaSimRobotZMQ and YouBotCoppeliaSimRobotZMQ are concrete instantiations of DQ_SerialCoppeliaSimRobotZMQ to CoppeliaSim's KUKA LBR4+ and youBot robots, respectively.

To test my implementations, I updated the old simulation-ram-paper to work with the new ZMQ interface. This simulation is available in 14.

Please let me know what you think of it.

Kind regards,
Frederico

LBR4p_DH_alpha
LBR4p_DH_type];

kin = DQ_SerialManipulatorDH(LBR4p_DH_matrix, 'standard');
Copy link
Member

Choose a reason for hiding this comment

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

Hi @ffasilva, the constructor `DQ_SerialManipulatorDH(DH_matrix, 'standard') is deprecated. Please use the modern constructor of the class.

LBR4p_DH_d = [0.200, 0, 0.4, 0, 0.39, 0, 0];
LBR4p_DH_a = [0, 0, 0, 0, 0, 0, 0];
LBR4p_DH_alpha = [pi/2, -pi/2, pi/2, -pi/2, pi/2, -pi/2, 0];
LBR4p_DH_type = double(repmat( ...
Copy link
Member

Choose a reason for hiding this comment

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

@ffasilva the class member DQ_SerialManipulatorDH.JOINT_ROTATIONAL is deprecated. Please use the class DQ_JointType.

arm_DH_alpha;
arm_DH_type];

arm = DQ_SerialManipulatorDH(arm_DH_matrix, 'standard');
Copy link
Member

Choose a reason for hiding this comment

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

arm_DH_a = [0.033, 0.155, 0.135, 0, 0];
arm_DH_alpha = [pi/2, 0, 0, pi/2, 0];
arm_DH_type = double(repmat( ...
DQ_SerialManipulatorDH.JOINT_ROTATIONAL, 1, 5));
Copy link
Member

Choose a reason for hiding this comment

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

@ffasilva
Copy link
Member Author

ffasilva commented Sep 15, 2025

Hi @juanjqo,

Thanks for the review!

The problem with your request is that DQ_SerialManipulatorDH(DH_matrix, 'standard') and DQ_SerialManipulatorDH.JOINT_ROTATIONAL are deprecated in the master branch of the matlab repository, but not on the release branch. This leaves us with two options:

  1. Update the code as you suggested. In this case, LBR4pCoppeliaSimRobotZMQ and YouBotCoppeliaSimRobotZMQ will work for anyone using the master branch of matlab, but will break, issuing an error, to anyone using the release branch
  2. We leave the code as it is. In this case, the classes work for users relying either on the master or the release branch, although the former group will get a deprecation warning

Please let me know what you think is best. My thoughts are that since the ZMQ interface now exists in its own independent repository, it should support the release version of matlab.

Kind regards,
Frederico

Quick P.S. editing: This relates to this earlier discussion. In brief, we should avoid forcing users to download a non-release version of DQ Robotics to have some other part of the library working.

@juanjqo
Copy link
Member

juanjqo commented Sep 17, 2025

Hi @juanjqo,

Thanks for the review!

The problem with your request is that DQ_SerialManipulatorDH(DH_matrix, 'standard') and DQ_SerialManipulatorDH.JOINT_ROTATIONAL are deprecated in the master branch of the matlab repository, but not on the release branch. This leaves us with two options:

  1. Update the code as you suggested. In this case, LBR4pCoppeliaSimRobotZMQ and YouBotCoppeliaSimRobotZMQ will work for anyone using the master branch of matlab, but will break, issuing an error, to anyone using the release branch
  2. We leave the code as it is. In this case, the classes work for users relying either on the master or the release branch, although the former group will get a deprecation warning

Please let me know what you think is best. My thoughts are that since the ZMQ interface now exists in its own independent repository, it should support the release version of matlab.

Kind regards, Frederico

Quick P.S. editing: This relates to this earlier discussion. In brief, we should avoid forcing users to download a non-release version of DQ Robotics to have some other part of the library working.

@ffasilva
For future Juancho and Fred, who will forget the details of this discussion in the near future:
To speed up this PR, we decided to discuss it in our DQ robotics meeting next Friday (2919/09/2025)

@ffasilva
Copy link
Member Author

Hi @juanjqo,

I modified the class as we discussed. Are we good to go now?

Kind regards,
Frederico

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.

2 participants