Package: pyiptp
pyIPTP - IsoParametric Trajectory Planning python toolkitWhat is it?pyIPTPis a Python 3 package that provides several tools to design trajectories in the joint space, combining the OOP approach with the feature of imposing arbitrary constraints on n-th derivatives or anti-derivatives using iterative loops. The adopted approach uses univariate B-splines to parameterize trajectory pieces, which are then concatenated to build a piecewise trajectory. Working on a parametric data structure, the tool offers many functions of shape modeling and symbolic calculation by actually describing a smallCADfor trajectories.  These functions, combined appropriately, define macro-instructions that can be reused in several application cases and with which the trajectory is defined with I/O block logic, thus dividing the entire trajectory planning into simpler problems. Additionally, it has the broader goal of becoming the new standard in electric axis control inthe fields of robotic and industrial automation.Main FeaturesSome good reasons to use this library are:trajectory planning in joints space for robotic applications;synthesis and study of automatic machines, such as cam mechanisms or articulated systems;dynamic simulation of the mechatronic systems;teaching.Where to get itThe source code is currently hosted on GitHubhere.Binary installers for the latest released version are available at thePython Package Index (PyPI).pipinstallpyiptpDependenciesNumPyScipylxmlMatplotlib(soft dependency)Build and install from sourcesWith the following procedures the package can be built onWindowsandLinuxstarting from the source code in the repository.If you want to modify the Cython source code and compile the modified version, before building you need to follow to thedeveloper instructions.We suggest to compilepyIPTPusingAnaconda Python 3 distribution.First install required dependencies:condainstallnumpyscipylxmlmatplotlibIf you have modified the Cython source or plan to modify it, go to the next section, otherwise skip directly to theWindowsorLinuxbuild.Developer instructionsIf Cython code has been changed, to compilepyIPTPand apply changes you needCythonin addition to the normal dependencies above. Cython can be installed fromPyPI, or fromConda:condainstall-canacondacythonAs an additional step is  required to change the value of the global variableUSE_CYTHONinsetup.pyfile to True. This will also compile the Cython code.USE_CYTHON=TrueNow proceed to theWindowsorLinuxsection depending on the operating system in use.Build on WindowsIf you work on Windows, you will  need a C++ compiler. In this regard seeWindows compilers documentation. We use theTDM-GCC 10.3.0compiler.Additional package are needed to build on Windows:
Installlibpythonandm2w64-toolchain:condainstall-canacondalibpython
condainstall-cmsys2m2w64-toolchainNow to compilepyIPTP, execute thecompile_win64.batfile in thepython_iptpdirectory:compile_win64.batBuild on LinuxOn Linux there is no need for additional packages. Proceed with the build with the command:pythonsetup.pybuild_ext-iInstallationAfter completing the build you can proceed with the installation with the command:pythonsetup.pyinstallLicenseBSD 3All contributorsMarco Riboli, Fabio Corradini [core]Marco Silvestri, Rinaldo Garziera [conceptualization]Alessandra Aimi [B-splines mathematical background]Contributing to pyIPTPAll contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome. Feel free to ask questions oninfo@camomile.dev.