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: ...@@ -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 ... 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 Installation
------------- -------------
...@@ -75,20 +33,18 @@ This package is available as binary in [robotpkg/wip](http://robotpkg.openrobots ...@@ -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. To handle this with cmake, use the recursive option to clone the repository.
For instance, using http: 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: The library is header only, so the build only serves to build the tests and python bindings:
```sh ```sh
cd $SPLINE_DIR && mkdir build && cd build cd $CURVES_DIR && mkdir build && cd build
cmake .. && make cmake .. && make && make test
../bin/tests
``` ```
If everything went fine you should obtain the following output: If everything went fine you should obtain the following output:
```sh ```sh
performing tests... 100% tests passed, 0 tests failed out of 3
no errors found
``` ```
### Optional: Python bindings installation ### Optional: Python bindings installation
To install the Python bindings, in the CMakeLists.txt file, first enable the BUILD_PYTHON_INTERFACE option: 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) ...@@ -98,13 +54,18 @@ OPTION (BUILD_PYTHON_INTERFACE "Build the python binding" ON)
Then rebuild the library: Then rebuild the library:
```sh ```sh
cd $SPLINE_DIR/build cd $CURVES_DIR/build
cmake -DCMAKE_INSTALL_PREFIX=${DEVEL_DIR}/install .. cmake -DCMAKE_INSTALL_PREFIX=${DEVEL_DIR}/install ..
make install make install
``` ```
The python bindings should then be accessible through the package centroidal_dynamics. 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