Exploding robot, trying to learn how to diagnose

I'm a mentor with a high school robotics team. FIRST has put together a Gazebo based tool kit to make it possible to model competition robots using Gazebo. Our team had a pretty complex robot, so I thought it would be an excellent test and learning tool to get our robot up and operational.

I've fought my way through a fair number of challenges, with more to go, but I have one recurring challenge that I cannot diagnose: my robot will, with some frequency, simply take off; bouncing high into the sky, going akimbo. And the way I fix it always seems strange; I tweak the intake roller geometry, and it stops, or I rebuild my chassis to be one piece, instead of three.

This happens at odd times, particularly as I operate the robot. However, I've got a fixed test case that I think shows the problem, and I'm hoping someone can help me to understand how to diagnose this problem.

Recently, I have added two geometric 'ballast' shapes. And now, when I place the robot on the world, I get a nice consistent failure. That is, the robot always starts 5-10 cm off the world plane, and when I place it, it drops. Normally, it settles in nicely. But in the failure mode, it goes crazy. Currently, with the right ballast link in place, the problem occurs. If I move that ballast, the drop doesn't cause it, but operating the robot will.

In that folder, there is an explosion movie showing the moment of impact, when the robot lands and I step through the resulting bounce. I cannot figure out any mechanism to explain to me exactly what is going on. Another movie shows a typical 'operating' launch system (that one predates the ballast).

The model file is in robots/Sideshot.sdf. It is easy to reproduce the problem; simply insert Sideshot into the default world and watch it fly :-/.

I would really appreciate insight and guidance; I'd particularly appreciate feedback on how to troubleshoot this myself.

Comments

FRCSim maintainer here--glad to see you sticking with it. These are common difficulties inherent to explicit simulation, so it's good to learn how to go through them. I'm looking at your model now, and will come back if I have a good solution.

1 Answer

Ok, so I haven't solved it fully but here are a few things I'm noticing:

1) you're missing inertia values, the defaults make no sense for your robot. You need to always define inertia values. If you need help computing them that's a separate question (with many existing answers)

2) I'm seeing collisions with your ballasts and something else. I'm not sure with what, but they're there and maybe not good

3) be careful with self collide. If you have any geometry wrong that will absolutely cause it to explode

I'll try to come back to this if I look at your model further with new insights

Comments

1) Inertia was critical; that has made a huge difference. Ironically, I had a nicely generated inertia for the wheels, generated by the SolidWorks plugin, which I had removed as an experiment in attacking friction.
2) How are you seeing that?
3) I set self_collide to 0 and that made no difference. (And, actually, I'm not seeing self_collide work; the idea is that the battery keeps the arm from going down, but it's not actually happening. But that's a different problem...).
Thanks!

2) it's in the menu bar view > collisions. 3) self collide definitely works, you probably have your collision meshes/primitives in the wrong spot. I haven't been able to figure out why it still explodes occasionally. My technique for you is remove all links & joints, and slowly add them back one by one. Don't skip any-be patient. That might help you identify the issue