1. Figure out what type of robot design problem can be solved easily & quickly in Webots, so as to give collaborators something to experiment on.
2. Figure out how to 'connect' RoCo to Webots:
(1) What file format is needed?
(2) How to import components and assemble them in Webots?
(3) What other information we need to successfully implement / initialize the simulation?
(4) How to get a program template (that works in Webots)? So that we can modify RoCo to provide 'easy-to-convert' info?
Playing with Webots environment
1. Boat dropped above water
2. Boat initially under water
3. Boat initially under water, weight increased
4. Boat dropped above water, weight increased
- If we want to simulate hydrodynamics or other environments, we need to insert plug-ins.
- Most likely we need to write the environment by ourselves or modify existing ones.
- Here are some example provided by Webots: examples
Adding rotational components
Goal: to figure out what type of file is needed to import RoCo output into WeBots.
I made a simple robot car demonstration, with discrete components exported as .stl.
- Save components into separate .stl files.
- Import separately and then combine.
- Add hinge joint plus motor.
- Additional controllers needed to make the robot car run.
Here is a successful demo (tips, only bound body under Robot, do not bound any solid under Robot-children):
More iterations (failures and debugging) can be found here.
Following the two tutorials below:
Due to the lack of tools/knowledge (can not rapidly generate .obj files for now), I am putting a hold on trying this out. But I will keep in mind that this is a way that may work.
Since we already verified that importing .stl component files works in Webots, now we should try to modify RoCo to get the info we need for Webots simulation.
Some info we need from RoCo that I can think of now:
- All components separately in .stl. Since currently RoCo can export .stl of the assembly, I assume we can follow the same steps to export individual parts. Actually, this does not need to be .stl. Webots can read component's geometry (vector geometry) and convert it to information that can be used in .wbt.
- Component positions and other information, including relative/absolute position of each part, anchor locations ...
- Mechanical properties into RoCo output, e.g. mass, density, center of mass, rotational inertia, etc... This can be a .txt file that can be read and imported into Webots (assuming .wbt)
Things learned from playing around
- We may want to incorporate mechanical properties into RoCo output, e.g. mass, density, center of mass, rotational inertia, etc...
- We need to write the controller and the environment by ourselves.