Given how our food-on-fork (FoF) algorithm works (memorizing "fork" points in the camera frame), it is susceptible to changes in the camera extrinsics, and to physical changes like the fork getting bent. To make it easier to fix these sort of issues in the FoF algorithm, this PR adds a non_fof_points_offset parameter, which is position offsets to add to the stored no_fof_points. This PR also tunes that offset to the current robot/camera.
Testing procedure
[x] Launch the code in real.
[x] Turn on FoF sensing: ros2 service call /toggle_food_on_fork_detection std_srvs/srv/SetBool "{data: true}"
[x] Echo the FoF topic: ros2 topic echo /food_on_fork_detection
[x] Move your finger around the fork, mimicing different food poses, verify it works as expected.
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
Given how our food-on-fork (FoF) algorithm works (memorizing "fork" points in the camera frame), it is susceptible to changes in the camera extrinsics, and to physical changes like the fork getting bent. To make it easier to fix these sort of issues in the FoF algorithm, this PR adds a
non_fof_points_offset
parameter, which is position offsets to add to the storedno_fof_points
. This PR also tunes that offset to the current robot/camera.Testing procedure
real
.ros2 service call /toggle_food_on_fork_detection std_srvs/srv/SetBool "{data: true}"
ros2 topic echo /food_on_fork_detection
Before opening a pull request
python3 -m black .
ada_feeding
directory, run:pylint --recursive=y --rcfile=.pylintrc .
.Before Merging
Squash & Merge