Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CoppeliaSim interface with DQ Robotics: From zero to hero #2

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

ffasilva
Copy link
Member

Hi @dqrobotics/developers,

I've added the draft and the first lesson of the crash course "CoppeliaSim interface with DQ Robotics: From zero to hero." Let me know what you think of it.

Kind regards,
Frederico

ffasilva added 2 commits June 13, 2024 15:53
Fixed hyperlink for repository download as a zip file.
README.md Outdated
# CoppeliaSim interface with DQ Robotics: From zero to hero

A crash course on the interface with CoppeliaSim robot simulator.
Copy link
Member

Choose a reason for hiding this comment

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

with the CoppeliaSim

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed in 67963ce.


1. Install [MATLAB](https://www.mathworks.com/products/matlab.html).
2. Clone the latest version of the [DQ Robotics](https://github.com/dqrobotics/matlab) or [download it as a ZIP package](https://github.com/dqrobotics/matlab/archive/refs/heads/master.zip).
Copy link
Member

Choose a reason for hiding this comment

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

This is bad practice, as users will download a non-release version (the fact that we've been taking an eternity to finish the modifications for the release version doesn't matter---it is still bad practice). Please add a footnote explaining why users need to do it.

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm suggesting the master branch here because of the proposed tutorial structure. If we stick to the release version, the tutorial ends in lesson 3. The current release uses set_joint_positions in both LBR4pVrepRobot and YouBotVrepRobo. This method only works with a passive joints (or dynamics disabled in newer CoppeliaSim versions). Lesson 4 (dynamic world) requires the modifications I sent in this pull request.

Should I change it to the release version or add a footnote instead?

4. Clone this repository or [download it as a ZIP package](https://github.com/dqrobotics/learning-dqrobotics-with-coppeliasim/archive/refs/heads/main.zip).
5. Install [CoppeliaSim](https://www.coppeliarobotics.com/).
6. Download the [CoppeliaSim scenes](https://osf.io/2tfsx/) (the .ttt files) used in the lessons.
Copy link
Member

Choose a reason for hiding this comment

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

This process should be streamlined. Please add an option for users to use curl so that they can download the all scenes using one command. See description here.

Copy link
Member Author

Choose a reason for hiding this comment

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

Added in cd695dd.

README.md Outdated

## References
As a crash course on CoppeliaSim interface, these lessons assume basic knowledge of dual quaternion algebra and on the use of DQ Robotics and CoppeliaSim.
Copy link
Member

Choose a reason for hiding this comment

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

basic knowledge of dual quaternion algebra and on the use of

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed in ce279f6.

README.md Outdated
As a crash course on CoppeliaSim interface, these lessons assume basic knowledge of dual quaternion algebra and on the use of DQ Robotics and CoppeliaSim.

1. For an introduction on dual quaternion algebra to robotics, see [1].
Copy link
Member

Choose a reason for hiding this comment

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

introduction on -> introduction to

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed in 9911bc8.

README.md Outdated

1. For an introduction on dual quaternion algebra to robotics, see [1].
2. For basic lessons on kinematic modeling and control using DQ Robotics, see [2].
Copy link
Member

Choose a reason for hiding this comment

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

For basic MATLAB lessons on kinematic modeling and control of serial manipulators using DQ Robotics, see (...)

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated in 1af7097.

README.md Outdated

## Comments/Suggestions...
If you have any issues, please let us know.
Copy link
Member

Choose a reason for hiding this comment

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

please let us know via the [Discussion forum](add link here).

Copy link
Member Author

Choose a reason for hiding this comment

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

Added in 25b4d5c.

Copy link
Member

Choose a reason for hiding this comment

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

Please change the license to comply with the DQ Robotics standards:

% (C) Copyright 2011-2024 DQ Robotics Developers
% 
% This file is part of DQ Robotics.
% 
%     DQ Robotics is free software: you can redistribute it and/or modify
%     it under the terms of the GNU Lesser General Public License as published by
%     the Free Software Foundation, either version 3 of the License or
%     (at your option) any later version.
% 
%     DQ Robotics is distributed in the hope that it will be useful,
%     but WITHOUT ANY WARRANTY; without even the implied warranty of
%     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%     GNU Lesser General Public License for more details.
% 
%     You should have received a copy of the GNU Lesser General Public License
%     along with DQ Robotics.  If not, see <http://www.gnu.org/licenses/>.
%
% DQ Robotics website: dqrobotics.github.io
%
% Contributors to this file:
%     Frederico Fernandes Afonso Silva ([email protected])

Changes in the text

Change

You will mostly be using this panel when setting-up new scenes, as, once the simulation is running, it will be more convenient to control it using the interface with DQ Robotics.

to
You will mostly use this panel when setting up new scenes, as once the simulation is running, it will be more convenient to control it using the interface with DQ Robotics.

Change

Objects on CoppeliaSim are rigidly attached to their parents. Which means that moving 'Floor' would drag 'box' alongside it, whereas the opposite is not true.

to

Objects on CoppeliaSim are rigidly attached to their parents. This means that moving 'Floor' would drag 'box' alongside it, whereas the opposite is false.

Change

Double click on 'Cuboid_respondable[0]' (click on the drawing, not on the text), then select 'Dynamic properties dialog' to bring the interface:

to

Double click on the 'Cuboid_respondable[0]' icon, then select 'Dynamic properties dialog':

Change

Objects with the box 'body is dynamic' ticked are subject to dynamic simulation (e.g., will be affected by gravity force).

to

Objects with the box 'body is dynamic' ticked are subject to dynamic simulation (e.g., will be affected by gravity).

Change

Different engines deal differently with all simulation aspects (e.g., contact). Try to change engines and notice how the superimposed respondable cubes react with each engine. Notice that some engines might not be available on your installation (e.g., Vortex is proprietary and won't allow you to perform dynamic simulations unless you purchase a license for it).

to

Different engines deal differently with all simulation aspects (e.g., contact). Try to change engines and notice how the superimposed respondable cubes react with each engine. Notice that some engines might not be available on your CoppeliaSim installation (e.g., Vortex is proprietary and won't allow you to perform dynamic simulations unless you purchase a license).

Change

This menu allows you do drag the object on the scene, define it's [x; y; z] coordinates, or translate/scale it along the x/y/z axis.

to

This menu allows you to drag the object on the scene, define its (x,y,z) coordinates, or translate/scale it along the x, y, and z axes.

Change

Similar to the options on the translation menu, here you can drag the object, define it's orientation, or rotate around the x/y/z axis.

to

Similar to the options on the translation menu, here you can drag the object, define its orientation, or rotate around the x, y, and z axes.

Change

Double click in any joint. This will bring the 'Scene Object Properties' menu. Then click on the 'Dynamic properties dialog' to open the 'Joint Dynamic Properties' menu.

to

Double-click on any joint. This will bring the 'Scene Object Properties' menu. Then click the 'Dynamic Properties dialog' to open the 'Joint Dynamic Properties' menu.

Lastly, change the metadata of all scenes on OSF to ensure they point to the correct repository.

Change

Scenes for the tutorial "CoppeliaSim interface with DQ Robotics: From zero to hero," available at: https://github.com/ffasilva/learning-dqrobotics-in-matlab/tree/coppeliasim-interface/coppeliasim_interface

to

Scenes for the tutorial "CoppeliaSim interface with DQ Robotics: From zero to hero," available at: https://github.com/dqrobotics/learning-dqrobotics-with-coppeliasim

ffasilva added 7 commits June 24, 2024 13:27
Added curl option to get the .ttt scene files.
Minor text fix.
Minor text fix.
Minor text fix.
Added link to the discussion forum.
@ffasilva
Copy link
Member Author

Hi @bvadorno,

Thank you for the careful review! I finished the requested modifications. Please let me know if there is still something missing.

Kind regards,
Frederico

@ffasilva ffasilva requested a review from bvadorno July 23, 2024 14:52
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