US 7,457,733 B2
Moving a virtual articulated object in a virtual environment while avoiding collisions between the articulated object and the environment
Bruno Maille, Paris (France); Edouard Ramstein, Melun (France); and Patrick Chedmail, La Chapelle sur Erdre (France)
Assigned to SNECMA, Paris (France)
Filed on Oct. 21, 2004, as Appl. No. 10/969,073.
Claims priority of application No. 03 12641 (FR), filed on Oct. 29, 2003.
Prior Publication US 2005/0096889 A1, May 05, 2005
Int. Cl. G06F 17/10 (2006.01); G05B 19/04 (2006.01)
U.S. Cl. 703—2  [700/255; 700/262] 19 Claims
OG exemplary drawing
 
1. A method of moving an articulated object, which is virtual, in a succession of unit movements in an environment, the articulated object being specified in said environment by a global position, a global orientation, and a plurality of joint angles defining the positions of a set of articulated elements making up said articulated object with a plurality of degrees of freedom, the method comprising the following steps:
calculating an interaction distance between the articulated object and its environment;
extracting from said interaction distance a first point belonging to one of the elements of the articulated object, and a second point belonging to the environment;
defining a single extraction vector from said first and second points; and
moving the articulated object away from its environment by a movement defined as a function of the single extraction vector, the separation movement being implemented by a movement in translation acting on the global position of the articulated object, and/or a movement in rotation acting on the global orientation of the articulated object, and/or a joint-flexing movement acting on a joint belonging to a chain of joints preceding the element of the articulated object to which said first point belongs,
wherein the movement in rotation acting on the global orientation of the articulated object comprises the following steps:
defining a first global vector between the center of gravity of the articulated object and the origin of the extraction vector;
defining a second global vector between the center of the articulated object and the end of the extraction vector;
calculating a global angle of rotation causing the first global vector to coincide with the second global vector;
calculating one or more individual global angles of rotation by resolving said global angle of rotation about the axis or axes defining the global orientation of the articulated object; and
turning the articulated object through one or more angles proportional to said one or more individual global angles of rotation.