From: Giulio Z. <Giu...@ir...> - 2008-01-15 15:49:21
|
Hello, Ineed to simulate a Roomba and to avoid obstacles: up to now I used the PositionProxy.GetStall() function to understand when the robot was stuck, and activate some procedures made by me to solve the problem. However, I read that it's possible doing so using its bumpers, and that some algorithms already exist to handle that situation. I think those would be far more efficent. Where can I find them? I attach the robot description. Thanks # The roomba model define roomba position ( # actual size size [0.34 0.34] # roomba's center of rotation origin [0.0 0.0 0] # draw a nose on the robot so we can see which way it points gui_nose 1 # estimated mass in KG mass 2.95 # this polygon approximates the circular shape of a Roomba #polygon[0].point[8] [ -0.125 0.000 ] polygons 1 polygon[0].points 16 polygon[0].point[0] [ 0.225 0.000 ] polygon[0].point[1] [ 0.208 0.086 ] polygon[0].point[2] [ 0.159 0.159 ] polygon[0].point[3] [ 0.086 0.208 ] polygon[0].point[4] [ 0.000 0.225 ] polygon[0].point[5] [ -0.086 0.208 ] polygon[0].point[6] [ -0.159 0.159 ] polygon[0].point[7] [ -0.208 0.086 ] polygon[0].point[8] [ -0.325 0.000 ] polygon[0].point[9] [ -0.208 -0.086 ] polygon[0].point[10] [ -0.159 -0.159 ] polygon[0].point[11] [ -0.086 -0.208 ] polygon[0].point[12] [ -0.000 -0.225 ] polygon[0].point[13] [ 0.086 -0.208 ] polygon[0].point[14] [ 0.159 -0.159 ] polygon[0].point[15] [ 0.208 -0.086 ] # differential steering model drive "diff" localization "odom" odom_error [0.03 0.03 0.05] #visibility of roomba laser_return 1 ranger_return 1 bumper ( # The lengths of the transducers are fixed to fit the 'circular' shape of a roomba bcount 3 #bpose[0] is the right hand side transducer bpose[0] [ 0.09 -0.14 124 ] #format [x y theta] (theta in degrees) blength[0] 0.19 #bpose[1] is the central transducer bpose[1] [ 0.17 0.0 0 ] blength[1] 0.15 #bpose[0] is the left hand side transducer bpose[2] [ 0.09 0.14 -124 ] blength[2] 0.19 ) ) |