Comments (8)
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.
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.
Ok thanks for the insight !
I will look at that in detail
from tsid.
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.
I close the issue as it has been inactive for a while now.
from tsid.
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.
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.
Any news on this subject?
from tsid.
Related Issues (20)
- Choose floating-base (or not) when creating a robot wrapper HOT 4
- Expose SE3ToVector HOT 7
- import error while "import tsid" HOT 3
- TSID Position controlled robot, How to include real robot state? HOT 4
- TaskJointPosVelAccBounds: Swapped default values for qMin/qMax HOT 2
- Joint posture task computation incorrect for robot with `nq != nv` HOT 12
- Alignment error with -march=native, fixed with c++17 HOT 3
- TSID for "pantograph/biarticular" robot leg design? HOT 6
- COP_Task - Looking for the 'romeo_walking_traj_tsid.npz' file. HOT 4
- posture task read error HOT 4
- contact-6D: unclear - could be pulling force ? HOT 6
- ForceTask with moving object HOT 11
- GitHub Action HOT 3
- Cannot surpress SolverHQuadProg output HOT 3
- TaskJointPosVelAccBounds not exposed to the python API HOT 3
- Adding equality constraints between joints HOT 9
- Test optional dependencies during CI HOT 1
- conda install broken ? HOT 4
- undefined symbol error in libtsid_pywrap.so HOT 2
- SE3 Inequality Task or Constraint HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tsid.