Skip to content

Commit 4f03a94

Browse files
committed
[DQ_FreeFlyingRobot_py.cpp] Added a new class to model free flying robots.
1 parent 413595e commit 4f03a94

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/**
2+
(C) Copyright 2023 DQ Robotics Developers
3+
4+
This file is part of DQ Robotics.
5+
6+
DQ Robotics is free software: you can redistribute it and/or modify
7+
it under the terms of the GNU Lesser General Public License as published by
8+
the Free Software Foundation, either version 3 of the License, or
9+
(at your option) any later version.
10+
11+
DQ Robotics is distributed in the hope that it will be useful,
12+
but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
GNU Lesser General Public License for more details.
15+
16+
You should have received a copy of the GNU Lesser General Public License
17+
along with DQ Robotics. If not, see <http://www.gnu.org/licenses/>.
18+
19+
Contributors:
20+
1. Bruno Vilhena Adorno ([email protected])
21+
Responsible for the original implementation in file DQ_FreeFlyingRobot.m
22+
https://github.com/dqrobotics/matlab/pull/66/commits
23+
24+
2. Juan Jose Quiroz Omana ([email protected])
25+
Created this file.
26+
*/
27+
28+
#include "../dqrobotics_module.h"
29+
30+
void init_DQ_FreeFlyingRobot_py(py::module& m)
31+
{
32+
/***************************************************
33+
* DQ FreeFlyingRobot
34+
* **************************************************/
35+
py::class_<
36+
DQ_FreeFlyingRobot,
37+
std::shared_ptr<DQ_FreeFlyingRobot>,
38+
DQ_Kinematics
39+
> dqfreeflyingrobot_py(m, "DQ_FreeFlyingRobot");
40+
41+
dqfreeflyingrobot_py.def(py::init());
42+
43+
///Methods
44+
//Concrete
45+
dqfreeflyingrobot_py.def("fkm",(DQ (DQ_FreeFlyingRobot::*)(const DQ&) const)&DQ_FreeFlyingRobot::fkm,"Gets the the free-flying robot pose.");
46+
dqfreeflyingrobot_py.def("pose_jacobian",(MatrixXd (DQ_FreeFlyingRobot::*)(const DQ&) const)&DQ_FreeFlyingRobot::pose_jacobian,"Gets the free-flying robot pose Jacobian.");
47+
dqfreeflyingrobot_py.def("pose_jacobian_derivative",(MatrixXd (DQ_FreeFlyingRobot::*)(const DQ&) const)&DQ_FreeFlyingRobot::pose_jacobian_derivative,"Gets the free-flying robot pose Jacobian derivative.");
48+
49+
50+
//Overrides from DQ_Kinematics
51+
dqfreeflyingrobot_py.def("fkm", (DQ (DQ_FreeFlyingRobot::*)(const VectorXd&) const)&DQ_FreeFlyingRobot::fkm,"Gets the fkm.");
52+
dqfreeflyingrobot_py.def("fkm", (DQ (DQ_FreeFlyingRobot::*)(const VectorXd&,const int&) const)&DQ_FreeFlyingRobot::fkm,"Gets the fkm.");
53+
dqfreeflyingrobot_py.def("pose_jacobian", (MatrixXd (DQ_FreeFlyingRobot::*)(const VectorXd&, const int&) const)&DQ_FreeFlyingRobot::pose_jacobian,"Returns the pose Jacobian.");
54+
dqfreeflyingrobot_py.def("pose_jacobian_derivative", (MatrixXd (DQ_FreeFlyingRobot::*)(const VectorXd&, const VectorXd&, const int&) const)
55+
&DQ_FreeFlyingRobot::pose_jacobian_derivative,"Returns the pose Jacobian derivative.");
56+
}

0 commit comments

Comments
 (0)