Skip to content

Commit

Permalink
Prepare 1.0.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
bourumir-wyngs committed Apr 20, 2024
1 parent e38264c commit 04e7cf4
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[package]
name = "rs-opw-kinematics"
version = "1.0.0"
edition = "2024"
edition = "2021"
authors = ["Bourumir Wyngs <[email protected]>"]
description = "Inverse and forward kinematic for 6 axis robots with a parallel base and spherical wrist."
license = "BSD-3"
license = "BSD-3-Clause"

[dependencies]
nalgebra = "0.32.5"
Expand Down
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
# rs-opw-kinematics

Rust implementation of inverse and forward kinematic solutions for 6 axis industrial robots with a parallel base
and spherical wrist.

[![license - apache 2.0](https://img.shields.io/:license-Apache%202.0-yellowgreen.svg)](https://opensource.org/licenses/Apache-2.0)
and spherical wrist. Hardened against the J5 = 0&deg; or &plusmn; 180&deg; singularity and optimized for trajectory planning.

# Intro

Expand All @@ -15,7 +13,6 @@ implementation to generate data for the test suite, also this documentation uses
This paper can be found
[here](https://www.researchgate.net/profile/Mathias-Brandstoetter/publication/264212870_An_Analytical_Solution_of_the_Inverse_Kinematics_Problem_of_Industrial_Serial_Manipulators_with_an_Ortho-parallel_Basis_and_a_Spherical_Wrist/links/53d2417e0cf2a7fbb2e98b09/An-Analytical-Solution-of-the-Inverse-Kinematics-Problem-of-Industrial-Serial-Manipulators-with-an-Ortho-parallel-Basis-and-a-Spherical-Wrist.pdf).


# Features
- rs-opw-kinematics is written entirely in Rust (not a C++ binding) and could be deployed using Cargo.
- all returned solutions are valid, normalized and cross-checked with forward kinematics.
Expand All @@ -24,10 +21,8 @@ This paper can be found
- for kinematic singularity at J5 = 0&deg; or J5 = &plusmn;180&deg; positions this solver provides reasonable J4 and J6
- values close to the previous positions of these joints (and not arbitrary that may result a large jerk of the real robot)
- use zeros to get the possible solution of singularity case with J4 and J6 close to zero rotation.

# Limitations
The solver currently requires to use 64 bit floats (Rust f64).
The positional accuracy for the robots tested (KUKA KR 6 R700 sixx and ABB IRB 2400/10) is below 1&micro;m.
- The solver currently use 64 bit floats (Rust f64), providing the positional accuracy below 1&micro;m for
the two robots tested.

# Parameters

Expand Down Expand Up @@ -109,5 +104,10 @@ fn main() {

```

# Notes
# Testing
The code of this project is tested against the test set (cases.yaml, 2048 cases per robot) that is
believed to be correct for the two robots, KUKA KR 6 R700 sixx and ABB IRB 2400/10. It has been produced
using independent C++ implementation by [Jmeyer1292/opw_kinematics](https://github.com/Jmeyer1292/opw_kinematics). The testing suite checks if the solutions
match.


2 changes: 1 addition & 1 deletion src/tests/testcases.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ fn are_isometries_approx_equal(a: &Isometry3<f64>, b: &Isometry3<f64>, tolerance
mod tests {
use std::collections::HashMap;
use std::f64::consts::PI;
use crate::kinematic_traits::kinematics_traits::{Kinematics, Singularity, Solutions};
use crate::kinematic_traits::{Kinematics, Singularity, Solutions};
use crate::parameters::opw_kinematics::Parameters;
use crate::kinematics_impl::OPWKinematics;
use super::*;
Expand Down

0 comments on commit 04e7cf4

Please sign in to comment.