Skip to content
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

Merged
merged 163 commits into from
Dec 23, 2022
Merged

ROS2 workspace and example nodes #256

merged 163 commits into from
Dec 23, 2022

Conversation

tsampazk
Copy link
Collaborator

@tsampazk tsampazk commented May 10, 2022

This PR contains a new ROS2 (Foxy-Fitzroy version) workspace located in the projects directory and, for now, it serves to test and finalize the structure, naming, etc., gather and finalize all ROS2 nodes in a unified PR. Right now there are no docstrings (docstrings added), documentation or READMEs. This description will get updated for any additions.

Contents:

  1. opendr_perception python package
    • Contains a pose estimation node
    • Contains fall detection node
    • Contains object detection 2d centernet/detr/ssd/yolov3 nodes
    • Contains face detection retinaface node
    • Contains face recognition node
    • Contains semantic segmentation bisenet node
    • Contains a subscriber tester node (tester), that subscribes to the messages published by the pose estimation node for
      testing
      Testing can be performed as described in steps 9 and 10 of Building and Running below.
  2. opendr_ros2_bridge python package
    • Contains bridge.py which includes a class with methods to convert images, poses, etc. from and to ROS2 messages
    • This uses cv_bridge which is included in the vision_opencv package
  3. opendr_ros2_messages CMake package

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

  • To install ROS2 i followed this tutorial (section 2), which installs the 'foxy' release of ROS2. (Note that on '(7) configure environment variables', you need to replace dashing with foxy)
  • Edit: At this point you might need to run sudo apt-get install ros-foxy-vision-msgs as discussed below
  • Install colcon, basically just sudo apt install python3-colcon-common-extensions
  • Install ros2 usb cam to test with local webcam. In my case i use ros2 run usb_cam usb_cam_node_exe to run it after installation, which seems to work fine

Building and Running

  1. Navigate to your OpenDR installation and activate it as usual
  2. Navigate to workspace root, opendr_ws_2 directory
  3. Install cv_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.
  4. Navigate to the workspace root (opendr_ws_2) as the previous step leaves you inside vision_opencv dir
  5. Run colcon build
  6. Run . install/setup.bash
  7. Run ros2 run opendr_perception pose_estimation to start the pose estimation node (or any other existing node)
  8. In a new terminal run ros2 run usb_cam usb_cam_node_exe to grab images from a webcam
  9. In a new terminal run ros2 run rqt_image_view rqt_image_view and select the corresponding topic to view the image result
  10. In a new terminal run ros2 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:


Data generation package:


Simulation package:


Planning package:


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

@tsampazk tsampazk added the enhancement New feature or request label May 10, 2022
@tsampazk tsampazk self-assigned this May 10, 2022
@tsampazk
Copy link
Collaborator Author

tsampazk commented Jun 8, 2022

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 ros2 branch and consequently on this PR, or do you think we should handle it differently?

@ad-daniel
Copy link
Collaborator

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.
@passalis @stefaniapedrazzi unless you guys see a better way

@tsampazk
Copy link
Collaborator Author

tsampazk commented Jun 9, 2022

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.

@vniclas
Copy link
Collaborator

vniclas commented Jun 20, 2022

@tsampazk thanks for your detailed instructions.
I tried following your steps but am running into the following issue ModuleNotFoundError: No module named 'vision_msgs'. Note that I am using a python virtual environment as created by the ./bin/install.sh script. Have you experienced something similar?

@tsampazk
Copy link
Collaborator Author

@tsampazk thanks for your detailed instructions. I tried following your steps but am running into the following issue ModuleNotFoundError: No module named 'vision_msgs'. Note that I am using a python virtual environment as created by the ./bin/install.sh script. Have you experienced something similar?

Hey @vniclas ! Could you run this rosdep install -i --from-path src --rosdistro foxy -y on the root workspace directory and try again?

@vniclas
Copy link
Collaborator

vniclas commented Jun 21, 2022

The tests as described in the vision_opencv/cv_bridge readme pass. Sadly, I cannot run your proposed command due to the same error cannot locate rosdep definition for [vision_msgs].
I tried rebuilding the entire OpenDR environment from scratch using this branch but it doesn't succeed anymore. However, I'm not sure that those errors are related. I'll open a bug ticket tomorrow. In a nutshell, I can't build the C++ package face_recognition anymore due to casting errors.

@tsampazk
Copy link
Collaborator Author

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 sudo apt-get install ros-foxy-vision-msgs first, before the rosdep install... command. I think that i just missed one or both of these commands in the instructions, or mistakenly thought that they where included somewhere in the links i provided, so i omitted them. It seems curious though, because i think that @ad-daniel and @passalis both ran this successfully without mentioning anything.

If even the above doesn't work maybe you missed the steps in the ROS2 installation regarding the keys, etc.:

  1. sudo apt update && sudo apt install curl gnupg2 lsb-release
  2. curl http://repo.ros2.org/repos.key | sudo apt-key add -
  3. sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntulsb_release -cs main" > /etc/apt/sources.list.d/ros2-latest.list'

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.

@vniclas
Copy link
Collaborator

vniclas commented Jun 22, 2022

Running sudo apt-get install ros-foxy-vision-msgs solved it. Thanks! I also thought that this was included in the default installation.

tsampazk and others added 9 commits July 11, 2022 16:45
…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
@charsyme
Copy link
Collaborator

charsyme commented Aug 29, 2022

@tsampazk Is the licence of this file correct ?

# Copyright 2017 Open Source Robotics Foundation, Inc.

My implementation in #291 is failing due to not containing the usual OpenDR licence.

@tsampazk
Copy link
Collaborator Author

@tsampazk Is the licence of this file correct ?

# Copyright 2017 Open Source Robotics Foundation, Inc.

My implementation in #291 is failing due to not containing the usual OpenDR licence.

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.

@charsyme
Copy link
Collaborator

charsyme commented Aug 29, 2022

@tsampazk You are right, I didn't notice you added exceptions in checking the OpenDR licence to those files.

@tsampazk
Copy link
Collaborator Author

You beat me to it Daniel, thanks for the audio installation! 😆 I am now making the required changes in the readme.

@tsampazk tsampazk requested a review from ad-daniel December 23, 2022 15:58
Copy link
Collaborator

@ad-daniel ad-daniel left a 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!

@ad-daniel
Copy link
Collaborator

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 test release installed multiple tools even in the separate wheel test, rather than just installing engine+tool. It might have been necessary before but doesn't seem to be the case anymore. Additionally, some issues emerge just in this scenario (typically cases where no version limits are specified). Things work if another tool indirectly sets a limit, but would break when installed on it's own.

Copy link
Collaborator

@passalis passalis left a 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!

@ad-daniel ad-daniel merged commit 65989cc into develop Dec 23, 2022
@ad-daniel ad-daniel deleted the ros2 branch December 23, 2022 19:53
lucamarchionni pushed a commit to lucamarchionni/opendr that referenced this pull request Jun 10, 2024
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request test release Tests if a wheel created from a branch runs correctly test sources Run style checks
Projects
None yet
Development

Successfully merging this pull request may close these issues.