GithubHelp home page GithubHelp logo

roboticslab-uc3m / kinematics-dynamics Goto Github PK

View Code? Open in Web Editor NEW
19.0 16.0 12.0 17.98 MB

Kinematics and dynamics solvers and controllers.

Home Page: https://robots.uc3m.es/kinematics-dynamics/

License: GNU Lesser General Public License v2.1

CMake 6.69% C++ 90.66% Python 2.40% SWIG 0.25%
robotics solvers screw-theory kinematics

kinematics-dynamics's Introduction

Teo-main Homepage

Kinematics and dynamics solvers and controllers.

Link to Doxygen generated documentation: https://robots.uc3m.es/kinematics-dynamics/

kinematics-dynamics image

Installation

Installation instructions for installing from source can be found here.

Contributing

Posting Issues

  1. Read CONTRIBUTING.md
  2. Post an issue / Feature request / Specific documentation request

Fork & Pull Request

  1. Fork the repository
  2. Create your feature branch (git checkout -b my-new-feature) off the master branch, following the Forking Git workflow
  3. Commit your changes
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Citation

If you found this project useful, please consider citing the following works:

Bartek Lukawski, Ignacio Montesino Valle, Juan G. Victores, Alberto Jardón, and Carlos Balaguer. An inverse kinematics problem solver based on screw theory for manipulator arms. In XLIII Jornadas de Automática, pages 864–869. Universidade da Coruña, 2022.

@inproceedings{lukawski2022jjaa,
    author    = {{\L}ukawski, Bartek and Montesino Valle, Ignacio and Victores, Juan G. and Jardón, Alberto and Balaguer, Carlos},
    title     = {An inverse kinematics problem solver based on screw theory for manipulator arms},
    booktitle = {XLIII Jornadas de Automática},
    year      = {2022},
    pages     = {864--869},
    publisher = {Universidade da Coruña},
    doi       = {10.17979/spudc.9788497498418.0864},
}

Edwin Daniel Oña, Bartek Lukawski, Alberto Jardón, and Carlos Balaguer. A modular framework to facilitate the control of an assistive robotic arm using visual servoing and proximity sensing. In IEEE Int. Conf. on Autonomous Robot Systems and Competitions (ICARSC), pages 28–33, 2020.

@inproceedings{eona2020icarsc,
    author    = {{O\~na}, Edwin Daniel and {\L}ukawski, Bartek and Jardón, Alberto and Balaguer, Carlos},
    title     = {A modular framework to facilitate the control of an assistive robotic arm using visual servoing and proximity sensing},
    booktitle = {IEEE Int. Conf. on Autonomous Robot Systems and Competitions (ICARSC)},
    year      = {2020},
    pages     = {28--33},
    doi       = {10.1109/ICARSC49921.2020.9096146},
}

Bartek Lukawski, Juan G. Victores, and Carlos Balaguer. A generic controller for teleoperation on robotic manipulators using low-cost devices. In XLIV Jornadas de Automática, pages 785–788. Universidade da Coruña, 2023.

@inproceedings{lukawski2023jjaa,
    author    = {{\L}ukawski, Bartek and Victores, Juan G. and Balaguer, Carlos},
    title     = {A generic controller for teleoperation on robotic manipulators using low-cost devices},
    booktitle = {XLIV Jornadas de Automática},
    year      = {2023},
    pages     = {785--788},
    publisher = {Universidade da Coruña},
    doi       = {10.17979/spudc.9788497498609.785},
}

Status

Continuous Integration

Issues

Similar and Related Projects

Quaternions

Fast Solvers

IK-Solvers

Kinematics and Dynamics

Path-Planning, Trajectory generation and optimization

Humanoid-oriented

kinematics-dynamics's People

Contributors

elisabeth-ms avatar jgvictores avatar lpinel avatar munozyanez avatar peterbowman avatar raulfdzbis avatar rsantos88 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kinematics-dynamics's Issues

[KdlSolver] Add setLimits method

KdlSolver, after #34 requires joint limits to work correctly, because ChainIkSolverPos_NR_JL is now used. The solver has no way of knowing them, so a method must be implemented so they can be provided externally.

Defaulting to [-pi,pi] for now.

Refactor CMake files

A great number of new CMake features would make our CMake files cleaner and better.

Unify robot model joint limits

Should be in wiki, where work has been done (resulting in current TEO Diagrams). The following is a list of models to potentially be merged or linked somehow.

Updated on 16/08/17 by PeterBowman.

Kill, and Revive Modularized version of teoCartesianServer

Kill, and Revive Modularized version of teoCartesianServer (teoCartesianControl uses solver that is already implemented), into (mark classes begun, not necessarily completed):

  • BasicCartesianControl, implementing a:
  • ICartesianControl.h
  • CartesianControlServer
  • testBasicCartesianControl
  • CartesianControlClient

Methods to complete:

  • stat
  • inv
  • movj
  • stop
  • movl

Improve efficiency of KdlVectorConverter

Though computational cost is not so much of an issue nowadays, the current string comparison implementation of KdlVectorConverter vectorToFrame() and frameToVector() could be rendered more efficient in many ways. Since we're in C++, I'd be thinking in polymorphism, but even a simple pointer to a function would be better than the current implementation.

[walking] Integrate GaitTrajectory with CartesianControl

Integrate GaitTrajectory with some CartesianControl.

Originally: BasicCartesianControl.
Now: BasicTwoLimbCartesianControl

  • Integrate git submodules, cmake directives, and documentation
  • API-wise integration of gait movement in BasicTwoLimbCartesianControl for walking
  • Correct simulated environment gait movement in BasicTwoLimbCartesianControl for walking
  • Correct real world environment gait movement in BasicTwoLimbCartesianControl for walking

[BasicCartesianControl] needs improvements in movl

[BasicCartesianControl] needs improvements in movl.

  • Trajectories in simulation need gain and shouldn't need any. Trajectories on the real robot need more gain and are rather faulty.
  • Should be able to set velocity instead of duration.

error: ‘class KDL::ChainIdSolver_RNE’ has no member named ‘strError’

Hello,
While I'm following the tutorial to install the Teo-main software I get an error when I compile with Make:

make_output.txt

Taking a look to the cmake command output I see that it throws a warning related with Yarp:

CMake Warning at /usr/local/share/yarp/cmake/YarpDeprecatedWarning.cmake:7 (message):
YARP_ADD_PLUGIN_LIBRARY_EXECUTABLE is deprecated. Use
YARP_ADD_PLUGIN_YARPDEV_EXECUTABLE instead.
Call Stack (most recent call first):
/usr/local/share/yarp/cmake/YarpPlugin.cmake:413 (yarp_deprecated_warning)
libraries/TeoYarp/CMakeLists.txt:25 (yarp_add_plugin_library_executable)

cmake_output.txt

I reinstalled Yarp again following the documentation but I got the same error.

¿How can I solve it?

Unify robot model dynamics

Issue inherited from wiki, where work has been done (resulting in current TEO Diagrams). The following is a list of models to potentially be merged or linked somehow.

For future reference, links to Mass/Inertia (official based on mechanical schematics): .XLS and .PDF.

Updated on 16/08/17 by PeterBowman.

Teo-main compilation error

Compilation error with teo-main code:

[ 8%] Built target KdlSolver
[ 41%] Built target FakeControlboard
[ 44%] Built target TeoYarp
[ 47%] Built target launchTeoYarp
[ 55%] Built target dialogueManager1
[ 70%] Built target teoCartesianServer
[ 79%] Built target teoGravityCompensator
[ 82%] Building CXX object programs/teoSim/CMakeFiles/teoSim.dir/TeoSim.cpp.o
In file included from /usr/include/boost/shared_ptr.hpp:17:0,
from /usr/local/include/openrave-0.9/openrave/openrave.h:72,
from /usr/local/include/openrave-0.9/openrave-core.h:22,
from /home/teo/git/teo-main/programs/teoSim/TeoSim.hpp:13,
from /home/teo/git/teo-main/programs/teoSim/TeoSim.cpp:3:
/usr/include/boost/smart_ptr/shared_ptr.hpp: In instantiation of ‘boost::shared_ptr boost::dynamic_pointer_cast(const boost::shared_ptr&) [with T = OpenRAVE::SensorBase::CameraGeomData; U = const OpenRAVE::SensorBase::SensorGeometry]’:
/home/teo/git/teo-main/programs/teoSim/TeoSim.cpp:137:190: required from here
/usr/include/boost/smart_ptr/shared_ptr.hpp:810:5: error: cannot dynamic_cast ‘0u’ (of type ‘const class OpenRAVE::SensorBase::SensorGeometry_’) to type ‘class OpenRAVE::SensorBase::CameraGeomData_’ (conversion casts away constness)
(void) dynamic_cast< T* >( static_cast< U* >( 0 ) );
^
/usr/include/boost/smart_ptr/shared_ptr.hpp:814:41: error: cannot dynamic_cast ‘(& r)->boost::shared_ptr::get()’ (of type ‘boost::shared_ptr::element_type* {aka const class OpenRAVE::SensorBase::SensorGeometry_}’) to type ‘E_ {aka class OpenRAVE::SensorBase::CameraGeomData_}’ (conversion casts away constness)
E * p = dynamic_cast< E_ >( r.get() );
^
programs/teoSim/CMakeFiles/teoSim.dir/build.make:100: recipe for target 'programs/teoSim/CMakeFiles/teoSim.dir/TeoSim.cpp.o' failed
make[2]: *** [programs/teoSim/CMakeFiles/teoSim.dir/TeoSim.cpp.o] Error 1
CMakeFiles/Makefile2:616: recipe for target 'programs/teoSim/CMakeFiles/teoSim.dir/all' failed
make[1]: *** [programs/teoSim/CMakeFiles/teoSim.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

Avoid "using namespace"

I think, we can add the some solution of Teo-Head and Teo-Body for resolve possible conflicts with namespaces that may appear in the future. Can someone resolve it??

Teo list Wiki

It could be interesting to have some documentation/list in the Wiki (or other repository), similar to the one used here, to use it to save time in future events.

Lista de objetos que hay que llevar para RoboCity

Lista de objetos que hay que llevar:

  • Teo
  • Grúa o soporte para sostener a Teo, con su cargador en caso de ser la nueva
  • Fuentes de alimentación de Teo (no separar, ambas van conectadas en paralelo) con cables de alimentación.
  • Router para conectarse a Teo con cables ethernet: “head” y “main” y otro por si a caso.
  • PC “Teo-main” con teclado, ratón, monitor y cable de alimentación.
  • Monitor extra con cable VGA.
  • Teclado extra y ratón inalámbrico
  • Micrófono bluetooth
  • Botella de bici roja (se necesita llena de agua para la demo)
  • Opcional: Televisión LG grande con cable de alimentación, cable HDMI y mando.
  • Regletas (x2)
  • Herramientas para reparaciones rápidas: bridas, velcro, loctite, llaves allen, destornilladores...

Se admiten sugerencias si falta alguna cosa más por llevar @jgvictores @smcdiaz @jmgarciah @lpinel

Teo-head compilation error

Compilation error with teo-head code:

[ 7%] Built target HeadYarp
[ 14%] Building CXX object programs/cv1/CMakeFiles/cv1.dir/Cv1.cpp.o
In file included from /home/teo/git/teo-head/programs/cv1/SegmentorThread.hpp:14:0,
from /home/teo/git/teo-head/programs/cv1/Cv1.hpp:6,
from /home/teo/git/teo-head/programs/cv1/Cv1.cpp:3:
/usr/local/include/yarp/dev/IOpenNI2DeviceDriver.h:16:18: fatal error: NiTE.h: No existe el archivo o el directorio
#include <NiTE.h>
^
compilation terminated.
programs/cv1/CMakeFiles/cv1.dir/build.make:77: recipe for target 'programs/cv1/CMakeFiles/cv1.dir/Cv1.cpp.o' failed
make[2]: *** [programs/cv1/CMakeFiles/cv1.dir/Cv1.cpp.o] Error 1
CMakeFiles/Makefile2:282: recipe for target 'programs/cv1/CMakeFiles/cv1.dir/all' failed
make[1]: *** [programs/cv1/CMakeFiles/cv1.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

[tts] Yarp Manager cannot close eSpeak (used for new Mbrola Voices) using pipe

A tener en cuenta los siguientes problemas que tienen lugar en el Yarp Module Manager (en concreto, cuando se trata de arrancar el Follow-me):

  • El nuevo paquete del habla, ubicado en "teoBase_App",arranca correctamente la primera vez. Si se decide parar dicho módulo, al intentar arrancarlo de nuevo, mostrará el error:
    [ERR] (teoBase_App) cannot run /sbin/runuser on /head : cannot run /sbin/runuser on /head
    La única solución para volver a arrancarlo es reiniciando el PC de la cabeza.
  • Si se consigue arrancar con éxito el módulo del habla y se prueba en teoTools_App (escribiendo por teclado), funciona correctamente. Si arrancamos todos los módulos para hacer funcionar la Demo de Follow-me y establecemos las conexiones oportunas, no funcionará el habla que corresponde a la Demo (Teo no pronunciará las frases correspondientes al Follow-me).

[Yarp module manager] Problem with computers status detection

Se ha detectado que en determinadas ocasiones el Yarp module manager no detecta correctamente los ordenadores de Teo, marcando estos como Status: unavailable. En cambio, la conexión con estos es correcta si accedemos por ssh. La única solución hasta el momento es reiniciar el ordenador en cuestión y refrescar el Yarp module manager hasta que lo detecta correctamente.

Backdrop for robot pictures and videos in publications

I think it would be useful to have some cloth or curtain-like thing to use as a backdrop in Teo's cage when taking pictures or recording videos that are going to be published later. This would give a much better impression of the robot.

How could we solve this? Any ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.