Up:Tutorial? Previous:Collision detection by agents Next:Control of humanoid agent by BVH file Grasping Function for Humanoid Agent †This tutorial is valid for later than SIGVerse v2.1.1 This tutorial explains how to let a humanoid agent grasp objects. Controller †Create a controller for a humanoid agent. $ cd ~/MyWorld $ emacs grasp.cpp grasp.cpp Using the above controller, the agent will grasp an object if the agent touch on the object. Operation of the humanoid agent †If you send a message "move", the agent will go forward. The agent change his orientation if a message "rotation" is sent. A message "[joint name] [angle]", the specified [joint] will be bent to the [angle] ex) "WAIST_JOINT1 45" The definition of each joint is explained at JointDefinition Grasping †API named graspObj will realize grasping behavior. An argument should be set a target object which should be grasped. The object will be moved along with the agent's hand Release †If a message "release" is sent to the agent, the agent will release the object. Compilation †$ ./sigmake.sh grasp.cpp World file †The following world file is almost the same as the one which is used in Vision sensor $ emacs grasp.xml grasp.xml Execution †$ sigserver.sh -w ./grasp.xml You can control the avator wich messages such as "move", "rotation" and "[joint name] [angle]". Let's make the avator touch on something object by the right hand. If the agent touch on a certain object, the object will be grasped. ATTENTION: Since collision detection is executed by rough boundaly condition, the object might not be grasped even if the object is touched by the agent. You can confirm that the target object is moved along with the hand when you bend or move the hand. The a message "release", the robot agent then release the object. You can confirm that the target object never move after the release. Up:Tutorial? Previous:Collision detection by agents Next:Control of humanoid agent by BVH file
Counter: 4241,
today: 2,
yesterday: 0
|