Skip to content

Commit

Permalink
[CONTRIBUTING.md] Added the contributing file.
Browse files Browse the repository at this point in the history
[DQ_Kinematics.m] Added the dim_configuration_space protected property.

[DQ_SerialManipulatorDH] Added the properties theta,a, d, alpha and updated the constructor of the class.
[DQ_SerialManipulatorDH.m] Updated the documentation.

[DQ_SerialManipulator.m] Defined the class as an abstract class and updated the constructor.
[DQ_SerialManipulator.m] Defined abstract methods. Removed raw_fkm.

[DQ_SerialManipulatorDH.m] Removed fkm, which is now in DQ_SerialManipulator.

[DQ_SerialManipulator.m] Removed raw_pose_jacobian_derivative.
[DQ_SerialManipulator.m] Removed raw_pose_jacobian_derivative.

[DQ_SerialManipulatorDH.m] Added the pose_jacobian_derivative.

[DQ_Kinematics.m] Removed changes in DQ_Kinematics

[DQ_SerialManipulator.m] Removed dim_configuration_space to keep using the n_links property.

[DQ_SerialManipulatorDH.m] Removed dim_configuration_space to keep using the n_links property.

[ComauSmartSixRobot.m] Updated the robot definition.

[DQ_SerialManipulator.m] Defined the raw_pose_jacobian_derivative as an abstract method and defined its concrete version.

[DQ_SerialManipulatorDH.m] Modified the name of the method to raw_pose_jacobian_derivative.

[DQ_SerialManipulatorMDH.m] Added a concrete class to model robots using the modified DH convention.

[CONTRIBUTING.md] Updated the file.
Updated the file with last Bruno's recommendations.

[DQ_Kinematics.h] Fixed missing semi-colon.

[DQ_SerialManipulator.m] the Fixed error message of the constructor.
[DQ_SerialManipulator.m] Added comments in some lines.

[DQ_SerialManipulatorDH.m] Protected the methods get_w and dh2dq, as in C++.
[DQ_SerialManipulatorDH.m] Added minimal changes in the dh2dq method.

[DQ_SerialManipulator.m] Removed the convention property and some comments.
[DQ_SerialManipulator.m] Updated the year of the copyright

[DQ_SerialManipulatorDH.m] Updated the copyright.

[DQ_SerialManipulatorMDH] Removed the class. I will add it in a future PR.

[DQ_SerialManipulator.m] Updated the documentation.

Update CONTRIBUTING.md

- Fixed grammar problems across the file.
- Added more information about longer commits.

[CONTRIBUTING.md] Fixed typos pointed out by Bruno in the contributing diagram
[CONTRIBUTING.md] Fixed typos pointed out by Bruno in the contributing diagram

[DQ_Kinematics.m] Updated the copyright and the Bruno's email.

[DQ_SerialManipulator.m] Removed TODO comments and updated the Bruno's email.
[DQ_SerialManipulator.m] Fixed comment according to Bruno's suggestion
[DQ_SerialManipulator.m] Fixed comment according to Bruno's suggestion.

[DQ_SerialManipulatorDH.m] Fixed error message according to Bruno's suggestion.
[DQ_SerialManipulatorDH.m] Added modifications according to Bruno's suggestion

[DQ_SerialManipulator.m] Added the dh2dq as an abstract method.

[DQ_SerialManipulatorDH.m] Updated the documentation of dh2dq

[JointType.m] Created a enumeration class containing type of joints.

[DQ_JointType] Implemented the Bruno's suggestions.

[DQ_JointType.m] Updated the contributors section according to Murilo's suggestion

[DQ_SerialManipulatorDH.m] Updated the header as discussed in dqrobotics#75

[DQ_SerialManipulator.m] Removed the argument of the constructor, as suggested by Bruno.

[DQ_SerialManipulatorDH.m] Updated the constructor of the class taking into account the modifications in the superclass.
[DQ_SerialManipulatorDH.m] Added the date of some commits.
[DQ_SerialManipulatorDH.m] Modified the class to use DQ_JointType

[ComauSmartSixRobot.m] Updated the class to use DQ_JointType
[ComauSmartSixRobot.m] Updated the website, Bruno's email and the copyright.
[ComauSmartSixRobot.m] Fixed the robot definition using the MDH class for serial manipulators.

[DQ_SerialManiplator.m] Updated the comments of pose_jacobian and pose_jacobian_derivative according to Bruno's suggestion.
[DQ_SerialManipulator.m] Updated the condition of pose_jacobian_derivative. If ith==n_links the effector is not taken into account anymore
[DQ_SerialManipulator.m] Modified the if condition in pose_jacobian()

Now, when ith==n_links the effector is not taken into account.

Revert "[DQ_SerialManipulator.m] Modified the if condition in pose_jacobian()"
This reverts commit 4ee9ebd.

[DQ_SerialManipulator.m] Removed the abstract method dq2dh().

[CONTRIBUTING.md] Fixed type of font and the color of two words.

[DQ_SerialManipulator.m] Removed some lines in the header as requested by Bruno
[DQ_SerialManipulator.m] Updated the pose_jacobian_derivative method to match pose_jacobian, as discussed in dqrobotics#75

[DQ_SerialManipulatorDH.m] Fixed the number of the PR to which I contributed.

[DQ_SerialManipulatorMDH.m] Added the class to model robots using the MDH parameters.
[DQ_SerialManipulatorMDH.m] Updated the header.
[DQ_SerialManipulatorMDH.m] Updated the header according to Bruno's suggestion.
[DQ_SerialManipulatorMDH.m] Improved the design of the class as requested by Bruno.

[DQ_SerialManipulator.m] Added get_w and get_link2dq as protected abstract methods.
[DQ_SerialManipulator.m] The raw methods are concrete methods instead of abstract ones.

[DQ_SerialManipulatorDH.m] Removed the concrete methods raw_fkm, raw_pose_jacobian, and raw_pose_jacobian_derivative
[DQ_SerialManipulatorDH.m] Renamed the method dh2dq.

[DQ_SerialManipulatorMDH.m] Updated the class according to the new design proposed by Murilo.

[DQ_SerialManipulator.m] Updated the header.

[DQ_SerialManipulatorDH.m] Updated the header.

[DQ_SerialManipulatorMDH.m] Updated the header.

[DQ_SerialManipulator.m] Modified the documentation of raw_fkm as suggested by Bruno.

 Author:    juancho <[email protected]>
 Date:      Sat Dec 3 16:51:55 2022 +0900
  • Loading branch information
juanjqo authored and bvadorno committed Jan 5, 2023
1 parent f225e1e commit 279e276
Show file tree
Hide file tree
Showing 7 changed files with 580 additions and 343 deletions.
96 changes: 96 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Welcome, contributors to DQ Robotics!

We are happy about your interest in our project! DQ Robotics is a standalone, **fully moderated** open-source library, and contributions are always welcome!

If your proposed modifications change current functionality, you **must** first discuss them with the developers team and ensure they are approved. Otherwise, it will be rejected without review.

This is a set of guidelines for contributing to [DQ Robotics](https://dqrobotics.github.io/).

# Workflow

- Fork the [master branch of dqrobotics/matlab](https://github.com/dqrobotics/matlab).
- Propose your modifications and open a draft pull request. Keep in mind the following **requirements**:
- Propose individual changes (several changes of the same type are allowed on the same pull request).
- Do not unnecessarily change any internal implementation that is working correctly without prior approval.
- Include a clear and concise rationale behind each pull request.
- Your modifications will be tested automatically through Github actions. Github actions run the tests of [matlab-tests](https://github.com/dqrobotics/matlab-tests), which execute all the examples of [matlab-examples](https://github.com/dqrobotics/matlab-examples).
- Once your draft pull request passes all the tests, you can switch the status to pull request. (More details [here](https://github.blog/2019-02-14-introducing-draft-pull-requests/)).

<img src="https://user-images.githubusercontent.com/23158313/206892365-388afa7f-588b-45d2-b7c3-fd01966e6b29.png" alt="drawing" width="1200"/>

## Case 1 (Common cases)

- If your modifications pass all tests, a designated member of our team will review all the changes and they will accept them after all necessary adjustments, if any.

## Case 2 (Very rare cases)

- In some cases, your modifications would fail some tests because of incompatibility with the current version of [matlab-tests](https://github.com/dqrobotics/matlab-tests) and/or [matlab-examples](https://github.com/dqrobotics/matlab-examples). In thoses cases, you must propose changes in [matlab-tests](https://github.com/dqrobotics/matlab-tests) and [matlab-examples](https://github.com/dqrobotics/matlab-examples) to make them compatible with your new version of the dqrobotics/matlab.
- A designated member of our team will review all the changes proposed in both [matlab-tests](https://github.com/dqrobotics/matlab-tests) and [matlab-examples](https://github.com/dqrobotics/matlab-examples). They will accept the modifications in the master branch after all necessary adjustments. At this point, it is expected that your pull request passes all the tests in the master branch but fails in the release branch.

![master_and_release](https://user-images.githubusercontent.com/23158313/150379489-cabc85bb-dbe4-41be-a405-7b254a36092a.png)

- After your dqrobotics/matlab pull request is adjusted accordingly and passes all the tests, your proposed modifications will be scrutinized to ensure they follow the coding style and development philosophy, are technically correct, and add value to the current implementation.
- Finally, your modifications will be accepted in the master branch.

# Example

## Fork the [dqrobotics/matlab](https://github.com/dqrobotics/matlab) in your Github account

![fork_master](https://user-images.githubusercontent.com/23158313/149602838-133f6c09-2e16-418e-8ab6-47fb36a91056.gif)

## Clone the forked repository

For instance, if your forked matlab respository is https://github.com/juanjqo/matlab, then

Type in your terminal:

- `git clone https://github.com/juanjqo/matlab.git`

![git_clone](https://user-images.githubusercontent.com/23158313/149603381-78732b55-2794-4be9-9a12-b7062d0649b5.gif)

## Make your modifications

Now, you can modify the code with your contributions.
(In this specific example, as shown in the animated figure below, the CONTRIBUTING.md file is modified.)

![modifications](https://user-images.githubusercontent.com/23158313/149604028-915d9325-e52a-4378-ba58-17b7fe1a7a81.gif)

## Add, commit and push your changes

Please indicate in your commit message, using brackets, the modified file. For instance, if you modified the class `DQ_SerialManipulator`, then you would do the following:

- `git commit -m "[DQ_SerialManipulator] your_message_explaining_the modification."`

![add_commit_push](https://user-images.githubusercontent.com/23158313/149603960-d69a8202-a3b1-4af5-a2d8-e1197cc26a81.gif)

However, if your explanation is longer or affects more than one file, you must write a more meaninful commit using a text editor, and hence **would not** use the `-m` option.

For example, this is how a longer commit would be written:
```
1: This commit solves issue X affecting `DQ_CLASS_A` and all its subclasses.
2:
3: [DQ_CLASS_A] Deleted variable X and included method Y to ensure correctness of model Z.
4: More specifically, Z was returning the transformation from frame A to frame B, instead
5: of frame B to frame A, as described in Eq. (X) of paper [full reference here]. This has
6: been fixed.
7:
8: [DQ_CLASS_A_SUBCLASS_C] Changed method Z to comply with the modification made in
9: DQ_CLASS_A
```







## Open a draft pull request (More details [here](https://github.blog/2019-02-14-introducing-draft-pull-requests/))

Now, your draft pull request will be tested by Github actions automatically.

![pull_request](https://user-images.githubusercontent.com/23158313/149604338-52f3ba35-ef25-440a-8bc8-75194c32130e.gif)

If your pull request fails the tests, don't worry!, you will see where your code is not working. Pick your pull request in https://github.com/dqrobotics/matlab/pulls. Then, at the end of the page, click on 'Details'.

![failed_check](https://user-images.githubusercontent.com/23158313/149604965-677f783f-64af-4120-966a-0461c85f9418.gif)
42 changes: 42 additions & 0 deletions robot_modeling/DQ_JointType.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
% (C) Copyright 2022 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:
%
% 1. Juan Jose Quiroz Omana ([email protected])
% Responsible for the original implementation.
%
classdef DQ_JointType < uint32

% This class is based on Table 1 of Silva, Quiroz-Omaña, and Adorno (2022).
% Dynamics of Mobile Manipulators Using Dual Quaternion Algebra
% https://doi.org/10.1115/1.4054320
enumeration
REVOLUTE (1)
PRISMATIC (2)
SPHERICAL (3)
CYLINDRICAL (4)
PLANAR (5)
SIX_DOF (6)
HELICAL (7)
end
end



6 changes: 3 additions & 3 deletions robot_modeling/DQ_Kinematics.m
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
% translation_jacobian - Compute the translation Jacobian.
% See also DQ_SerialManipulator, DQ_MobileBase, DQ_CooperativeDualTaskSpace.

% (C) Copyright 2011-2019 DQ Robotics Developers
% (C) Copyright 2011-2022 DQ Robotics Developers
%
% This file is part of DQ Robotics.
%
Expand All @@ -56,7 +56,7 @@
% DQ Robotics website: dqrobotics.github.io
%
% Contributors to this file:
% Bruno Vihena Adorno - adorno@ufmg.br
% Bruno Vihena Adorno - adorno@ieee.org

classdef DQ_Kinematics < handle
% DQ_Kinematics inherits the HANDLE superclass to avoid unnecessary copies
Expand All @@ -73,7 +73,7 @@
% Frame used to determine the robot physical location
base_frame;
% Robot configuration vector
q
q;
end

methods
Expand Down
Loading

0 comments on commit 279e276

Please sign in to comment.