Skip to content

Commit 04ed8eb

Browse files
committed
add proxqp (T-RO 25)
1 parent 0d2f035 commit 04ed8eb

20 files changed

+3326
-3
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
<body>
66
Simple Robotics: to come soon...
77
<br>
8-
98
Meanwhile, you can still follow us on <a href="https://github.com/Simple-Robotics"> GitHub</a>, <a href="https://www.youtube.com/@SimpleRoboticsOrg"> YouTube</a>, or read some cool papers from the Simple Robotics team:
109
<ul>
10+
<li><a href="publications/proxqp"> Efficient and Versatile QP Solver for Real-Time Roboticsc (IEEE T-RO 2025).</a></li>
1111
<li><a href="publications/qplayer"> Differentiable QP Solver.</a></li>
1212
<li><a href="publications/differentiable-soft-robotics"> Differentiable Simulator for Soft Robotics.</a></li>
1313
<li><a href="publications/simple-contact-solver"> Contact solver of the Simple simulator.</a></li>

publications/proxqp/index.html

Lines changed: 226 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="description" content="Efficient Quadratic Programming Solver for Real-Time Robotics">
6+
<meta name="keywords" content="Quadratic Programming, Real-Time Robotics, Optimization, Augmented Lagrangian">
7+
<meta name="viewport" content="width=device-width, initial-scale=1">
8+
<title>PROXQP</title>
9+
10+
<link href="https://fonts.googleapis.com/css?family=Google+Sans|Noto+Sans|Castoro" rel="stylesheet">
11+
12+
<link rel="stylesheet" href="./static/css/bulma.min.css">
13+
<link rel="stylesheet" href="./static/css/bulma-carousel.min.css">
14+
<link rel="stylesheet" href="./static/css/bulma-slider.min.css">
15+
<link rel="stylesheet" href="./static/css/fontawesome.all.min.css">
16+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css">
17+
<link rel="stylesheet" href="./static/css/index.css">
18+
<link rel="icon" href="./static/images/favicon.svg">
19+
20+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
21+
<script defer src="./static/js/fontawesome.all.min.js"></script>
22+
<script src="./static/js/bulma-carousel.min.js"></script>
23+
<script src="./static/js/bulma-slider.min.js"></script>
24+
<script src="./static/js/index.js"></script>
25+
</head>
26+
<body>
27+
28+
<nav class="navbar" role="navigation" aria-label="main navigation">
29+
<div class="navbar-brand">
30+
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
31+
<span aria-hidden="true"></span>
32+
<span aria-hidden="true"></span>
33+
<span aria-hidden="true"></span>
34+
</a>
35+
</div>
36+
<div class="navbar-menu">
37+
<div class="navbar-start" style="flex-grow: 1; justify-content: center;">
38+
<a class="navbar-item" href="https://simple-robotics.github.io">
39+
<span class="icon">
40+
<i class="fas fa-home"></i>
41+
</span>
42+
</a>
43+
</div>
44+
</div>
45+
</nav>
46+
47+
<section class="hero">
48+
<div class="hero-body">
49+
<div class="container is-max-desktop">
50+
<div class="columns is-centered">
51+
<div class="column has-text-centered">
52+
<h1 class="title is-1 publication-title">PROXQP: an Efficient and Versatile Quadratic Programming Solver for Real-Time Robotics Applications and Beyond</h1>
53+
<!-- TODO: adapt volume -->
54+
<h2 class="subtitle is-5 is-italic">Published in IEEE Transactions on Robotics, Volume , 2025</h2>
55+
<div class="is-size-5 publication-authors">
56+
<span class="author-block">
57+
<a href="https://bambade.github.io">Antoine Bambade</a>,
58+
</span>
59+
<span class="author-block">
60+
<a href="https://fabinsch.github.io/">Fabian Schramm</a>,
61+
</span>
62+
<span class="author-block">
63+
Sarah El Kazdadi,
64+
</span>
65+
<span class="author-block">
66+
<a href="https://scaron.info/">Stéphane Caron</a>,
67+
</span>
68+
<span class="author-block">
69+
<a href="https://adrientaylor.github.io">Adrien Taylor</a>,
70+
</span>
71+
<span class="author-block">
72+
<a href="https://jcarpent.github.io">Justin Carpentier</a>
73+
</span>
74+
</div>
75+
76+
<div class="is-size-5 publication-authors">
77+
<span class="author-block">Inria - Département d’Informatique de l'École normale supérieure, PSL Research University, France.</span>
78+
</div>
79+
80+
<div class="column has-text-centered">
81+
<div class="publication-links">
82+
<!-- PDF Link. -->
83+
<span class="link-block">
84+
<a href="./static/paper/proxqp.pdf"
85+
class="external-link button is-normal is-rounded is-dark">
86+
<span class="icon">
87+
<i class="fas fa-file-pdf"></i>
88+
</span>
89+
<span>Paper</span>
90+
</a>
91+
</span>
92+
<span class="link-block">
93+
<a href="https://hal.science/hal-04198663"
94+
class="external-link button is-normal is-rounded is-dark">
95+
<span class="icon">
96+
<i class="fas fa-globe-europe"></i>
97+
</span>
98+
<span>HAL</span>
99+
</a>
100+
</span>
101+
102+
<!-- Code Link. -->
103+
<span class="link-block">
104+
<a href="https://github.com/simple-robotics/proxsuite"
105+
class="external-link button is-normal is-rounded is-dark">
106+
<span class="icon">
107+
<i class="fab fa-github"></i>
108+
</span>
109+
<span>Code</span>
110+
</a>
111+
</span>
112+
</div>
113+
</div>
114+
</div>
115+
</div>
116+
</div>
117+
</div>
118+
</section>
119+
120+
<section class="section">
121+
<div class="container is-max-desktop">
122+
<!-- Abstract. -->
123+
<div class="columns is-centered has-text-centered">
124+
<div class="column is-four-fifths">
125+
<h2 class="title is-3">Abstract</h2>
126+
<div class="content has-text-justified">
127+
Convex Quadratic programming (QP) has become a core component in the modern engineering toolkit, particularly in robotics, where QP problems are legions, ranging from real-time whole-body controllers to planning and estimation algorithms. Many of those QPs need to be solved at high frequency. Meeting timing requirements requires taking advantage of as many structural properties as possible for the problem at hand. For instance, it is generally crucial to resort to warm-starting to exploit the resemblance of consecutive control iterations. While a large range of off-the-shelf QP solvers is available, only a few are suited to exploit problem structure and warm-starting capacities adequately. In this work, we propose the ProxQP algorithm, a new and efficient QP solver that exploits QP structures by leveraging primal-dual augmented Lagrangian techniques. For convex QPs, ProxQP features a global convergence guarantee to the closest feasible QP, an essential property for safe closed-loop control. We illustrate its practical performance on various standard robotic and control experiments, including a real-world closed-loop model predictive control application. While originally tailored for robotics applications, we show that ProxQP also performs at the level of state of the art on generic QP problems, making ProxQP suitable for use as an off-the-shelf solver for regular applications beyond robotics.
128+
129+
<div class="publication-image">
130+
<img src="./static/images/upkie-mpc.png" alt="Robotics Example" style="width:100%">
131+
</div>
132+
</div>
133+
</div>
134+
</div>
135+
<!--/ Abstract. -->
136+
137+
<!-- Results. -->
138+
<div class="columns is-centered has-text-centered">
139+
<div class="column is-max-desktop">
140+
<h2 class="title is-3">Results</h2>
141+
<div class="content">
142+
<p>
143+
Our ProxQP solver has been implemented in C++ and is designed to handle a wide range of quadratic programming problems efficiently. This section illustrates the performance of ProxQP through various different benchmarks, demonstrating its ability to solve QP problems efficiently.
144+
</p>
145+
</div>
146+
<div class="columns is-centered">
147+
<div class="column">
148+
<div class="content">
149+
<img src="./static/images/benchmark1.png" alt="Benchmarks 1" style="width:100%">
150+
</div>
151+
</div>
152+
</div>
153+
<div class="columns is-centered">
154+
<div class="column">
155+
<div class="content">
156+
<img src="./static/images/benchmark2.png" alt="Benchmark 2" style="width:100%">
157+
</div>
158+
</div>
159+
</div>
160+
</div>
161+
</div>
162+
<!--/ Results. -->
163+
</div>
164+
</section>
165+
166+
<section class="section">
167+
<div class="container is-max-desktop">
168+
<!-- Concurrent Work. -->
169+
<div class="columns is-centered">
170+
<div class="column is-full-width">
171+
<h2 class="title is-3">Related Links</h2>
172+
<div class="content has-text-justified">
173+
This work is implemented in <a href="https://github.com/simple-robotics/proxsuite">Proxsuite</a>.
174+
</div>
175+
<div class="publication-image">
176+
<p>Here is a code example showing how to easily use ProxQP in Python:</p>
177+
<img src="./static/images/code-example.png" alt="ProxQP Code Example" style="width:100%">
178+
</div>
179+
</div>
180+
</div>
181+
<!--/ Concurrent Work. -->
182+
</div>
183+
</section>
184+
185+
<section class="section" id="BibTeX">
186+
<div class="container is-max-desktop content">
187+
<h2 class="title">BibTeX</h2>
188+
<!-- TODO: adapt volume and url -->
189+
190+
<pre><code>@article{bambade2023proxqp,
191+
author = {Bambade, Antoine and Schramm, Fabian and El Kazdadi, Sarah and Caron, Stéphane and Taylor, Adrien and Carpentier, Justin},
192+
title = {PROXQP: an Efficient and Versatile Quadratic Programming Solver for Real-Time Robotics Applications and Beyond},
193+
journal = {IEEE Transactions on Robotics},
194+
year = {2025},
195+
url = {https://inria.hal.science/hal-04198663}
196+
}</code></pre>
197+
</div>
198+
</section>
199+
200+
<footer class="footer">
201+
<div class="container">
202+
<div class="content has-text-centered">
203+
<a class="icon-link" href="./static/paper/proxqp.pdf">
204+
<i class="fas fa-file-pdf"></i>
205+
</a>
206+
<a class="icon-link" href="https://github.com/simple-robotics/proxsuite" class="external-link" disabled>
207+
<i class="fab fa-github"></i>
208+
</a>
209+
</div>
210+
<div class="columns is-centered">
211+
<div class="column is-8">
212+
<div class="content">
213+
<p>
214+
This website is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
215+
</p>
216+
<p>
217+
We thank <a href="https://github.com/nerfies/nerfies.github.io">Nerfies</a> for creating the template of this webpage. You are free to borrow the <a href="https://github.com/simple-robotics.github.io/publications/simple-gradients">source code</a>, we just ask that you link back to the <a href="https://github.com/nerfies/nerfies.github.io">Nerfies</a> page in the footer.
218+
</p>
219+
</div>
220+
</div>
221+
</div>
222+
</div>
223+
</footer>
224+
225+
</body>
226+
</html>

publications/proxqp/static/css/bulma-carousel.min.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)