Git Product home page Git Product logo

Comments (8)

dalinel avatar dalinel commented on June 24, 2024 1

Hi,
@jbmouret and @Timothee-ANNE have developed a task which allows to create repulsors between a tracked frame and frames to avoid
We are using it to prevent the gripper frame to collide with other body frames
It is here :
https://github.com/resibots/inria_wbc/blob/devel/src/tsid/task-self-collision.cpp
Tell us if you are interested in integrating it to tsid directly

from tsid.

andreadelprete avatar andreadelprete commented on June 24, 2024

Good question, but I don't have a good answer unfortunately. This is a difficult problem, at least in theory, and I don't have much experience with that in practice. You can try to see it as joint limits that act in Cartesian space. If you know the position, velocity and acceleration limits of a given point on the robot, then you can use the same viability analysis of my RAL-2018 paper to bound the current Cartesian acceleration of that point in order to avoid a future collision.

The problem with this approach is of course the initial assumption of knowing the acceleration limits, which should also be constant if you wanna use the same math of RAL-2018. In practice we know that acceleration limits depend on the robot configuration, so they change over time. You can try to be conservative and set rather small acceleration bounds, so that you never approach collision with a high velocity, increasing your chances of collision avoidance. In theory, this is all rather heuristic. In practice it could work well. You may wanna try asking people who have played with this problem more than me. For instance Hilario Tome (ex PAL robotics), or Joris Vaillant.

Finally, of course, take a look at the literature, for instance
[1] Rodríguez-Seda, E. J., Stipanović, D. M., & Spong, M. W. (2015). Guaranteed Collision Avoidance for Autonomous Systems with Acceleration Constraints and Sensing Uncertainties. Journal of Optimization Theory and Applications, (November). https://doi.org/10.1007/s10957-015-0824-7

from tsid.

dalinel avatar dalinel commented on June 24, 2024

Ok thanks for the insight !
I will look at that in detail

from tsid.

olivier-stasse avatar olivier-stasse commented on June 24, 2024

If you have a fast algorithm to compute a body-to-body distance you can create a repulsive vector field.
The shape that you use may have an impact on the velocity continuity.

There is an example here:
Real-time (self)-collision avoidance task on a hrp-2 humanoid robot
O Stasse, A Escande, N Mansard, S Miossec, P Evrard, A Kheddar
2008 ieee international conference on robotics and automation, 3200-3205
https://hal-lirmm.ccsd.cnrs.fr/lirmm-00798791/file/2008_icra_stasse-real_time_self_collision_avoidance.pdf

If you are not too worried about reducing the workspace it is possible to use capsules (aka sweeping spheres) instead of STP-BV

from tsid.

andreadelprete avatar andreadelprete commented on June 24, 2024

I close the issue as it has been inactive for a while now.

from tsid.

andreadelprete avatar andreadelprete commented on June 24, 2024

That's interesting. Personally I think it could be useful for other TSID's users, so it would be great to integrate it in TSID.

from tsid.

jcarpent avatar jcarpent commented on June 24, 2024

I do agree with @andreadelprete for the general use case of such a feature.
I would also add that Thibault Noël has also been working on such a feature (https://hal.laas.fr/hal-03000951/document). I would suggest having a more complete discussion to see how these two approaches can be merged in some sense to give rise to a unified API.
I let @nmansard comment further.

from tsid.

andreadelprete avatar andreadelprete commented on June 24, 2024

Any news on this subject?

from tsid.

Related Issues (20)

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.