This PR addresses miscellaneous bugs in the system:
The F/T thresh idiom subscribed to the F/T readings with a QoS including RELIABILITY, which is incompatible with the F/T sensor's publication of BEST_EFFORT. This PR addresses that.
Both SegmentFromPoint and FaceDetection had a race condition where sometimes they attempt to get the type of message being sent on an image topic before republisher has advertised that topic, throwing a ValueError. Since we have mostly converged to the message types we will be using, this PR adds a fallback to a hardcoded message type if publishers for those topics are not yet alive.
Since feeding_web_interface#106, the web app expects the face detection image to be a CompressedImage, which this PR addresses.
As documented in feeding_web_interface#111, to avoid latency the web app needs a rate-limited publication of video streams. This PR extends republisher to rate-limit streams, and rate-limits the streams rendered on the web app to 3Hz (can be tuned).
[x] Verify that the robot code is receiving F/T messages (i.e., the watchdog is not tripping)
[x] Go to bite selection in the web app, move your hand in and out of the camera, verify that the latency is not more than 1-2 secs.
[x] Go to the DetectingFace page in the web app, move your head around in front of the camera, verify that the latency is not more than 1-2 secs.
Before opening a pull request
[x] Format your code using black formatterpython3 -m black .
[x] Run your code through pylint and address all warnings/errors. The only warnings that are acceptable to not address is TODOs that should be addressed in a future PR. From the top-level ada_feeding directory, run: pylint --recursive=y --rcfile=.pylintrc ..
Description
This PR addresses miscellaneous bugs in the system:
RELIABILITY
, which is incompatible with the F/T sensor's publication ofBEST_EFFORT
. This PR addresses that.ValueError
. Since we have mostly converged to the message types we will be using, this PR adds a fallback to a hardcoded message type if publishers for those topics are not yet alive.feeding_web_interface
#106, the web app expects the face detection image to be aCompressedImage
, which this PR addresses.feeding_web_interface
#111, to avoid latency the web app needs a rate-limited publication of video streams. This PR extendsrepublisher
to rate-limit streams, and rate-limits the streams rendered on the web app to 3Hz (can be tuned).Testing procedure
feeding_web_interface
#111 and re-build the workspace.DetectingFace
page in the web app, move your head around in front of the camera, verify that the latency is not more than 1-2 secs.Before opening a pull request
python3 -m black .
ada_feeding
directory, run:pylint --recursive=y --rcfile=.pylintrc .
.Before Merging
Squash & Merge