-
Notifications
You must be signed in to change notification settings - Fork 276
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Publish performance metrics #557
Comments
For reference, here's the PR where the feature was implemented in Gazebo classic: gazebosim/gazebo-classic#2819. The new message should be added to And it's important to note that the original PR introduced a deadlock that was fixed in gazebosim/gazebo-classic#2917. Something to be aware of when implementing the same here. This PR can target Citadel. |
Hey, a couple of comments/question: For reference this is the proto message to be published: Click to see the proto message descriptionmessage PerformanceMetrics
{
/// \brief This message contains information about the performance of
/// each sensor in the world.
/// If the sensor is a camera then it will publish the frame per second (fps).
message PerformanceSensorMetrics
{
/// \brief Sensor name
string name = 1;
/// \brief The update rate of the sensor in real time.
double real_update_rate = 2;
/// \brief The update rate of the sensor in simulation time.
double sim_update_rate = 3;
/// \brief Optional fps data. If the sensor is a camera then this field should be filled
/// with average fps in real time.
double fps = 4;
}
/// max_step_size x real_time_update_rate sets an upper bound of
/// real_time_factor. If real_time_factor < 1 the simulation is
/// slower than real time.
double real_time_factor = 1;
/// Each sensor in the world will create a PerformanceSensorMetrics
/// message publishing information about the performance.
repeated PerformanceSensorMetrics sensor = 2;
}
|
These are all very good questions!
One idea that crossed my mind is that maybe each sensor could publish its own metrics. This logic could live in Would that be easier than doing it from the
Yeah I agree that this duplication is not good. For this task, I'd be ok completely dropping the |
Yes that's would be easier. |
The Given that this variable comes from this called(In the case of the Sensors System) So, having said that, given that we receive the simTime we could obtain the This all could be implemented within Unless I am missing something I think that we have a clear path to follow. One last thing. What about adding also to the metrics message the information about the "nominal" update rate of the sensor? |
I like that idea 👍
Great, thanks! |
😃 Some updates: I've made progress here:
The only thing left is related to the
But |
One idea would be to make the Another thing that stands out to me is that it would be nice to be able to disable the metrics publishing. For now we can just add the API to |
Thanks for the suggestions! 👍 |
I thought that
@chapulina If you consider it is ok I could go for it. |
Ah I see. Since we're short on time for this task, how about we leave FPS as future work and just focus on update rate for now? |
Great, sounds reasonable. I leave below some next steps based on things discussed in the issue:
|
3 to 4 logging behavior and tests Approved-by: John Shepherd
Performance metrics have been recently added to Gazebo classic, see Gazebo: Tutorial: Performance metrics.
It would be interesting to publish the same metrics from Ignition simulations, so that users can:
The text was updated successfully, but these errors were encountered: