Re: intersection testing of line seg attached to moving node

New Message Reply Date view Thread view Subject view Author view

Scott Angster (angster++at++mme.wsu.edu)
Thu, 23 May 1996 16:12:00 -0700


Lisa-
        Here at the VRCIM lab at WSU, we too have that similiar problem.
 We are doing collision detection using segment sets that are "attached"
to a human models hands and fingers. This is done for grasping
and interacting with objects in virtual manufacturing, design aand
assembly environments. Obviously, the fingers are located at the bottom
of a large heirarchy of nodes (pfDCS's) from all of the joints of the
human. I posted a while back stating the same question, "Is there a
better way?" Right now we have to keep track of all the DCS matrix
values that lead to the finger joints and independently update the
position of the segment sets by using Performer matrix multiplication
routines for all of these DCS matrix values. This is all done for each
frame. It would be nice to attach the segment sets to the scene graph
since all of this math is done for positioning the finger joints
by Performer anyway. So I too would like to know of a better way. I am
also using C++ and Performer 2.0. Thanks for any input.

lisa++at++cs.unm.edu wrote:
>
> Hello, Performers.
>
> Can any of you tell me how to get back the position, in world
> coordinates, of a point on a node well down in a scene graph?
> More generally, I want to know how to do intersection testing for
> a pfSegSet whose pfSegs are "attached" to a dynamically moving
> node.
>
> Are pfSegs used for intersection testing never part of the scene graph?
> Do the pfSegs have to be described in world coordinates?
> Is there a method for any pfNode to return its base position
> in world coordinates? I can't find one.
> Can this info only be gleaned from Performer during a traversal?
>
> Background: I am developing a simulator for large numbers
> of autonomous agents moving within and interacting with a physical
> environment. The agents are tiny robots, or "robugs", which we will
> eventually really build. For this version of the simulator, physical
> aspects of the simulation will be implemented in Performer. I am
> currently trying to implement my first sensor, a whisker, using
> Performer's line segment intersection capability. I have a database
> of simulator-specific objects, which contains xyz and hpr vectors
> showing the geometric offset between PhysicalObjects and other
> Physical Objects (or the world) to which they're attached and
> the geometric offset between SimulatedSensors and the PhysicalObjects
> to which they're attached, and a corresponding scene graph.
>
> My problem concerns updating the position and direction of the line
> segments against which intersections are tested in order to keep them
> effectively attached to a geode in the scene graph. A complication is that
> the line segments aren't part of the scene graph and the geode's position
> changes dynamically, so that my application needs to keep updating the
> line segment's position in world coordinates so that it APPEARS to be
> attached to the geode. This is further complicated by the geode being
> several layers down in a geometric hierarchy. For example, the line
> segment could be simulating a proximity sensor that is at the toolpoint
> of a multiple-link manipulator that is attached to a vehicle.
> The vehicle moves. The links of the manipulator rotate or translate
> relative to each other. They form a kinematic chain.
>
> I am currently trying to reconstruct this info by going
> forward down a kinematic chain using the xyz and hpr vectors
> stored in my simulator's database. This seems really klunky.
>
> Is there sample code, other than the collision avoidance in perfly and
> /usr/share/Performer/src/pguide/libpf/C++/intersect.C, that shows
> intersection testing? These examples do not seem to address my problem,
> since they assume a line segment in a fixed orientation whose position
> is independent of the movement of geometric objects in the scene graph.
>
> How have other people implemented similar things (hint, Scott McMillan)?
>
> By the way, I am developing in C++ under Performer 2.0.
>
> Thank you.
>
> Lisa Desjarlais
> lmdesja++at++isrc.sandia.gov
> =======================================================================>
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer.html
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer.html
            Submissions: info-performer++at++sgi.com
        Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:55 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.