You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Franky uses [Ruckig](https://github.com/pantor/ruckig) to generate smooth, time-optimal trajectories while respecting velocity, acceleration, and jerk limits.
53
+
franky uses [Ruckig](https://github.com/pantor/ruckig) to generate smooth, time-optimal trajectories while respecting velocity, acceleration, and jerk limits.
54
54
55
55
-**[Real-time control from Python and C++](#real-time-motions)**
56
-
Need to change the target while the robot’s moving? No problem. Franky re-plans trajectories on the fly so that you can preempt motions anytime.
56
+
Need to change the target while the robot’s moving? No problem. franky re-plans trajectories on the fly so that you can preempt motions anytime.
57
57
58
58
-**[Reactive behavior](#-real-time-reactions)**
59
-
Robots don’t always go according to plan. Franky lets you define reactions to unexpected events—like contact with the environment — so you can change course in real-time.
59
+
Robots don’t always go according to plan. franky lets you define reactions to unexpected events—like contact with the environment — so you can change course in real-time.
60
60
61
61
-**[Motion and reaction callbacks](#motion-callbacks)**
62
62
Want to monitor what’s happening under the hood? Add callbacks to your motions and reactions. They won’t block the control thread and are super handy for debugging or logging.
@@ -65,11 +65,11 @@ at [https://timschneider42.github.io/franky/](https://timschneider42.github.io/f
65
65
Adjust max velocity, acceleration, and jerk to match your setup or task. Fine control for smooth, safe operation.
66
66
67
67
-**Full Python access to the libfranka API**
68
-
Want to tweak impedance, read the robot state, set force thresholds, or mess with the Jacobian? Go for it. If libfranka supports it, chances are Franky does, too.
68
+
Want to tweak impedance, read the robot state, set force thresholds, or mess with the Jacobian? Go for it. If libfranka supports it, chances are franky does, too.
69
69
70
70
## 📖 Python Quickstart Guide
71
71
72
-
Real-time kernel already installed and real-time permissions granted? Just install Franky via
72
+
Real-time kernel already installed and real-time permissions granted? Just install franky via
73
73
74
74
```bash
75
75
pip install franky-control
@@ -98,19 +98,19 @@ If you are seeing server version mismatch errors, such as
then your Franka robot is either not on the most recent firmware version or you are using the older Franka Panda model.
101
-
In any case, it's no big deal; just check [here](https://frankaemika.github.io/docs/compatibility.html) which libfranka version you need and follow our [instructions](installing-frankly) to install the appropriate Franky wheels.
101
+
In any case, it's no big deal; just check [here](https://frankaemika.github.io/docs/compatibility.html) which libfranka version you need and follow our [instructions](installing-frankly) to install the appropriate franky wheels.
102
102
103
103
## <aid="setup" /> ⚙️ Setup
104
104
105
-
To install Franky, you have to follow three steps:
105
+
To install franky, you have to follow three steps:
106
106
107
107
1. Ensure that you are using a realtime kernel
108
108
2. Ensure that the executing user has permission to run real-time applications
109
-
3. Install Franky via pip or build it from source
109
+
3. Install franky via pip or build it from source
110
110
111
111
### Installing a real-time kernel
112
112
113
-
In order for Franky to function properly, it requires the underlying OS to use a realtime kernel.
113
+
In order for franky to function properly, it requires the underlying OS to use a realtime kernel.
114
114
Otherwise, you might see `communication_constrains_violation` errors.
115
115
116
116
To check whether your system is currently using a real-time kernel, type `uname -a`.
@@ -130,7 +130,7 @@ or, if you are using Ubuntu, it can be [enabled through Ubuntu Pro](https://ubun
130
130
131
131
### Allowing the executing user to run real-time applications
132
132
133
-
First, create a group `realtime` and add your user (or whoever is running Franky) to this group:
133
+
First, create a group `realtime` and add your user (or whoever is running franky) to this group:
134
134
135
135
```bash
136
136
sudo addgroup realtime
@@ -159,9 +159,9 @@ $ groups
159
159
160
160
If realtime is not listed in your groups, try rebooting.
161
161
162
-
### Installing Franky
162
+
### Installing franky
163
163
164
-
To start using Franky with Python and libfranka *0.15.0*, just install it via
164
+
To start using franky with Python and libfranka *0.15.0*, just install it via
@@ -205,7 +205,7 @@ docker compose run franky-run bash
205
205
The container requires access to the host machines network *and* elevated user rights to allow the docker user to set RT
206
206
capabilities of the processes run from within it.
207
207
208
-
### Can I use CUDA jointly with Franky?
208
+
### Can I use CUDA jointly with franky?
209
209
210
210
Yes. However, you need to set `IGNORE_PREEMPT_RT_PRESENCE=1` during the installation and all subsequent updates of the CUDA drivers on the real-time kernel.
211
211
@@ -231,15 +231,15 @@ Alternatively, if you are a cowboy and do not care about security, you can also
To use Franky, you can also include it as a subproject in your parent CMake via `add_subdirectory(franky)` and then
254
+
To use franky, you can also include it as a subproject in your parent CMake via `add_subdirectory(franky)` and then
255
255
`target_link_libraries(<target> franky)`.
256
256
257
-
If you need only the Python module, you can install Franky via
257
+
If you need only the Python module, you can install franky via
258
258
259
259
```bash
260
260
pip install .
@@ -263,9 +263,9 @@ pip install .
263
263
Make sure that the built library `_franky.cpython-3**-****-linux-gnu.so` is in the Python path, e.g. by adjusting
264
264
`PYTHONPATH` accordingly.
265
265
266
-
#### Building Franky with Docker
266
+
#### Building franky with Docker
267
267
268
-
For building Franky and its wheels, we provide another Docker container that can also be launched using docker-compose:
268
+
For building franky and its wheels, we provide another Docker container that can also be launched using docker-compose:
269
269
270
270
```bash
271
271
docker compose build franky-build
@@ -275,7 +275,7 @@ docker compose run --rm franky-build build-wheels # To build wheels for all sup
275
275
276
276
## 📚 Tutorial
277
277
278
-
Franky comes with both a C++ and Python API that differ only regarding real-time capability.
278
+
franky comes with both a C++ and Python API that differ only regarding real-time capability.
279
279
We will introduce both languages next to each other.
280
280
In your C++ project, just include `include <franky.hpp>` and link the library.
281
281
For Python, just `import franky`.
@@ -338,7 +338,7 @@ In all cases, distances are in [m] and rotations in [rad].
338
338
339
339
### 🤖 Robot
340
340
341
-
Franky exposes most of the libfanka API for Python.
341
+
franky exposes most of the libfanka API for Python.
342
342
Moreover, we added methods to adapt the dynamics limits of the robot for all motions.
343
343
344
344
```python
@@ -434,10 +434,10 @@ and [Model](https://timschneider42.github.io/franky/classfranky_1_1_model.html)
434
434
435
435
### <aid="motion-types" /> 🏃♂️ Motion Types
436
436
437
-
Franky currently supports four different impedance control modes: **joint position control**, **joint velocity control**, **cartesian position control**, and **cartesian velocity control**.
437
+
franky currently supports four different impedance control modes: **joint position control**, **joint velocity control**, **cartesian position control**, and **cartesian velocity control**.
438
438
Each of these control modes is invoked by passing the robot an appropriate _Motion_ object.
439
439
440
-
In the following, we provide a brief example for each motion type implemented by Franky in Python.
440
+
In the following, we provide a brief example for each motion type implemented by franky in Python.
441
441
The C++ interface is generally analogous, though some variable and method names are different because we
442
442
follow [PEP 8](https://peps.python.org/pep-0008/) naming conventions in Python
443
443
and [Google naming conventions](https://google.github.io/styleguide/cppguide.html) in C++.
@@ -901,7 +901,7 @@ For Franka robots, control happens via the Franka Control Interface (FCI), which
901
901
The Franka UI also provides methods for locking and unlocking the brakes, setting the execution mode, and executing the safety self-test.
902
902
However, sometimes you may want to access these methods programmatically, e.g. for automatically unlocking the brakes before starting a motion, or automatically executing the self-test after 24h of continuous execution.
903
903
904
-
For that reason, Franky provides a `RobotWebSession` class that allows you to access the web interface API of the robot.
904
+
For that reason, franky provides a `RobotWebSession` class that allows you to access the web interface API of the robot.
905
905
Note that directly accessing the web interface API is not officially supported and documented by Franka.
906
906
Hence, use this feature at your own risk.
907
907
@@ -972,7 +972,7 @@ See [robot_web_session.py](franky/robot_web_session.py) for an example of how to
972
972
973
973
## 🛠️ Development
974
974
975
-
Franky is currently tested against following versions
975
+
franky is currently tested against following versions
0 commit comments