Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
daeef13
[CONTRIBUTING.md] Added the contributing file.
juanjqo Dec 3, 2022
2f700df
[CONTRIBUTING.md] Updated the file.
juanjqo Dec 3, 2022
594decd
[DQ_Kinematics.m] Added the dim_configuration_space protected property.
juanjqo Dec 3, 2022
0ac286f
[DQ_SerialManipulatorDH] Added the properties theta,a, d, alpha and u…
juanjqo Dec 3, 2022
765e2f0
[DQ_SerialManipulatorDH.m] Updated the documentation.
juanjqo Dec 3, 2022
73c1693
[DQ_SerialManipulator.m] Defined the class as an abstract class and u…
juanjqo Dec 3, 2022
2157e3b
[DQ_SerialManipulator.m] Defined abstract methods. Removed raw_fkm.
juanjqo Dec 3, 2022
22ea22d
[DQ_SerialManipulatorDH.m] Removed fkm, which is now in DQ_SerialMani…
juanjqo Dec 3, 2022
a4c3396
[DQ_SerialManipulator.m] Removed raw_pose_jacobian_derivative.
juanjqo Dec 3, 2022
2ad3a69
[DQ_SerialManipulator.m] Removed raw_pose_jacobian_derivative.
juanjqo Dec 3, 2022
e2bed8e
[DQ_SerialManipulatorDH.m] Added the pose_jacobian_derivative.
juanjqo Dec 3, 2022
3aa7aca
[DQ_Kinematics.m] Removed changes in DQ_Kinematics
juanjqo Dec 3, 2022
44f8bb9
[DQ_SerialManipulator.m] Removed dim_configuration_space to keep usin…
juanjqo Dec 3, 2022
0239e71
[DQ_SerialManipulatorDH.m] Removed dim_configuration_space to keep us…
juanjqo Dec 3, 2022
c65a740
[ComauSmartSixRobot.m] Updated the robot definition.
juanjqo Dec 3, 2022
960f323
[DQ_SerialManipulator.m] Defined the raw_pose_jacobian_derivative as …
juanjqo Dec 3, 2022
10e01b1
[DQ_SerialManipulatorDH.m] Modified the name of the method to raw_pos…
juanjqo Dec 3, 2022
e928764
[DQ_SerialManipulatorMDH.m] Added a concrete class to model robots us…
juanjqo Dec 3, 2022
177c3a2
Merge remote-tracking branch 'origin/contributing' into contributing
juanjqo Dec 3, 2022
91e7106
[DQ_Kinematics.h] Fixed missing semi-colon.
juanjqo Dec 3, 2022
ce99e1d
juanjqo Dec 3, 2022
80f5254
juanjqo Dec 3, 2022
60e8414
juanjqo Dec 3, 2022
926ee75
juanjqo Dec 3, 2022
b85a81a
[DQ_SerialManipulator.m] Removed the convention property and some com…
juanjqo Dec 3, 2022
c28c98b
juanjqo Dec 3, 2022
31bd434
juanjqo Dec 3, 2022
0aea5a4
juanjqo Dec 4, 2022
d3fdb38
[DQ_SerialManipulator.m] Updated the documentation.
juanjqo Dec 4, 2022
5348e17
Update CONTRIBUTING.md
bvadorno Dec 4, 2022
be5d975
[CONTRIBUTING.md] Fixed typos pointed out by Bruno in the contributin…
juanjqo Dec 5, 2022
a9372a3
[DQ_Kinematics.m] Updated the copyright and the Bruno's email.
juanjqo Dec 5, 2022
7ceb2e5
juanjqo Dec 5, 2022
2295c75
[DQ_SerialManipulator.m] Fixed comment according to Bruno's suggestion
juanjqo Dec 6, 2022
f3ddafb
juanjqo Dec 6, 2022
1bcff4a
[DQ_SerialManipulatorDH.m] Fixed error message according to Bruno's s…
juanjqo Dec 6, 2022
91c5b55
[DQ_SerialManipulatorDH.m] Added modifications according to Bruno's s…
juanjqo Dec 6, 2022
8b3a71a
[DQ_SerialManipulator.m] Added the dh2dq as an abstract method.
juanjqo Dec 6, 2022
c70d7c8
[DQ_SerialManipulatorDH.m] Updated the documentation of dh2dq
juanjqo Dec 6, 2022
7784648
[JointType.m] Created a enumeration class containing type of joints.
juanjqo Dec 6, 2022
9e3d4ec
[DQ_JointType] Implemented the Bruno's suggestions.
juanjqo Dec 6, 2022
08b4d65
[DQ_JointType.m] Updated the contributors section according to Murilo…
juanjqo Dec 6, 2022
f56bc55
[DQ_SerialManipulatorDH.m] Updated the header as discussed in #75
juanjqo Dec 6, 2022
3ea9729
[DQ_SerialManipulator.m] Removed the argument of the constructor, as …
juanjqo Dec 7, 2022
7d80e15
[DQ_SerialManipulatorDH.m] Updated the constructor of the class takin…
juanjqo Dec 7, 2022
3989e09
[DQ_SerialManipulatorDH.m] Added the date of some commits.
juanjqo Dec 7, 2022
ce7f3af
[DQ_SerialManipulatorDH.m] Modified the class to use DQ_JointType
juanjqo Dec 7, 2022
c56b6a8
[ComauSmartSixRobot.m] Updated the class to use DQ_JointType
juanjqo Dec 7, 2022
bc1e1d5
[ComauSmartSixRobot.m] Updated the website, Bruno's email and the cop…
juanjqo Dec 7, 2022
4d1e47f
[ComauSmartSixRobot.m] Fixed the robot definition using the MDH class…
juanjqo Dec 7, 2022
1996fa6
[DQ_SerialManiplator.m] Updated the comments of pose_jacobian and pos…
juanjqo Dec 7, 2022
f0d0f0c
[DQ_SerialManipulator.m] Updated the condition of pose_jacobian_deriv…
juanjqo Dec 7, 2022
4ee9ebd
[DQ_SerialManipulator.m] Modified the if condition in pose_jacobian()
juanjqo Dec 8, 2022
5f6befa
Revert "[DQ_SerialManipulator.m] Modified the if condition in pose_ja…
juanjqo Dec 8, 2022
116bbe5
[DQ_SerialManipulator.m] Removed the abstract method dq2dh().
juanjqo Dec 11, 2022
4c1ed0e
[CONTRIBUTING.md] Fixed type of font and the color of two words.
juanjqo Dec 11, 2022
91f00ca
[DQ_SerialManipulator.m] Removed some lines in the header as requeste…
juanjqo Dec 11, 2022
66a25b7
[DQ_SerialManipulator.m] Updated the pose_jacobian_derivative method …
juanjqo Dec 11, 2022
6f15dcc
[DQ_SerialManipulatorDH.m] Fixed the number of the PR to which I cont…
juanjqo Dec 11, 2022
e375d0e
[DQ_SerialManipulatorMDH.m] Added the class to model robots using the…
juanjqo Dec 11, 2022
b8a21fe
[DQ_SerialManipulatorMDH.m] Updated the header.
juanjqo Dec 11, 2022
423e95f
[DQ_SerialManipulatorMDH.m] Updated the header according to Bruno's s…
juanjqo Dec 11, 2022
45c574a
[DQ_SerialManipulatorMDH.m] Improved the design of the class as reque…
juanjqo Dec 12, 2022
9f78c8c
[DQ_SerialManipulator.m] Added get_w and get_link2dq as protected abs…
juanjqo Dec 12, 2022
7bcbcea
[DQ_SerialManipulator.m] The raw methods are concrete methods instead…
juanjqo Dec 12, 2022
b2fece8
[DQ_SerialManipulatorDH.m] Removed the concrete methods raw_fkm, raw_…
juanjqo Dec 12, 2022
a8dd1ce
[DQ_SerialManipulatorDH.m] Renamed the method dh2dq.
juanjqo Dec 12, 2022
3c724ab
[DQ_SerialManipulatorMDH.m] Updated the class according to the new de…
juanjqo Dec 12, 2022
b3e1219
[DQ_SerialManipulator.m] Updated the header.
juanjqo Dec 12, 2022
a4c071b
[DQ_SerialManipulatorDH.m] Updated the header.
juanjqo Dec 12, 2022
ff8bb43
[DQ_SerialManipulatorMDH.m] Updated the header.
juanjqo Dec 12, 2022
bee728b
[DQ_SerialManipulator.m] Modified the documentation of raw_fkm as sug…
juanjqo Dec 15, 2022
3570914
Merge pull request #75 from juanjqo/contributing
bvadorno Dec 15, 2022
cebaba2
This commit adds methods to set and get the type of joints.
juanjqo Dec 26, 2022
436db7a
This commit adds the method get_suppported_joint_types()
juanjqo Dec 26, 2022
2ce8e9c
[DQ_SerialManipulator] Added the check_joint_types method.
juanjqo Dec 26, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 (juanjqo@g.ecc.u-tokyo.ac.jp)
% 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