Someone told me when explaining about a controller module named CollisionDetector that it only checks self-interference and moves accordingly without detecting collision. To me both sounds the same. How are they different?


One is internal, one is external.

Self-interference refers to instances where something like a robot arm (with many degrees of freedom) may attempt to move in a path that crosses part of its own body. Your CollisionDetector is likely keeping track of the joint angles in a planned arm movement and seeing if any of them result in such a condition. The robot doesn't need any information about its environment to do this, just a reliable measurement of its own position (and possibly the shape of whatever it may be gripping).

"Collision Avoidance" usually refers to the detection of transient objects with externally-facing sensors. For example, a robot has planned a path based on a map of a room but other robots (or people) might be moving around in that same space; the robot detects them with some sort of sensor, and adjusts its planned path (or just stops) until the risk of collision has gone away. This is usually more difficult than detecting self-interference, because modeling the external environment is a bit more complicated than modeling a robot's internal state.

| improve this answer | |
  • $\begingroup$ Thanks. Now I understand that real confusion to me came from the fact that people around my community also use self-collision check, which I presume is equivalent to self-interference. $\endgroup$ – IsaacS Feb 9 '14 at 15:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.