Skip to content

Commit

Permalink
Update paper
Browse files Browse the repository at this point in the history
  • Loading branch information
dmronga committed Feb 27, 2024
1 parent 8b58c0d commit d19d7d5
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 7 deletions.
74 changes: 74 additions & 0 deletions paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,68 @@ @INPROCEEDINGS{Sentis2006
keywords={Humans;Kinematics;Monitoring;Runtime;Force control;Humanoid robots;Jacobian matrices;Artificial intelligence;Null space;Collaboration},
doi={10.1109/ROBOT.2006.1642100}}
@online{Eiquadprog2021,
author = {Gabriele Buondonno},
title = {Eiquadprog},
year = 2021,
url = {https://github.com/stack-of-tasks/eiquadprog},
urldate = {2021-08-02}
}
@article{2019_Kumar_HyRoDynApproach_IDETC,
author = {Kumar, Shivesh and Szadkowski, Kai Alexander von and Mueller, Andreas and Kirchner, Frank},
title = {An Analytical and Modular Software Workbench for Solving Kinematics and Dynamics of Series-Parallel Hybrid Robots},
journal = {Journal of Mechanisms and Robotics},
volume = {12},
number = {2},
year = {2020},
abstract = "{Parallel mechanisms are increasingly being used as modular subsystem units in various robots and man-machine interfaces for their superior stiffness, payload-to-weight ratio, and dynamic properties. This leads to series-parallel hybrid robotic systems that are challenging to model and control due to the presence of various closed loops. Most model-based kinematic and dynamic modeling tools resolve loop closure constraints numerically and hence suffer from inefficiency and accuracy issues. Additionally, they do not exploit the modularity in robot design. In this paper, we present a modular and analytical approach toward kinematic and dynamic modeling of series-parallel hybrid robots. This approach has been implemented in a software framework called hybrid robot dynamics (hyrodyn) and its application is demonstrated with the help of a series-parallel hybrid humanoid robot recently developed at DFKI-RIC.}",
doi = {10.1115/1.4045941},
}
@misc{kdl2021,
author = {Smits, R.},
title = {{KDL}: {K}inematics and {D}ynamics {L}ibrary},
url = {http://www.orocos.org/kdl},
note = {Accessed: 2021-09-14}
}
@Article{Felis2016,
author="Felis, Martin L.",
title="RBDL: an efficient rigid-body dynamics library using recursive algorithms",
journal="Autonomous Robots",
year="2016",
pages="1--17",
issn="1573-7527",
doi="10.1007/s10514-016-9574-0",
url="http://dx.doi.org/10.1007/s10514-016-9574-0"
}
@article{pandala2019qpswift,
title = {qpSWIFT: A Real-Time Sparse Quadratic Program Solver for Robotic Applications},
author = {Pandala, Abhishek Goud and Ding, Yanran and Park, Hae-Won},
journal = {IEEE Robotics and Automation Letters},
volume = {4},
number = {4},
pages = {3355--3362},
year = {2019},
publisher = {IEEE}
}
@inproceedings{bambade2022,
TITLE = {{PROX-QP: Yet another Quadratic Programming Solver for Robotics and beyond}},
AUTHOR = {Bambade, Antoine and El-Kazdadi, Sarah and Taylor, Adrien and Carpentier, Justin},
URL = {https://inria.hal.science/hal-03683733},
BOOKTITLE = {{RSS 2022 - Robotics: Science and Systems}},
ADDRESS = {New York, United States},
YEAR = {2022},
MONTH = Jun,
PDF = {https://inria.hal.science/hal-03683733/file/Yet_another_QP_solver_for_robotics_and_beyond.pdf},
HAL_ID = {hal-03683733},
HAL_VERSION = {v1},
}
@article{delprete2016,
TITLE = {{Implementing Torque Control with High-Ratio Gear Boxes and without Joint-Torque Sensors}},
AUTHOR = {del Prete, Andrea and Mansard, Nicolas and Ramos Ponce, Oscar Efrain and Stasse, Olivier and Nori, Francesco},
Expand All @@ -28,6 +90,18 @@ @article{delprete2016
NOTE = {Software Repository: \url{https://github.com/stack-of-tasks/tsid}}
}
@ARTICLE{Ferreau2014,
author = {H.J. Ferreau and C. Kirches and A. Potschka and H.G. Bock and M. Diehl},
title = {{qpOASES}: A parametric active-set algorithm for quadratic programming},
journal = {Mathematical Programming Computation},
year = {2014},
volume = {6},
number = {4},
pages = {327--363},
keywords = {qpOASES, parametric quadratic programming, active set method, model predictive control}
}
@INPROCEEDINGS{Posa2016,
author={Posa, Michael and Kuindersma, Scott and Tedrake, Russ},
booktitle={2016 IEEE International Conference on Robotics and Automation (ICRA)},
Expand Down
14 changes: 7 additions & 7 deletions paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,18 @@ ARC-OPT supports the software developer in designing robot controllers by provid

# Description

![ARC-OPT library overview](wbc_overview.svg)
![ARC-OPT library overview](wbc_overview.png)

ARC-OPT separates the implementation of controllers, robot models, solvers, and scenes, which allows a modular composition of the Whole-Body Control problem:

* A **controller** implements a function in the robot's task space, e.g., 'maintain balance', 'avoid obstacle', or 'follow trajectory'. ARC-OPT provides various controllers in joint or Cartesian space, like PD-Controllers, or repulsive potential fields.
* The **scene** sets up the QP, where the costs can be configured at runtime, and the constraints are specific for the implemented scene. Different QPs are currently implemented on velocity, acceleration and torque level.
* The **robot model** computes the kinematic and dynamic information that the scene requires to set up the QP, like Jacobians, mass-inertia matrices, and gravity terms. ARC-OPT implements various robot models based on Pinocchio [], RBDL [], KDL [], and Hyrodyn [].
* The **solver** solves the QP set up by the scene to produce the require control input for the robot. ARC-OPT provides various QP solvers based on open-source implementations, e.g., qpOASES [], eiquadprog [], proxQP, and qpSwift [].
* The **robot model** computes the kinematic and dynamic information that the scene requires to set up the QP, like Jacobians, mass-inertia matrices, and gravity terms. ARC-OPT implements various robot models based on Pinocchio [@carpentier2019pinocchio], RBDL [@Felis2016], KDL [@kdl2021], and Hyrodyn [@2019_Kumar_HyRoDynApproach_IDETC].
* The **solver** solves the QP set up by the scene to produce the require control input for the robot. ARC-OPT provides various QP solvers based on open-source implementations, e.g., qpOASES [@Ferreau2014], eiquadprog [@Eiquadprog2021], proxQP [@bambade2022], and qpSwift [@pandala2019qpswift].

# Example

Acceleration/torque-level QP: Tasks are formulated within the cost function. Equations of motion, rigid contacts and joint torque limits serve as constraints. The decision variables are the joint accelerations $$\ddot{q}$$, joint torques $\tau$ and contact wrenches $$f$$:
Acceleration/torque-level QP: Tasks are formulated within the cost function. Equations of motion, rigid contacts and joint torque limits serve as constraints. The decision variables are the joint accelerations $\ddot{\mathbf{q}}$, joint torques $\mathbf{\tau}$ and contact wrenches $\mathbf{f}$:

$$\begin{array}{cc}
\underset{\ddot{\mathbf{q}}, \boldsymbol{\tau}, \mathbf{f}}{\text{min}} & \|\mathbf{J}\ddot{\mathbf{q}} + \dot{\mathbf{J}}\dot{\mathbf{q}} - \dot{\mathbf{v}}_d\|_2 \\
Expand All @@ -49,16 +49,16 @@ $$\begin{array}{cc}
& \boldsymbol{\tau}_m \leq \boldsymbol{\tau} \leq \boldsymbol{\tau}_M \\
\end{array}$$

here ${\mathbf{J}$ is the robot Jacobian, $\mathbf{v}_d$ the desired task space velocity, $\dot{\mathbf{q}}_m$ and $\dot{\mathbf{q}}_M$ the minimal and maximal robot joint velocity.
here $\mathbf{J}$ is the robot Jacobian, $\mathbf{v}_d$ the desired task space velocity, $\dot{\mathbf{q}}_m$ and $\dot{\mathbf{q}}_M$ the minimal and maximal robot joint velocity.

with Cartesian position control:

$$
\dot{v}_d = \dot{v}_r + k_d(v_r-v) + k_p(x_r-x)
\dot{\mathbf{v}}_d = \dot{\mathbf{v}}_r + \mathbf{K}_d(\mathbf{v}_r-\mathbf{v}) + \mathbf{K}_p(\mathbf{x}_r-\mathbf{x})
$$

The ARC-OPT library for Whole-Body Control has been used in various scientific works [@Mronga2022],[@Mronga2021],[@Mronga2020],[@Popescu2022].

# Acknowledgements

ARC-OPT is supported through grants from the German Federal Ministry of Education and Research (BMBF), grant numbers 01IW21002 (M-Rock project) and 01IW20004 (VeryHuman project).
ARC-OPT is supported through grants from the German Federal Ministry of Education and Research (BMBF), grant numbers 01IW21002 (M-Rock project) and 01IW20004 (VeryHuman project).
Binary file added wbc_overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d19d7d5

Please sign in to comment.