Adding throttle topics option in ATOM and trying different configuration for the collect data function
This week's progress:
- Adaptation of ATOM to have an option to throttle topics. First, I adapted the config file template to receive throttled topics. Then, I added to the configure_calibration_pkg file a for loop to recognized if that sensor has the throttle enabled and at which frame rate. This loop creates a dictionary with the requeried fields and passes it to the playbag.launch template. Here, I used jinja2 to read the dictionary and create new nodes for the throttled topics. It also creates a string with the topics to be remapped and adds them to the node that plays the bag. If bag includes topics with compressed data, it throttles those topics first, by redirecting the throttle to the compressed topics, and then decompresses the already throttled topics.
- Conceptualization and research about possible options to the framework of ATOM's collect_data function. There are two possible options: turn the subscribers on and off or use wait_for_message to grab instant messages after labelling data. I have also searched about clearing the subscriber queue. Apparently, there is a function in ros cpp that allows to clear it, but not in rospy (?). The option to use the wait_for_message seems more efficient but, to work, the wait_for_message from all the sensors need to be inside the same while loop. In the current ATOM framework, it seems difficult to structure data that way, because it works with classes and a class is instantiated per sensor. I couldn't find any information about whether it is possible or not to turn the subscriber on and off. The question remains if this investigation is still relevant, once the throttler seems to solve the problem that this was also trying to solve.
- Review of submitted paper (calibration with spherical target)
- Check inconsistencies in calibration results with real data
- Change ATOM's collector to a more robust solution (?)
- Adapt ATOM to calibrate RGBD sensors. I think this should be my next line of work while waiting for new computer.
(opened but not this week's work)