yujinrobot / kobuki

Software for iClebo Kobuki
kobuki.yujinrobot.com
221 stars 176 forks source link

improve driving on not completely flat terrain #202

Closed tfoote closed 10 years ago

tfoote commented 11 years ago

We've got a concrete floor we've been testing on, with a few mm unevenness. There's a picture of the unevenness

When the TurtleBot2 drives on this w/o any additional payload it fails to make the turn. We have a significant fraction of but are definitely not over the 5kg payload. However if we put carpet down it is able to make the turn.

Watching closely we can watch the right wheel slipping significantly while it's failing to make this corner.

There are a few potential options to improve performance that we've thought of:

  1. Make the passive wheels less resistant to rotation (This is also with the teflon tape on the passive wheels already. )
  2. make the wheel suspension springs stronger
  3. use the gyro to close the loop on the requested angular rotation rates.
tfoote commented 11 years ago

Sorry forgot the link to the album with photos and video: https://plus.google.com/photos/116045912110987101704/albums/5820095622673476801?authkey=CP3fpOnM3t-pVQ

bit-pirate commented 11 years ago

Tully, out of curiosity, could redo some of the tests at higher speeds (e.g. double the speed you used, half of max. speed, max. speed). Since we already know, that we have a problem at very low speeds, I wonder how the result looks like at higher speeds.

tfoote commented 11 years ago

We've just found that our demo site is flatter but also more slippery. And this is even worse there. The basic problem is that there's just not enough traction on the wheels. We've tried adding sandpaper tape to the wheels but that didn't work either because the springs still didn't provide enough force to reliably corner.

The best solution we've found so far is to replace the rear wheel with a bumper which is shorter. This means that the robot rides lower and puts more weight on the drive wheels. See the attached picture.

2012-12-11_11-33-20_5

tfoote commented 11 years ago

With respect to going faster I'm not on site to test it at the moment. I'd expect it to get farther, as the inertia will take it past the small features of either friction for the passive wheel or slippery areas for the drive wheels, but with the need for turning it won't actually help initiate the turning motion.

stonier commented 11 years ago

We managed to reproduce the problem here. We're not seeing as extreme results, which is probably why we missed it. In hindsight it would have been good to push out T2 for alot more testing elsewhere.

Yesterday we ran kobuki and turtlebot around a circle of 90cm diameter, at really slow speeds. Kobuki was faithful, turtlebot was showing some odometry error. Optimised the controller to remove the vibrations at low speed, which helped, but not significantly. Also tried feeding back the gyro into it, but that didn't do anything significant. Just to check that it wasn't a controller problem, we ran the tests with direct pwm control. With your feedback, it became easy to identify the slippage - we were seeing it occasionally as the gyro feedback dropped well under the odometry feedback for a few hundred milliseconds. In the end it turned out this happened at certain places on the floor which had a small (~2mm) gentle deviation. I can see how this can cause problems - it was sometimes quite late commencing a turn when commanded.

So yes, a traction problem. When we tested springs earlier, we had the dilemma of finding springs which would work for both kobuki and turtlebot. In the end we settled on kobuki spec'd springs to avoid it bouncing around like a kangaroo. At the time, the turtlebot traction seemed workable for the spec'd payload. Our focus back then too, was really hammering it out on the carpet where we had really significant issues. That may have distracted us.

We've raided the mechanical stores for springs again and we'll test today.

stonier commented 11 years ago

See also #249

stonier commented 11 years ago

Jorge has new wheel designs, we'll initiate integrating them into the factory builds. Once that starts, we'll close this.

corot commented 11 years ago

We have pulled our distributors for feedback on the new wheels design:

With these wheels, the robot behavior is quite satisfactory, both solving the described problem and in normal operation. You can reproduce the new configuration by 3D-printing the models we used for testing. The STL files include only the finally chosen size, but if you want to experiment with other sizes I can also make public the other models. The two different shapes work quite similarly in our tests, but current shape (NC_310S_FLAT.stl) is more aesthetically appealing (at least to me!).

I encourage you to give a try to the new configuration, so you can corroborate or disprove our results, and provide any comments and feedback before we officially change robot's design. Please tell me if you need more details or you experience any problem printing the wheels.

3D models and the Python script we used for testing can be found here:

http://files.yujinrobot.com/kobuki/hardware/models/stl/

tlau commented 10 years ago

We have a similar problem here with a Kobuki base that can't turn reliably on our floor due to wheel slippage. It's a fake wood laminate floor, very smooth to the touch, but with ridges at the joins where the planks fit together. We've tried wrapping rubber bands around the wheels to increase traction, which works for a little while until the bands slip off. By looking carefully at the wheels while the robot is trying to turn, we can see that the wheels are spinning uselessly against the floor. The effect is especially pronounced at low speeds. I'd love to find any solution that makes the Kobuki usable for us on on this surface.

stonier commented 10 years ago

Tesse, if you have access to decent 3d printing, those stl files can make you some compatible wheels which provide a bit more leeway between front and back so when under a heavy load the passive wheels don't create so much friction. This also gives traction back to the main drive wheels.

Jorge, is there anything about the 3d material used?

adamantivm commented 10 years ago

This is very interesting. We've been suffering from this skidding problem for over a year now and it makes all of our Kubuki-based prototypes and demos really hard.

We have a 3d printer available in-house, not sure if it will be enough but we can try.

Any specifics about what kind of print is necessary? Would this work on PLA, 0.35mm nozzle? Any requirement on infill proportions?

adamantivm commented 10 years ago

Just to be completely sure, each STL is half of a caster wheel, right?

stonier commented 10 years ago

Yeah, they are halves. But not of a caster wheel. It's just a passive roller.

Big problem is the robot itself has alot of flex. Put alot of weight on the robot and suddenly the passive rollers take alot of pressure which reduces the traction the big wheels can get.

Jorge did a ridiculous amount of testing to find the best wheel clearances for a default turtlebot which makes up part of our solution. He can chase up some more for you next week and let you know what materials are best (@corot this is for you!).

The other part of our solution is coming in a couple of months when we get some new tracks being made at the factory for the cleaning robots. The stiffness in the tracks on the main wheels will be alot stiffer and also help with the problem.

corot commented 10 years ago

Hi, we use a 0.036 nozzle. Not sure if a 0.35 will work. I think you can just try. Over material, we use liquid plastic, but we noticed that material and shape are not the key factors; the important is the size.

Please tell as the results you obtain! Thanks

corot commented 10 years ago

We have incorporated the new design in the factory process, so the next production round will incorporate them. Tully, thanks for reporting and investigating this problem.