Commit e049b4a3 authored by stevet's avatar stevet
Browse files

update readme

parent c6ec4d76
......@@ -18,48 +18,6 @@ To do so, tools are provided to:
The library is template-based, thus generic: the curves can be of any dimension, and can be implemented in double, float ...
----------
Example of use for and end-effector trajectory
-------------
The library comes with an helper class to automatically generate end-effector trajectories.
For instance, to create a 2 second long trajectory from the point (0,0,0) to (1,1,0), with a waypoint
at (0.5,0.5,0.5), one can use the following code:
```cpp
typedef std::pair<double, Eigen::Vector3d> Waypoint;
typedef std::vector<Waypoint> T_Waypoint;
// loading helper class namespace
using namespace spline::helpers;
// Create waypoints
waypoints.push_back(std::make_pair(0., Eigen::Vector3d(0,0,0)));
waypoints.push_back(std::make_pair(1., Eigen::Vector3d(0.5,0.5,0.5)));
waypoints.push_back(std::make_pair(2., Eigen::Vector3d(1,1,0)));
exact_cubic_t* eff_traj = effector_spline(waypoints.begin(),waypoints.end());
// evaluate spline
(*eff_traj)(0.); // (0,0,0)
(*eff_traj)(2.); // (1,1,0)
```
If rotation of the effector must be considered, the code is almost the same:
```cpp
// initial rotation is 0, end rotation is a rotation by Pi around x axis
quat_t init_rot(0,0,0,1), end_rot(1,0,0,0);
effector_spline_rotation eff_traj_rot(waypoints.begin(),waypoints.end(), init_quat, end_quat);
// evaluate spline
eff_traj_rot(0.); // (0,0,0,0,0,0,1)
eff_traj_rot(1.); // (0.5,0.5,0.5,0.707107,0,0,0.707107) // Pi/2 around x axis
eff_traj_rot(2.); // (0,0,0,1,0,0,0)
```
Additional parameters for the same methods an be used to specify parameters for the take off and
landing phases: height and duration of the phase, and along which normal.
Please refer to the Main.cpp files to see all the unit tests and possibilities offered by the library
Installation
-------------
......@@ -75,20 +33,18 @@ This package is available as binary in [robotpkg/wip](http://robotpkg.openrobots
To handle this with cmake, use the recursive option to clone the repository.
For instance, using http:
```
git clone --recursive https://github.com/stonneau/spline.git $SPLINE_DIR
git clone --recursive https://github.com/loco-3d/curves $CURVES_DIR
```
The library is header only, so the build only serves to build the tests and python bindings:
```sh
cd $SPLINE_DIR && mkdir build && cd build
cmake .. && make
../bin/tests
cd $CURVES_DIR && mkdir build && cd build
cmake .. && make && make test
```
If everything went fine you should obtain the following output:
```sh
performing tests...
no errors found
100% tests passed, 0 tests failed out of 3
```
### Optional: Python bindings installation
To install the Python bindings, in the CMakeLists.txt file, first enable the BUILD_PYTHON_INTERFACE option:
......@@ -98,13 +54,18 @@ OPTION (BUILD_PYTHON_INTERFACE "Build the python binding" ON)
Then rebuild the library:
```sh
cd $SPLINE_DIR/build
cd $CURVES_DIR/build
cmake -DCMAKE_INSTALL_PREFIX=${DEVEL_DIR}/install ..
make install
```
The python bindings should then be accessible through the package centroidal_dynamics.
To see example of use, you can refer to the [test file](https://github.com/stonneau/spline/blob/master/python/test/test.py)
which is rather self explanatory:
In spite of an exhaustive documentation, please refer to the C++ documentation, which mostly applies
to python. For the moment, only bezier curves are binded.
Documentation and tutorial
-------------
For a python tutorial, you can refer to the [jupyter notebook](https://github.com/loco-3d/curves/blob/devel/python/test/sandbox/test.ipynb) . The [test file](https://github.com/loco-3d/curves/blob/master/python/test/test.py)
is more exhaustive and rather self explanatory.
Please refer to the C++ manual, which mostly applies
to python.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment