-
Notifications
You must be signed in to change notification settings - Fork 95
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
ROS2 workspace and example nodes #256
Conversation
Hey @ad-daniel, i have started working on implementing ROS2 nodes for object detection and semantic segmentation. Should i keep adding the new stuff on the |
Ideally it would be better to merge a minimal version (with some changes like adding vision_opencv as a submodule, re-organize some stuff, ...) so that other partners can do their own branches from develop and begin the development in parallel. In practice however since develop is currently frozen in preparation for the release, we should probably wait for that (either way it will occur this week). For you and others that wish to begin the ros2 development I think the best approach at the moment might be to create a branch from THIS branch. Once the release has occurred, we can do the necessary changes in this PR and merge it right after. |
Alright Daniel, thanks! I also thought that might be a good potential way of doing things. |
@tsampazk thanks for your detailed instructions. |
Hey @vniclas ! Could you run this |
The tests as described in the vision_opencv/cv_bridge readme pass. Sadly, I cannot run your proposed command due to the same error |
On my earlier deleted response i had some things mixed up, sorry, this is actually unrelated to vision_opencv. Maybe if you still have the original installation of the toolkit saved, you try this If even the above doesn't work maybe you missed the steps in the ROS2 installation regarding the keys, etc.:
from here steps 2 and 3 in the second section regarding ROS2 foxy installation. If you get errors building the toolkit from scratch should be unrelated with this indeed. |
Running |
…n nodes (#273) * Added to and from ros boxes bridge methods * Added object detection 2d ssd node according to ros1 node * Added object detection 2d centernet node according to ros1 node * Added to and from bounding box list bridge methods * Added object detection 2d detr node according to ros1 node * Fixed some issues with type conversions in bridge * Added object detection 2d yolov3 node according to ros1 node * Added face detection retinaface node according to ros1 node * Added retinaface ros2 node in setup.py * Added semantic segmenation bisenet ROS2 node according to ROS1 node * Added additional checks in learner download methods to stop redownloading * Improved ROS2 packages names and bridge import * Tester moved * Changed bridge import and fixed some nms stuff causing errors * Changed bridge import and made all queues 1 to avoid delays * Minor pep8 fix * Another minor pep8 fix * Added licence check skip for setup.pys * Added licence check skip for test.pys * Added appropriate docstring on existing bridge methods * Removed unused commented line * Finalized ROS2 pose estimation node with argparse * Minor formatting * Finalized ROS2 bisenet semantic segmentation node with argparse * Improved docstring * Minor comment addition * Finalized ROS2 face detection retinaface node with argparse * Minor improvements * Finalized ROS2 object detection 2d yolov3 node with argparse * Finalized ROS2 object detection 2d centernet node with argparse * Finalized ROS2 object detection 2d detr node with argparse * Finalized ROS2 object detection 2d ssd node with argparse * Fixed typo in package.xml description Co-authored-by: Stefania Pedrazzi <stefaniapedrazzi@users.noreply.github.com> Co-authored-by: Stefania Pedrazzi <stefaniapedrazzi@users.noreply.github.com>
* Fixed wrong argparse default values * Some reordering for internal consistency and to/from face/face_id * Initial version of ROS2 face recognition node * Added annotated image publishing to ROS2 face recognition node * Fixed face recognition node class name * Fixed face recognition node class name in main * Added ROS2 fall detection node * Detr node now properly uses torch
These are not OpenDR files so they contain their own licenses, which we shouldn't change. I think we could just delete them altogether, or add exceptions in the license testing as seen here for the simulation package also. Nevertheless, i think that we shouldn't put our own license on those files, as they are not are own. |
@tsampazk You are right, I didn't notice you added exceptions in checking the OpenDR licence to those files. |
Co-authored-by: ad-daniel <44834743+ad-daniel@users.noreply.github.com>
This reverts commit dae3cde.
You beat me to it Daniel, thanks for the audio installation! 😆 I am now making the required changes in the readme. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works for me, thank you!
This PR should be reviewed in priority so that I can finalize #353 before synchronizing on master. Some missing dependencies were shadowed by the fact the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall seems fine to me! Thank you all for the hard work!
* ROS2 workspace with example pose estimation node and initial ros2_bridge package * Add ROS2 object detection 2D, face detection and semantic segmentation nodes (opendr-eu#273) * Added to and from ros boxes bridge methods * Added object detection 2d ssd node according to ros1 node * Added object detection 2d centernet node according to ros1 node * Added to and from bounding box list bridge methods * Added object detection 2d detr node according to ros1 node * Fixed some issues with type conversions in bridge * Added object detection 2d yolov3 node according to ros1 node * Added face detection retinaface node according to ros1 node * Added retinaface ros2 node in setup.py * Added semantic segmenation bisenet ROS2 node according to ROS1 node * Added additional checks in learner download methods to stop redownloading * Improved ROS2 packages names and bridge import * Tester moved * Changed bridge import and fixed some nms stuff causing errors * Changed bridge import and made all queues 1 to avoid delays * Minor pep8 fix * Another minor pep8 fix * Added licence check skip for setup.pys * Added licence check skip for test.pys * Added appropriate docstring on existing bridge methods * Removed unused commented line * Finalized ROS2 pose estimation node with argparse * Minor formatting * Finalized ROS2 bisenet semantic segmentation node with argparse * Improved docstring * Minor comment addition * Finalized ROS2 face detection retinaface node with argparse * Minor improvements * Finalized ROS2 object detection 2d yolov3 node with argparse * Finalized ROS2 object detection 2d centernet node with argparse * Finalized ROS2 object detection 2d detr node with argparse * Finalized ROS2 object detection 2d ssd node with argparse * Fixed typo in package.xml description Co-authored-by: Stefania Pedrazzi <stefaniapedrazzi@users.noreply.github.com> Co-authored-by: Stefania Pedrazzi <stefaniapedrazzi@users.noreply.github.com> * Removed tester node * Add ROS2 face recognition and fall detection nodes (opendr-eu#279) * Fixed wrong argparse default values * Some reordering for internal consistency and to/from face/face_id * Initial version of ROS2 face recognition node * Added annotated image publishing to ROS2 face recognition node * Fixed face recognition node class name * Fixed face recognition node class name in main * Added ROS2 fall detection node * Detr node now properly uses torch * Fixed missing condition in publishing face reco image * Updated ROS2 semseg bisenet node according to new ROS1 node * Added lambda expression in argparse to handle passing of none value * Minor optimization * Added new ros2 cmake package for OpenDR custom messages * Pose estimation ROS2 node now uses custom pose messages * Bridge to/from pose methods now use new opendr pose message * Moved opendr messages package to correct subdirectory (src) * Face det: Added lambda expression in argparse to handle passing of none value and minor optimization * Face reco: Added lambda expression in argparse to handle passing of none value * Fall det: Added lambda expression in argparse to handle passing of none value and minor fixes in callback * Obj det 2d: Added lambda expression in argparse to handle passing of none value and minor optimization * Sem segm bisenet: Added lambda expression in argparse to handle passing of none value and reintroduced try/except * Fall det: message now gets published only when there's a fallen pose present and each pose has its own id. * Ros2 detr (opendr-eu#296) * use same drawing function as other 2d object detectors * create object_detection_2d_detr ros2 node * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/object_detection_2d_detr_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/object_detection_2d_detr_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/object_detection_2d_detr_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/object_detection_2d_detr_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/object_detection_2d_detr_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/object_detection_2d_detr_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * format code Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Ros2 har (opendr-eu#323) * Add ros2 video_activity_recognition_node * Fix resizing inference issues * Added missing bridge methods * Added missing node entry point declaration in setup.py * Fixed docstring and wrong default input topic Co-authored-by: tsampazk <tsampaka@csd.auth.gr> * Initial version of main ROS2 README.md * Updated contents based on newer ROS1 version * Added initial ROS2 main READMEs * Changed usb cam run command * Work in progress adding setup instructions * Complete setup and build instructions plus fixed links * Minor fixes in introduction and line separators * Commented out cv bridge installation * ROS2 RGBD hand gestures recognition (opendr-eu#341) * Add RGBD hand recogniton node * Update RGB hand gesture recognition node * Remove redundancy parameters * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/rgbd_hand_gesture_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * ROS2 implementation for human_model_generation module (opendr-eu#291) * changes for ros2 in opendr_simulation code * Update mesh_util.py * Update human_model_generation_service.py * Update human_model_generation_client.py * Update bridge.py * Update human_model_generation_service.py * Update human_model_generation_client.py * Update bridge.py * Update human_model_generation_client.py * Update human_model_generation_service.py * Update bridge.py * Update setup.py * Update human_model_generation_client.py * Update human_model_generation_service.py * Update test_flake8.py * Update test_flake8.py * Update test_license.py * Update setup.py * Update test_license.py * Update projects/opendr_ws_2/src/opendr_ros2_bridge/opendr_ros2_bridge/bridge.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_interfaces/package.xml Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_service.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_client.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_ros2_bridge/opendr_ros2_bridge/bridge.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_client.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_service.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_interfaces/package.xml Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_interfaces/srv/Mesh.srv Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_client.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_client.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_ros2_bridge/opendr_ros2_bridge/bridge.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_service.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_service.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * changes to ros2 * changes to ros2 * changes to ROS2 nodes * changes to ROS2 nodes * ROS2 changes * ROS2 changes * ROS2 changes * ROS2 changes * ROS2 changes * ROS2 changes * ROS2 changes * ROS2 changes * ROS2 changes * ROS2 changes * ROS2 changes * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_service.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_client.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update bridge.py * Update bridge.py * Update projects/opendr_ws_2/src/opendr_simulation/opendr_simulation/human_model_generation_client.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update dependencies.ini * Update dependencies.ini * Update mesh_util.py * Update dependencies.ini Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Add ROS2 node for EfficientPS (opendr-eu#270) * Update submodule * Add ROS2 node * Do not remove downloaded checkpoint file * Conclude merge * Fix PEP8 issue * ROS2 adaptation wrt. ROS imp. on dev. branch * fix: EfficientPS Learner updated, ROS2 subscriber queue fixed, ros2 bridge import fixed EfficientPS learner file is updated to the current changes in the develop branch. Queue parameter of the subscriber in the ROS2 script has adapted correctly, also implementation of the ROS2 bridge fixed. * refactor: Resolved conflict in the setup.py of ROS2 implementation * style: PEP8 fix * fix: arguments, ROS2Bridge import and rclpy.init fixed * style: PEP8 blank line fix * fix: Fixed encoder and default image topic location * fix: logging order and pep8 fixed * style: pep8 fix Co-authored-by: aselimc <canakcia@cs.uni-freiburg.de> Co-authored-by: Ahmet Selim Çanakçı <73101853+aselimc@users.noreply.github.com> * ROS2 for heart anomaly detection (opendr-eu#337) * Implement ROS2 for heart anomaly detection * Remove redundant blank line * Organize import libraries * Change from ROS to ROS2 in docstring * Update heart_anomaly_detection_node.py Fix wrong initialized node name * Update bridge.py Update from single quotes to double quotes in docstring * Change node name for consistency naming across ROS2 nodes Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Fixed wrong name in dependency * ROS2 speech command recognition (opendr-eu#340) * Implement ROS2 for speech command recognition * Change default audio topic from /audio/audio to /audio * Update bridge.py Update from single quotes to double quotes in docstring * Fix style * Change node name for consistency across ROS2 nodes * Update speech_command_recognition_node.py Update blank lines in different positions * PEP8 removed whitespace Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> Co-authored-by: tsampazk <tsampaka@csd.auth.gr> * ROS2 for audiovisual emotion recognition node (opendr-eu#342) * Implement audiovisual emotion recognition node * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/audiovisual_emotion_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/audiovisual_emotion_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Skeleton_based_action_recognition ROS2 node (opendr-eu#344) * skeleton_har ros2 node added * ros2 node fixed * Add skeleton based action recognition in setup.py * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/skeleton_based_action_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/skeleton_based_action_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/skeleton_based_action_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/skeleton_based_action_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Fixed extra newline at end of line Co-authored-by: tsampazk <tsampaka@csd.auth.gr> Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * landmark_based_facial_expression_recognition ROS2 node (opendr-eu#345) * landmark_fer ros2 node added * ros2 node fixed * Add landmark based facial expression recognition in setup.py * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/landmark_based_facial_expression_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/landmark_based_facial_expression_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/landmark_based_facial_expression_recognition_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> Co-authored-by: tsampazk <tsampaka@csd.auth.gr> Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Reformatted file * Ros2 synthetic facial generation (opendr-eu#288) * opendr_ws_ros2 synthetic facial image generation * Delete projects/opendr_ws_2/src/ros2_bridge directory delete directory * delete unneccesary directory * Update README.md change to be correct the execution of the module * Update package.xml change to be correct * Update setup.py * Update package.xml * Update package.xml * prepared with test * Update synthetic_facial_generation.py * Update synthetic_facial_generation.py * Update synthetic_facial_generation.py * Update setup.py * Update test_pep257.py * Update test_flake8.py * Update test_copyright.py * Update mesh_util.py * Update Dockerfile-cuda Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update .github/workflows/tests_suite_develop.yml Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update .github/workflows/tests_suite_develop.yml Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/package.xml Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update test_copyright.py * Update test_flake8.py * Update test_pep257.py * Update test_license.py * Update projects/opendr_ws_2/src/data_generation/setup.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/setup.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update package.xml * Update synthetic_facial_generation.py * Update .github/workflows/tests_suite_develop.yml Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update synthetic_facial_generation.py * Update synthetic_facial_generation.py * ros2 * ros2 * ros2 * Update README.md * Update synthetic_facial_generation.py * Update synthetic_facial_generation.py * Update synthetic_facial_generation.py * Update synthetic_facial_generation.py * Update test_copyright.py * Update test_flake8.py * Update test_pep257.py * Update test_license.py * Update test_license.py * Update Dockerfile-cuda Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/test/test_copyright.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/test/test_flake8.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/test/test_pep257.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update tests/test_license.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update synthetic_facial_generation.py * Update synthetic_facial_generation.py * Update synthetic_facial_generation.py * new updates * updates * Update bridge.py * Update README.md * Update data.py * Update projects/opendr_ws_2/src/opendr_ros2_bridge/opendr_ros2_bridge/bridge.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_ros2_bridge/opendr_ros2_bridge/bridge.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/data_generation/data_generation/synthetic_facial_generation.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Ros2 gem (opendr-eu#295) * use same drawing function as other object_detection_2d nodes * Add gem ros2 node * Apply suggestions from code review Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Rename node class to ObjectDetectionGemNode * add argparse consistent with node args * make arguments consistent * tested gem ros and ros2 node * fix pep8 errors * apply changes requested by reviewer Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Renamed data generation package * Renamed opendr_ros2_messages to _interfaces * Fixed imports for opendr_ros2_interface * Minor fixes across all existing nodes - brought up to speed with latest ROS1 nodes * Added correct test_license skipped directories * Renamed bridge package to opendr_bridge * Fixed bridge dependency * Fixed bridge dependency and imports in perception and simulation packages * Fixed bridge dependency for simulation package * Renamed opendr_ros2_interface to opendr_interface * Fixed colcon build deprecation warnings * Fixed bridge import in init * Nanodet and yolov5 new ros2 nodes * Fix class names for yolo nodes * Convert to proper nanodet ros2 node * Minor comment fix on yolo nodes * Fixed node name in log info of nanodet node * Upgrade pip prior to install in docker * Update Dockerfile * Revert * Revert dependency change * Some future ros1 fixes for ros2 yolov5 node * Added new siamrpn node in setup.py * Added initialization service for siamrpn node * Initial SiamRPN ROS2 node * New bridge methods for tracking siamrpn * SiamRPN ROS2 node with built-in detector * Removed unused imports * Added missing description on siamrpn docstring * Fixed siamrpn node name * Minor fix in ros1 main readme * Updated ROS2 main readme, consistent with ROS1 * Minor fix in ros1 readme * Added ROS2 node diagram * Updated ROS2 node readme introductory sections and pose estimation * Updated whole ROS2 node readme for ROS2 specific stuff * Updated default usb cam ROS2 topic * Ros2 nodes for 3D Detection and 2D/3D tracking (opendr-eu#319) * Add ros2 point cloud dataset node * Fix point cloude dataset node args * Update default dataset path * Add voxel 3d detection node * Add output topic to args * Add tracking 3d node * Add tracking 2d fairmot node * Add deep sort ros2 node * Fix style errors * Fix C++ style error * Add device parsing * Move ros2 gitignore to global * Fix image dataset conditions * Fix docstrings * Fix pc dataset comments and conditions * Fix voxel 3d arguments and conditions * Fix ab3dmot conditions * Fix unused device var * Fix deep sort conditions * Fix fairmot conditions * Fix ab3dmot docstrings * Fix style errors * Apply suggestions from code review Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update projects/opendr_ws_2/src/opendr_perception/opendr_perception/object_tracking_2d_deep_sort_node.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Fix parameter names * Fix deep sort inference * Fix deep sort no detections fail * Removed depend on rclcpp for data generation package * Fix bridge imports * Fix interface import * Minor fixes on voxel node based on ros1 voxel node * Future fix for embedded devices * Fixes from ros1 * Minor formatting * Matched arguments with ros1 * Fixed node name * Fixed docstring * Some autoformatting * Some fixes * Various fixes to match ros1 node * Fixes from ros1 * Autoformatting * Some fixes from ros1 * Some fixes from ros1 Co-authored-by: Illia Oleksiienko <io@ece.u.dk> Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * ROS2 node for e2e planner and environment upgrade to Webots R2022b (opendr-eu#358) * ros1 planning package * end to end planner node * end to end planner ros2 node initiated * updated gym environment * planner updated with tests and environment * ROS1 node for e2e planner * Update readme and doc * Delete end_to_end_planner.py * Apply suggestions from code review Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Apply suggestions from code review * change the world to Webots 2022b initiated * apply suggestions from code review, update doc * Update projects/opendr_ws/src/planning/scripts/end_to_end_planner.py Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> * Update e2e_planning_learner.py * Update e2e_planning_learner.py * Update UAV_depth_planning_env.py * Update test_end_to_end_planning.py * Update euler_quaternion_transformations.py * Update obstacle_randomizer.py * Update sys_utils.py * Update dependencies.ini * changes for test learner independent from Webots * Webots world updated to R2022b * ROS1 node fix for 2022b version * ROS2 node for e2e planner * ROS2 node for e2e planner * cleanup * end-to-end planning ros2 node webots world launcher * disable ros-numpy package dependency * license test * cleanup * Apply suggestions from code review Co-authored-by: ad-daniel <44834743+ad-daniel@users.noreply.github.com> * Apply suggestions from code review * Apply suggestions from code review - fix for webots-ros2 apt installation. * fix driver name. * fix docs Webots version * Update src/opendr/planning/end_to_end_planning/__init__.py Co-authored-by: ad-daniel <44834743+ad-daniel@users.noreply.github.com> Co-authored-by: Kostas Tsampazis <27914645+tsampazk@users.noreply.github.com> Co-authored-by: ad-daniel <daniel.dias@epfl.ch> Co-authored-by: ad-daniel <44834743+ad-daniel@users.noreply.github.com> * Added hr pose estimation entry in setup * Fixed warning * HR Pose Estimation ROS2 node * Added hr pose estimation node entry * Added hr pose estimation node entry in index * Added missing dot * Image-based facial emotion estimation ROS2 node (opendr-eu#346) * ros2 node added * pep8 style fixed * Added new facial emotion estimation in setup.py * Applied fixes from ros1 node * ROS2 update * Fixes for ROS2 facial emotion node * Minor fix for float confidence casting in category * Fixed setup.py entry for facial emotion estimation ROS2 node Co-authored-by: tsampazk <27914645+tsampazk@users.noreply.github.com> * test different imports for imports that break tests * Revert old imports on learner * Remove tools that get imported by learner with full path * Added init files in facial emotion estimation algorithm directories * Removed importing of stuff that are not used from outside the src of this tool * Added another missing init * Reintroduced wrongly removed import of datasets in init * Fix panoptic segmentation * Apply suggestions from code review Co-authored-by: ad-daniel <44834743+ad-daniel@users.noreply.github.com> * Fixed node names in run commands * Remove comment of additional installations * Removed runtime section * Removed additional skipped directory * Some fixes in the audio node docs * Fix audio_common_msgs for ROS2 * Added engine dependency in end_to_end_planning * Added missing packages in packages.txt and rearranged them * Revert "Fix audio_common_msgs for ROS2" This reverts commit dae3cde. * Undo audio fix * Fixed planning bridge dependency name * Fixed default audio argument for ros 2 * Added audio prerequisites information for default audio ros package * Possible fix for single object tracking * Minor docs typo * Added note on landmark based facial reco about lack of pretrained model * Remove logging of image shape Co-authored-by: ad-daniel <44834743+ad-daniel@users.noreply.github.com> Co-authored-by: Stefania Pedrazzi <stefaniapedrazzi@users.noreply.github.com> Co-authored-by: Jelle <43064291+jelledouwe@users.noreply.github.com> Co-authored-by: Nikolaos Passalis <passalis@users.noreply.github.com> Co-authored-by: Lukas Hedegaard <lukasxhedegaard@gmail.com> Co-authored-by: Quoc Nguyen <53263073+minhquoc0712@users.noreply.github.com> Co-authored-by: charsyme <63857415+charsyme@users.noreply.github.com> Co-authored-by: Niclas <49001036+vniclas@users.noreply.github.com> Co-authored-by: aselimc <canakcia@cs.uni-freiburg.de> Co-authored-by: Ahmet Selim Çanakçı <73101853+aselimc@users.noreply.github.com> Co-authored-by: Negar Heidari <36771997+negarhdr@users.noreply.github.com> Co-authored-by: ekakalet <63847549+ekakalet@users.noreply.github.com> Co-authored-by: ad-daniel <daniel.dias@epfl.ch> Co-authored-by: Illia Oleksiienko <io@ece.au.dk> Co-authored-by: Illia Oleksiienko <io@ece.u.dk> Co-authored-by: halil93ibrahim <halil@ece.au.dk>
This PR contains a new ROS2 (Foxy-Fitzroy version) workspace located in the
projects
directory and, for now, it serves totest and finalize the structure, naming, etc.,gather and finalize all ROS2 nodes in a unified PR. Right now there are nodocstrings(docstrings added), documentation or READMEs. This description will get updated for any additions.Contents:
opendr_perception
python packageContains a subscriber tester node (tester), that subscribes to the messages published by the pose estimation node forTesting can be performed as described in steps 9 and 10 of Building and Running below.testing
opendr_ros2_bridge
python packagebridge.py
which includes a class with methods to convert images, poses, etc. from and to ROS2 messagescv_bridge
which is included in thevision_opencv
packageopendr_ros2_messages
CMake packageOpenDRPose2D
andOpenDRPose2DKeypoint
The logic behind the structuring of the packages and nodes is similar to OpenDR's ROS1 packages/nodes.
Below you can find instructions to install, build and run the nodes for testing. Note that i did everything on a system with ROS1 already installed.
I faced many issues along the way that might reappear in a fresh install of ROS2, etc., so if any problems/errors occur following the instructions please get in touch with me, to possibly save you some time.
Installation
dashing
withfoxy
)sudo apt-get install ros-foxy-vision-msgs
as discussed belowsudo apt install python3-colcon-common-extensions
ros2 run usb_cam usb_cam_node_exe
to run it after installation, which seems to work fineBuilding and Running
opendr_ws_2
directorycv_bridge
via the instructions in its README, excluding the last step(build). There seems to be no need to build it, as it will get built along with the rest of the packages later.opendr_ws_2
) as the previous step leaves you insidevision_opencv
dircolcon build
. install/setup.bash
ros2 run opendr_perception pose_estimation
to start the pose estimation node (or any other existing node)ros2 run usb_cam usb_cam_node_exe
to grab images from a webcamros2 run rqt_image_view rqt_image_view
and select the corresponding topic to view the image resultros2 topic echo opendr/poses
to view the pose message. Note that it is not really human readable in that form, it should be read in another node and converted into an OpenDR pose object to have access to human-friendly print methods.* If you are using conda, check out Illia's comment down below. Thanks @iliiliiliili !
To be added
ROS2 nodes to be added according to what ROS1 nodes exist already:
Perception package:
ros2
branch)ros2
branch)I will directly add theWIP ROS2 node onros2
branch)ros2
branch)Data generation package:
Simulation package:
Planning package:
Ros nodes e2e planner #286, new PR will be opened for ROS2ROS2 node for e2e planner and environment upgrade to Webots R2022b #358)Edit1: Updated the last steps of the instructions as well as the contents list as per the latest changes.
Edit2: Added information in contents list about the new
opendr_ros2_messages
. added TODO list for remaining nodes