arcos_kdl/lib.rs
1// Copyright (c) 2019 Autonomous Robots and Cognitive Systems Laboratory
2// Author: Daniel Garcia-Vaglio <degv364@gmail.com>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17#![doc(
18 html_logo_url = "https://assets.gitlab-static.net/uploads/-/system/project/avatar/12217395/arcos-kdl-logo.png?width=128",
19 html_favicon_url = "https://assets.gitlab-static.net/uploads/-/system/project/avatar/12217395/arcos-kdl-logo.png?width=128"
20)]
21#![deny(missing_docs)]
22
23/*!
24# ARCOS-KDL
25
26## ARCOS-Lab Kinematics and Dynamic Library.
27
28arcos-kdl has been designed to be as similar as possible to
29[orocos-kdl](http://www.orocos.org/wiki/orocos/kdl-wiki)
30
31## Building
32
33Execute:
34
35```.bash
36 cargo build --lib
37```
38
39## Testing
40
41Execute:
42
43```.bash
44 cargo test
45```
46
47## Documentation
48
49Execute:
50
51```.bash
52 cargo doc
53```
54
55## Examples:
56### Forward velocity kinematics
57
58Given the current state at each joint we want to calculate the
59velocity at the end-effector.
60
61
62```.rust
63extern crate arcos_kdl;
64
65use arcos_kdl::prelude::*;
66fn main() {
67
68 println!("Documentation!");
69}
70```
71*/
72
73/// Implementation of Kinematic chains
74pub mod chains;
75/// Forward kinematics differential solver
76pub mod forward_diff_kinematics;
77/// Forward kinematics solver
78pub mod forward_kinematics;
79/// Basic geometric constructs like Homogeneous transformations
80pub mod geometry;
81/// Inverse Kinematics differential solver
82pub mod inverse_diff_kinematics;
83/// Implementation of Hexadimensional kinematic Jacobians
84pub mod jacobian;
85/// Implementation of robotic Joints
86pub mod joint;
87/// Implementation of a kinematic robotic arm
88pub mod kinematic_arm;
89/// Implementation of kinematic chain segments
90pub mod segment;
91/// Special SVD computation algorithm
92pub mod svd_eigen;
93
94/// Re-exporting usefull stuff
95pub mod prelude {
96 pub use crate::chains::Chain;
97 pub use crate::forward_diff_kinematics::ForwardDiffKinematicsSolver;
98 pub use crate::forward_kinematics::ForwardKinematicsSolver;
99 pub use crate::geometry::{
100 add_delta, diff, invert_frame, new_ref_base, new_ref_frame, new_ref_point, EulerBuild,
101 Frame, Introspection, Rotation, RotationRepresentations, Twist, Vector,
102 };
103 pub use crate::inverse_diff_kinematics::InverseDiffKinematicsSolver;
104 pub use crate::jacobian::{Jacobian, JointOperations};
105 pub use crate::joint::{Joint, JointType};
106 pub use crate::kinematic_arm::{KinematicArm, SegmentDescription};
107 pub use crate::segment::Segment;
108}