strands-project / aaf_deployment

All components for the STRANDS AAF deployment
MIT License
1 stars 11 forks source link

Identify entities to log during deployment #17

Closed marc-hanheide closed 8 years ago

marc-hanheide commented 9 years ago

We need to decide what we want to log (and how) during the deployment. I suggest a specific component to be developed that logs into mongodb everything AAF deems relevant. Hence we need to know what we want to log, and what research questions we want to answer. Let's use this issue to collect what we want to log, by editing or commenting on this entry. @denisehe is the person to tell us.

The idea is to generate logs that can easily be translated into ELAN annotations.

Things to log (all including time stamp):

Besides, we shall record the screen (screen saver needs to be disabled) at very low framerate (once every 3 seconds) using avconv -f x11grab and the "interaction camera" (webcam to be provided by @mzillich) at 0.5Hz (see https://github.com/strands-project/aaf_deployment/issues/16).

marc-hanheide commented 9 years ago

I tag @mudrole1 @hawesie @yianni @Jailander @cburbridge @ToMadoRe @denisehe @cdondrup @nilsbore @mzillich as they are the AAF core team and should follow this discussion.

marc-hanheide commented 9 years ago

assigned to @denisehe to share her view on what to log first

cdondrup commented 9 years ago

Using the standard people perception with the dedicated logging component stores x y coordinates of the person, a uuid, the current robot pose, and the timestamps for each message. If this is enough we can just run that. Storing the robot pose might be a bit of an overhead in case it is logged constantly anyway. The benefit is that this puts it all in one message and makes it very easy to parse.

marc-hanheide commented 9 years ago

That's a good start. It does go into mongodb, right? For later, we'd need annotations with a start and end date of a person by ID. That can of course be created from your data, so this should be sufficient as far as persons are concerned. BTW, we agree that everything is time-logged using rostime, yes?

cdondrup commented 9 years ago

Everything goes into mongodb, yes. I guess rostime is the cheapest way of doing this since most messages have header any way. Isn't ros using the system time? What would be the alternative?

marc-hanheide commented 9 years ago

rostime is system time AFAIK, but I have seen logs, where people log the time since start or likewise. We must make sure everything is synchronised. We might even consider "watermarking" the videos we record from head camera etc to include the rostime, so we can align them. At least using -timestamp for ffmpeg set to the correct time whenever we start recording something (and using it in the filename as well).

kunzel commented 9 years ago

Regarding the detected humans, we plan to transform a sequence of poses for one person into a trajectory data structure (https://github.com/strands-project/strands_perception_people/blob/indigo-devel/human_trajectory/msg/Trajectory.msg). It works already offline. It think, @ferdianjovan will also look into an online version. @cdondrup @marc-hanheide Please let us know if you would like to add anything to the Trajectory.msg.

marc-hanheide commented 9 years ago

Yes, we want that :+1:

cdondrup commented 9 years ago

Looks exactly like what we want.

denisehe commented 9 years ago

Hey,

I think we can discuss some details during our todays hangouts meeting!

marc-hanheide commented 9 years ago

I think we'd need a written schedule. But that could come out of today's hangout. An idea for @hawesie why not use Google calendar to"program" it?

denisehe commented 9 years ago

Loging data that would be of relevance for AFF:

Bellbot:

Info Terminal:

Walking group:

Loging data that would be of relevance G4S

AND: VERY IMPORTANT: how can these date be extracted from the overall loging file? is it possible that you implement the thing that it really gives a nice outputfile containing frequ./duraitons streight away?

denisehe commented 9 years ago

ah and in case of infoterminal: where was the infoterminal used (what area of the buliding

and in case of bellbot where from did the service start and where did it go

denisehe commented 9 years ago

required vido logs from the small newly mounted cam:

1) AAF: a) video record the walking group b) video record when infoterminal is used c) video record when bellbot is used

2) G4S: video record the ID scan

hawesie commented 9 years ago

I would like to agree a common core set of logs for both AAF and G4S so we make sure we can compare deployments in a number of ways.

For the record, the task executor logs lots of information about tasks which can be used to reconstruct robot behaviour. Check message store collection task_events to see this. These events are also published when the system is running.

hawesie commented 9 years ago

@marc-hanheide can we assign someone to create the correct config for mongodb_log for most of the things in your list above?

marc-hanheide commented 9 years ago

Yes, but whom?

hawesie commented 9 years ago

Me maybe? Or someone at your place? Or @nilsbore as he's got experience with the logging.

marc-hanheide commented 9 years ago

@nilsbore might be a good person for this, indeed. He volunteered to be at the AAF pre-deployment.

nilsbore commented 9 years ago

I guess this would mostly be poking people to log stuff in their systems / identify which topics should be logged?

marc-hanheide commented 9 years ago

I was actually thinking to have a kind of aggregator node, a bit like the marathon logger.

hawesie commented 9 years ago

I think it should be as simple as a launch file which launches mongodb_log with the correct topics.

marc-hanheide commented 9 years ago

Also possible, then we'll have to log a lot and do post-mortem analysis to extract meaningful stuff. If we are not logging too much that should be feasible. FYI: I started playing with extracting and visualising logs from message_store into ELAN. This could be developed into a post-mortem analysis tool to extract meaningful annotations for @denisehe and others at AAF. Right now it's more a sandpit to play with: https://github.com/strands-project/elan_analyser But here is a sample output. Imagine the different tiers to be related to person presence (and annotating their distance or the number of people etc.), the video being the one recorded from the front camera and the annotations being temporally aligned with the video (obviously). Then we'd have different tier annotating the current waypoint, the current task, etc.

screenshot from 2015-03-17 16 09 10

hawesie commented 9 years ago

Adding @PDuckworth to the conversation as he would like to see robot poses logged throughout the runs.

denisehe commented 9 years ago

hey, I trust your judgement in this reagard @marc-hanheide - I have no pre-experience with ELAN but if we can easily trasphere information to SPSS it should be fine :-)

cdondrup commented 9 years ago

I think the logging of people should be done by #85 This will log all the poses of detected people into the datacentre. Only problem, it doesn't give you a start and end time without looking at all the detections with same uuid and finding the min and max time.

marc-hanheide commented 9 years ago

@cdondrup @hawesie @ferdianjovan How is the logging done at G4S? We should be doing the very same thing here.

hawesie commented 9 years ago

There is not a standard approach. I thought (as above) we assigned @nilsbore to get some logging going. My assumption is that it will be one or more instances of mongodb_log plus a list of topics. And there will be a shared list of topics, plus potentially different additions for each site.

marc-hanheide commented 9 years ago

Yes, sure. I meant more specifically about the people tracks.

nilsbore commented 9 years ago

@hawesie I am sorry, between different paper deadlines this has slipped my mind. I can assemble a list at the AAF pre-deployment next week but unfortunately I don't have any time before that.

nilsbore commented 9 years ago

Ok, I had a first look at topics to log during AAF deployment: https://github.com/strands-project/aaf_deployment/wiki/Topics-to-log-during-deployments. Please could @bfalacerda have a look at the monitored nav topics to see if they make sense. @Jailander could you have a look at topological nav topics? And @mudrole1 , I could not find so many topics to log from the scheduler, could you also have a look?

Otherwise, I will document each group of topics in the document to describe what they are actually publishing. Will try to get that done today.

hawesie commented 9 years ago

@nilsbore /task_executor/events is already logged in the node itself, as are scheduling problems but the executor.

nilsbore commented 9 years ago

@hawesie So we shouldn't log anything from the executor here?

marc-hanheide commented 9 years ago

Are these logged via mongodb_log? I want it all in one Format/place to ease later analysis.

hawesie commented 9 years ago

@marc-hanheide everything I mentioned above is done by the message store which is exactly what mongodb_log does anyway.

@nilsbore I think it's all covered unless @marc-hanheide or @mudrole1 think of other things.

nilsbore commented 9 years ago

So I'm running into a bit of a problem as mentioned on gitter. If @hawesie could have a look at this I would be grateful. You can try by using my logged_topics_list branch: https://github.com/nilsbore/aaf_deployment/tree/logged_topics_list . Run using roslaunch aaf_logging topics.launch. This doesn't work for me, but if I change to only log 5 topics (up until /goal), it works. It doesn't seem to be a limit on the number of topics that can be logged as other variations with more topics also work. It's hard to say what is causing this. I see the exact same behaviour when running and providing the topics to log via the command line: rosrun mongodb_log mongodb_log.py /rosout_filtered /tf /robot_pose /cmd_vel /goal vs rosrun mongodb_log mongodb_log.py /rosout_filtered /tf /robot_pose /cmd_vel /goal /mileage .

nilsbore commented 9 years ago

So me and @marc-hanheide found the source of this. If you look at https://github.com/strands-project/mongodb_store/blob/hydro-devel/mongodb_log/scripts/mongodb_log.py#L435 , it seems like mongodb_log is blocking other topics from subscribing until the previous ones have been announced and mongodb_log can get their type.

nilsbore commented 9 years ago

https://github.com/strands-project/mongodb_store/pull/125 addresses the mentioned issue.

nilsbore commented 9 years ago

@hawesie The next problem is that the same node name is assigned to all the worker nodes launched in mongodb_log.py when launched via roslaunch, as detailed in https://github.com/strands-project/mongodb_store/issues/116 . Is there a plan for fixing this or should we launch this from a bash script?

hawesie commented 9 years ago

I think that's easy to fix. At the moment all these issues are a bit spread around, so please make me an ordered list of things you'd like me to fix + deadlines.

nilsbore commented 9 years ago

Ok, cool. The things that are left is this + the issue you opened. I'll drop some comments there.