On Mon, 10 May 2004, [gb2312] ÕÅµ¤µ¤ wrote:
> I'm a graduate student of Peking University of China. I major in robotics and automation. Recently I have met a problem when I use Player/Stage simulator.
> I want to change the properties of the puck model, for example, when some robots come near to the puck, if they find that the puck is too heavy to move, they will just wait for other robots for help.When enough robots have come, I want the puck to disappear. I have read the puck.cc file in the "models" directory, and tried to modify some attributes in puck.cc, but it did not take any effect when I ran stage "puck.world" and the player program. Could you tell me how to solve this problem?
hi Zhang Dandan,
As a purely kinematic simulation operating on a grid-based 2D world,
Stage is not well-suited to tasks like cooperative manipulation. Our 3D
simulation, Gazebo would likely be a better fit.
Having said that, you might be able to make this work in Stage.
I would recommend trying something like the following modifications
to Stage. In src/models/puck.cc, add some attributes that indicate
how many robots are required to pick it up, and how many are currently
trying to pick it up. Then in src/models/gripperdevice.cc, change
CGripperDevice::PickupObject() to check those values before deciding
whether to actually pick up the puck.
But then who has the puck after multiple robots pick it up? You won't be
able to simulate two robots carrying one puck, for example.
Also, the client-side control will be tricky, because you'll need the two
robots to move very close to each other, and not collide.
Brian P. Gerkey gerkey@...
Stanford AI Lab http://ai.stanford.edu/~gerkey