opensim-org / opensim-core

SimTK OpenSim C++ libraries and command-line applications, and Java/Python wrapping.
https://opensim.stanford.edu
Apache License 2.0
796 stars 320 forks source link

TableReporter doesn't respect column label string #1221

Closed jimmyDunne closed 8 years ago

jimmyDunne commented 8 years ago

TableReporter doesn't respect the string that is used for the column label. Using the ConsoleReporter, I can set the name of the input and it shows up in the console output:

>>reporter = ConsoleReporter();
>>reporter.set_report_time_interval(0.1);
>>reporter.updInput('inputs').connect(model.getCoordinateSet.get(0).getOutput('value'), 'pin1_angle' );
>>reporter.updInput('inputs').connect(model.getCoordinateSet.get(1).getOutput('value'), 'q2' );
>>model.addComponent(reporter);
...

time|   pin1_angle|          q2|
           0|  -0.78539816|  -1.0471975|
         0.1|  -0.73474627|   -1.027509|
         0.2|  -0.60741367| -0.92328623|
         0.3|  -0.47806726| -0.61092782|
         0.4|  -0.43760328| 0.037672947|
         0.5|  -0.29961138|  0.56629776|
         0.6|  0.087742457|  0.53901707|
         0.7|   0.61300325| 0.045838744|
         0.8|      1.05583| -0.42200138|

However, it I use a table reporter and try to get the column name, it uses the full path instead:

>> coordinateReporter = TableReporter()
>> coordinateReporter.set_report_time_interval(0.1)
>> coordinateReporter.updInput('inputs').connect(model.getCoordinateSet.get(0).getOutput('value'), 'pin_angle' );
>> coordinateReporter.updInput('inputs').connect(model.getCoordinateSet.get(1).getOutput('value'), 'q2' );
...
>> table = coordinateReporter.getReport()
>> table.getNumColumns
ans = 
2
>> table.getColumnLabel(0)
ans = 
/double_pendulum/pin1/q1/value
tkuchida commented 8 years ago

Related to #1071

tkuchida commented 8 years ago

Addressing this issue involves a design decision. Please provide discussion on the Development Proposal PR (#1226).