Skip to content

Commit 4435929

Browse files
Changed franky to a lower-case spelling in readme
1 parent 3319737 commit 4435929

File tree

2 files changed

+39
-39
lines changed

2 files changed

+39
-39
lines changed

README.md

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@
2626
</a>
2727
</p>
2828

29-
Franky is a high-level control library for Franka robots offering Python and C++ support.
30-
By providing a high-level control interface, Franky eliminates the need for strict real-time programming at 1 kHz,
29+
franky is a high-level control library for Franka robots offering Python and C++ support.
30+
By providing a high-level control interface, franky eliminates the need for strict real-time programming at 1 kHz,
3131
making control from non-real-time environments, such as Python programs, feasible.
32-
Instead of relying on low-level control commands, Franky expects high-level position or velocity targets and
32+
Instead of relying on low-level control commands, franky expects high-level position or velocity targets and
3333
uses [Ruckig](https://github.com/pantor/ruckig) to plan time-optimal trajectories in real-time.
3434

35-
Although Python does not provide real-time guarantees, Franky strives to maintain as much real-time control as possible.
36-
Motions can be preempted at any moment, prompting Franky to re-plan trajectories on the fly.
37-
To handle unforeseen situations—such as unexpected contact with the environment — Franky includes a reaction system that
35+
Although Python does not provide real-time guarantees, franky strives to maintain as much real-time control as possible.
36+
Motions can be preempted at any moment, prompting franky to re-plan trajectories on the fly.
37+
To handle unforeseen situations—such as unexpected contact with the environment — franky includes a reaction system that
3838
allows to update motion commands dynamically.
3939
Furthermore, most non-real-time functionality of [libfranka](https://frankaemika.github.io/docs/libfranka.html), such as
4040
Gripper control is made directly available in Python.
@@ -50,13 +50,13 @@ at [https://timschneider42.github.io/franky/](https://timschneider42.github.io/f
5050
No more endless hours setting up ROS, juggling packages, or untangling dependencies. Just `pip install` — no ROS at all.
5151

5252
- **[Four control modes](#motion-types)**: [Cartesian position](#cartesian-position-control), [Cartesian velocity](#cartesian-velocity-control), [Joint position](#joint-position-control), [Joint velocity](#joint-velocity-control)
53-
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.
5454

5555
- **[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.
5757

5858
- **[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.
6060

6161
- **[Motion and reaction callbacks](#motion-callbacks)**
6262
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
6565
Adjust max velocity, acceleration, and jerk to match your setup or task. Fine control for smooth, safe operation.
6666

6767
- **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.
6969

7070
## 📖 Python Quickstart Guide
7171

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
7373

7474
```bash
7575
pip install franky-control
@@ -98,19 +98,19 @@ If you are seeing server version mismatch errors, such as
9898
franky.IncompatibleVersionException: libfranka: Incompatible library version (server version: 5, library version: 9)
9999
```
100100
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.
102102

103103
## <a id="setup" /> ⚙️ Setup
104104

105-
To install Franky, you have to follow three steps:
105+
To install franky, you have to follow three steps:
106106

107107
1. Ensure that you are using a realtime kernel
108108
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
110110

111111
### Installing a real-time kernel
112112

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.
114114
Otherwise, you might see `communication_constrains_violation` errors.
115115

116116
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
130130

131131
### Allowing the executing user to run real-time applications
132132

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:
134134

135135
```bash
136136
sudo addgroup realtime
@@ -159,9 +159,9 @@ $ groups
159159

160160
If realtime is not listed in your groups, try rebooting.
161161

162-
### Installing Franky
162+
### Installing franky
163163

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
165165

166166
```bash
167167
pip install franky-control
@@ -181,7 +181,7 @@ pip install --no-index --find-links=./dist franky-control
181181

182182
### Using Docker
183183

184-
To use Franky within Docker we provide a [Dockerfile](docker/run/Dockerfile) and
184+
To use franky within Docker we provide a [Dockerfile](docker/run/Dockerfile) and
185185
accompanying [docker-compose](docker-compose.yml) file.
186186

187187
```bash
@@ -205,7 +205,7 @@ docker compose run franky-run bash
205205
The container requires access to the host machines network *and* elevated user rights to allow the docker user to set RT
206206
capabilities of the processes run from within it.
207207

208-
### Can I use CUDA jointly with Franky?
208+
### Can I use CUDA jointly with franky?
209209

210210
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.
211211

@@ -231,15 +231,15 @@ Alternatively, if you are a cowboy and do not care about security, you can also
231231
bash <(wget -qO- https://raw.githubusercontent.com/timschneider42/franky/master/tools/install_cuda_realtime.bash)
232232
```
233233

234-
### Building Franky
234+
### Building franky
235235

236-
Franky is based on [libfranka](https://github.com/frankaemika/libfranka), [Eigen](https://eigen.tuxfamily.org) for
236+
franky is based on [libfranka](https://github.com/frankaemika/libfranka), [Eigen](https://eigen.tuxfamily.org) for
237237
transformation calculations and [pybind11](https://github.com/pybind/pybind11) for the Python bindings.
238238
As the Franka is sensitive to acceleration discontinuities, it requires jerk-constrained motion generation, for which
239-
Franky uses the [Ruckig](https://ruckig.com) community version for Online Trajectory Generation (OTG).
239+
franky uses the [Ruckig](https://ruckig.com) community version for Online Trajectory Generation (OTG).
240240

241241
After installing the dependencies (the exact versions can be found [here](#-development)), you can build and install
242-
Franky via
242+
franky via
243243

244244
```bash
245245
git clone --recurse-submodules git@github.com:timschneider42/franky.git
@@ -251,10 +251,10 @@ make
251251
make install
252252
```
253253

254-
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
255255
`target_link_libraries(<target> franky)`.
256256

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
258258

259259
```bash
260260
pip install .
@@ -263,9 +263,9 @@ pip install .
263263
Make sure that the built library `_franky.cpython-3**-****-linux-gnu.so` is in the Python path, e.g. by adjusting
264264
`PYTHONPATH` accordingly.
265265

266-
#### Building Franky with Docker
266+
#### Building franky with Docker
267267

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:
269269

270270
```bash
271271
docker compose build franky-build
@@ -275,7 +275,7 @@ docker compose run --rm franky-build build-wheels # To build wheels for all sup
275275

276276
## 📚 Tutorial
277277

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.
279279
We will introduce both languages next to each other.
280280
In your C++ project, just include `include <franky.hpp>` and link the library.
281281
For Python, just `import franky`.
@@ -338,7 +338,7 @@ In all cases, distances are in [m] and rotations in [rad].
338338

339339
### 🤖 Robot
340340

341-
Franky exposes most of the libfanka API for Python.
341+
franky exposes most of the libfanka API for Python.
342342
Moreover, we added methods to adapt the dynamics limits of the robot for all motions.
343343

344344
```python
@@ -434,10 +434,10 @@ and [Model](https://timschneider42.github.io/franky/classfranky_1_1_model.html)
434434

435435
### <a id="motion-types" /> 🏃‍♂️ Motion Types
436436

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**.
438438
Each of these control modes is invoked by passing the robot an appropriate _Motion_ object.
439439

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.
441441
The C++ interface is generally analogous, though some variable and method names are different because we
442442
follow [PEP 8](https://peps.python.org/pep-0008/) naming conventions in Python
443443
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
901901
The Franka UI also provides methods for locking and unlocking the brakes, setting the execution mode, and executing the safety self-test.
902902
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.
903903

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.
905905
Note that directly accessing the web interface API is not officially supported and documented by Franka.
906906
Hence, use this feature at your own risk.
907907

@@ -972,7 +972,7 @@ See [robot_web_session.py](franky/robot_web_session.py) for an example of how to
972972

973973
## 🛠️ Development
974974

975-
Franky is currently tested against following versions
975+
franky is currently tested against following versions
976976

977977
- libfranka 0.7.1, 0.8.0, 0.9.2, 0.10.0, 0.11.0, 0.12.1, 0.13.3, 0.14.2, 0.15.0
978978
- Eigen 3.4.0
@@ -985,14 +985,14 @@ Franky is currently tested against following versions
985985
## 📜 License
986986

987987
For non-commercial applications, this software is licensed under the LGPL v3.0.
988-
If you want to use Franky within commercial applications or under a different license, please contact us for individual
988+
If you want to use franky within commercial applications or under a different license, please contact us for individual
989989
agreements.
990990

991991
## 🔍 Differences to frankx
992992

993-
Franky started originally as a fork of [frankx](https://github.com/pantor/frankx), though both codebase and
993+
franky started originally as a fork of [frankx](https://github.com/pantor/frankx), though both codebase and
994994
functionality differ substantially from frankx by now.
995-
Aside of bug fixes and general performance improvements, Franky provides the following new features/improvements:
995+
Aside of bug fixes and general performance improvements, franky provides the following new features/improvements:
996996

997997
* [Motions can be updated asynchronously.](#-real-time-motions)
998998
* [Reactions allow for the registration of callbacks instead of just printing to stdout when fired.](#-real-time-reactions)
@@ -1009,7 +1009,7 @@ Aside of bug fixes and general performance improvements, Franky provides the fol
10091009
* [The `Measure` class allows for arithmetic operations.](#-real-time-reactions)
10101010
* Exceptions caused by libfranka are raised properly instead of being printed to stdout.
10111011
* [We provide wheels for both Franka Research 3 and the older Franka Panda](#-setup)
1012-
* Franky supports [joint velocity control](#joint-velocity-control)
1012+
* franky supports [joint velocity control](#joint-velocity-control)
10131013
and [cartesian velocity control](#cartesian-velocity-control)
10141014
* The dynamics limits are not hard-coded anymore but can be [set for each robot instance](#-robot).
10151015

doc/Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
3232
# title of most generated pages and in a few other places.
3333
# The default value is: My Project.
3434

35-
PROJECT_NAME = "Franky"
35+
PROJECT_NAME = "franky"
3636

3737
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
3838
# could be handy for archiving the generated documentation or if some version

0 commit comments

Comments
 (0)