I have spent the majority of today working with MATLAB’s built-in 3d modeling tool — called V-Realm. Before this, I had discovered the way that we will be able to create a general MATLAB model and include a 3d visualisation (*.vrml), and specify inputs to the 3d model. This, of course, will allow us to visualize the simulations we intend to create for our ballbot motor control system.
The V-Realm tool has a significant learning curve — especially, if your not used to 3d graphics, rotations, and vectors. Though I’ve managed to figure out the majority of it’s functionality, I haven’t been able to understand rotations using quaternion vectors. The result is a slightly less-than-perfect manual rotation of the motor-axes around their own z-axis. Most importantly, the 45 degree angle between the motor axis and the ballbot body is perfect (assuming my calculations were correct).
As for quaternion vectors, I don’t envision having to manually calculate them as I tried to do tonight. The power of MATLAB will allow us to model 3d transformations using the manipulation of matrices. Of course, I’m a bit rusty on linear algebra, but there are a number of great examples — implementing an inverted pendulum; control system for the NXT BallBot from CMU — with which I can hopefully learn the concepts much more rapidly.
In conclusion, the created 3d visualisation of BallE in empty space is, thus, well-specified according to it’s currently decided dimensions:
- 10.16 cm diameter
- 1.27 cm x 2 wheel bushing (not sure if I interpreted ‘bushing’ correctly, but not too important right now)
- 22.0 cm diameter
- 40.0 cm height
- 5.7 cm in height
- 5.7 cm length and width
- 22.0 cm diameter
Any of these dimensions may change, but it shouldn’t create too much extra rework for aligning the parts in the 3d model. Tomorrow I intend to verify the dimensions of the 3d model against our actual build plans (Matthieu will be starting on that tomorrow). Afterward, I plan to experiment with the MATLAB simulations by adding some basic inputs and potentially updating the enviroment with a ground and some color. I also will work with Otilia and Pierre-Hugues on testing the usage of a Kalmann filter for our inputs from FreeIMU.
More to come in the near future. Over and out.
Possibly related posts: