magmaOffenburg / RoboViz

Monitor and visualization tool for the RoboCup 3D Soccer Simulation League
Apache License 2.0
52 stars 17 forks source link

Visual differentiation between different robot types. #47

Closed pmacalpine closed 9 years ago

pmacalpine commented 9 years ago

Now that there are five different robot types it would be nice if when just looking at a robot on the screen there was some type of indicator as to what type (0-4) the robot is. This is especially true for types 0 and 2 which have the exact same body dimensions.

Gama11 commented 9 years ago

How could that look like?

pmacalpine commented 9 years ago

This will require a change on the server side to somehow communicate what types agents are as otherwise roboviz has no way of knowing this. I've put together a prototype for this feature where I've changed some of the black color on the agents' bodies to other colors based on their agent types. I chose neutral colors for these changes (so as not to interfere with team colors) which are the following: Type 0 - black Type 1 - dark grey Type 2 - light grey Type 3 - white Type 4 - team color
Below is what these changes look like with agents' type numbers shown above their heads. visualizeagenttypes

This feature was implemented by adding to the server some model files and material colors as well as modifying a few of the nao agent rsg files to load the new models. To add visualization of agent types to the server and roboviz only a few files need to be copied/added to them (no recompiling is necessary). The feature is also backwards compatible with playing back previous recorded game logs although such logs won't show visual differences between agent types. You can find the necessary files to add for this feature, as well as a quick README telling where to place the files, at http://www.cs.utexas.edu/~AustinVilla/sim/3dsimulation/tmp/typecolors.tar.gz.

I've forwarded this feature to members of the TC and OC to look over, and if it's decided to add this to the server than we will also need to add the corresponding model and material files to roboviz as well. One additional thing that could be done is to add a mode to roboviz to label/highlight agent's body types perhaps with an overhead agent annotation similar to uniform numbers. This of course would be contingent on making the change to the server to use different object models for the different body types so that roboviz can distinguish between them.