From 218ff0535b64e5ccb8104e9e9e3adb25391a4908 Mon Sep 17 00:00:00 2001 From: 23-yoshikawa Date: Sun, 23 Jun 2024 19:11:15 +0900 Subject: [PATCH 1/3] =?UTF-8?q?imshow=E3=83=91=E3=83=83=E3=82=B1=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=82=92python=E3=81=AB=E5=86=8D=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/imshow/CMakeLists.txt | 41 ---------------------------- app/imshow/imshow/__init__.py | 0 app/imshow/imshow/imshow.py | 27 ++++++++++++++++++ app/imshow/include/imshow/imshow.hpp | 13 --------- app/imshow/package.xml | 13 ++------- app/imshow/setup.cfg | 4 +++ app/imshow/setup.py | 29 ++++++++++++++++++++ app/imshow/src/imshow.cpp | 20 -------------- app/imshow/src/main.cpp | 10 ------- 9 files changed, 63 insertions(+), 94 deletions(-) delete mode 100644 app/imshow/CMakeLists.txt create mode 100644 app/imshow/imshow/__init__.py create mode 100644 app/imshow/imshow/imshow.py delete mode 100644 app/imshow/include/imshow/imshow.hpp create mode 100644 app/imshow/setup.cfg create mode 100644 app/imshow/setup.py delete mode 100644 app/imshow/src/imshow.cpp delete mode 100644 app/imshow/src/main.cpp diff --git a/app/imshow/CMakeLists.txt b/app/imshow/CMakeLists.txt deleted file mode 100644 index 9fdd9e9..0000000 --- a/app/imshow/CMakeLists.txt +++ /dev/null @@ -1,41 +0,0 @@ -cmake_minimum_required(VERSION 3.8) -project(imshow) - -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) -endif() - -# find dependencies -find_package(ament_cmake REQUIRED) -find_package(rclcpp REQUIRED) -find_package(sensor_msgs REQUIRED) -find_package(cv_bridge REQUIRED) -find_package(image_transport REQUIRED) -find_package(OpenCV REQUIRED) -# uncomment the following section in order to fill in -# further dependencies manually. -# find_package( REQUIRED) - -# Create executable -add_executable(imshow src/imshow.cpp src/main.cpp) -target_include_directories(imshow - PUBLIC - $ - $ - ${OpenCV_INCLUDE_DIRS} -) - -# Link dependencies -ament_target_dependencies(imshow rclcpp sensor_msgs cv_bridge image_transport) - -target_link_libraries(imshow ${OpenCV_LIBRARIES}) - -# Install targets -install(TARGETS - imshow - DESTINATION lib/${PROJECT_NAME}) - -install(DIRECTORY launch -DESTINATION share/${PROJECT_NAME}) - -ament_package() diff --git a/app/imshow/imshow/__init__.py b/app/imshow/imshow/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/imshow/imshow/imshow.py b/app/imshow/imshow/imshow.py new file mode 100644 index 0000000..8553241 --- /dev/null +++ b/app/imshow/imshow/imshow.py @@ -0,0 +1,27 @@ +import rclpy +from rclpy.node import Node +from sensor_msgs.msg import Image +from cv_bridge import CvBridge +import cv2 + + +class Imshow(Node): + def __init__(self): + super().__init__('imshow') + self.subscription=self.create_subscription(Image, 'camera_image', self.listener_callback, 10) + self.bridge=CvBridge() + + def listener_callback(self, msg): + frame=self.bridge.imgmsg_to_cv2(msg, "bgr8") + cv2.imshow('Camera', frame) + cv2.waitKey(1) + +def main(args=None): + rclpy.init(args=args) + imshow=Imshow() + rclpy.spin(imshow) + imshow.destroy_node() + rclpy.shutdown() + +if __name__=='__main__': + main() \ No newline at end of file diff --git a/app/imshow/include/imshow/imshow.hpp b/app/imshow/include/imshow/imshow.hpp deleted file mode 100644 index 698d842..0000000 --- a/app/imshow/include/imshow/imshow.hpp +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include - -class Imshow : public rclcpp::Node { -public: - Imshow(); - -private: - void image_callback(const sensor_msgs::msg::Image::SharedPtr msg); - rclcpp::Subscription::SharedPtr subscription_; -}; diff --git a/app/imshow/package.xml b/app/imshow/package.xml index 7eaf47e..56f872a 100644 --- a/app/imshow/package.xml +++ b/app/imshow/package.xml @@ -4,20 +4,13 @@ imshow 0.0.0 ROS 2 package for receiving images - hiro + hiro MIT License - ament_cmake - rclcpp - sensor_msgs - cv_bridge - image_transport - rclcpp + rclpy sensor_msgs cv_bridge - image_transport - - ament_cmake + ament_python diff --git a/app/imshow/setup.cfg b/app/imshow/setup.cfg new file mode 100644 index 0000000..433e62c --- /dev/null +++ b/app/imshow/setup.cfg @@ -0,0 +1,4 @@ +[develop] +script_dir=$base/lib/imshow +[install] +install_scripts=$base/lib/imshow \ No newline at end of file diff --git a/app/imshow/setup.py b/app/imshow/setup.py new file mode 100644 index 0000000..ed1eb88 --- /dev/null +++ b/app/imshow/setup.py @@ -0,0 +1,29 @@ +import os +from glob import glob + +from setuptools import find_packages, setup + +package_name = 'imshow' + +setup( + name=package_name, + version='0.0.0', + packages=[package_name], + data_files=[ + ('share/ament_index/resource_index/packages',['resource/' + package_name]), + ('share/' + package_name,['package.xml']), + (os.path.join('share',package_name,'launch'),glob(os.path.join('launch','*'))) + ], + install_requires=['setuptools'], + zip_safe=True, + maintainer='hiro', + maintainer_email='yoshikawa.h.ah@m.titech.ac.jp', + description='Image display for ROS2', + license='MIT License', + tests_require=['pytest'], + entry_points={ + 'console_scripts': [ + 'imshow = imshow.imshow:main', + ], + }, +) diff --git a/app/imshow/src/imshow.cpp b/app/imshow/src/imshow.cpp deleted file mode 100644 index 6191576..0000000 --- a/app/imshow/src/imshow.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "imshow/imshow.hpp" - -Imshow::Imshow() : Node("imshow") { - subscription_ = this->create_subscription( - "camera/image", - 10, - std::bind(&Imshow::image_callback, this, std::placeholders::_1) - ); -} - -void Imshow::image_callback(const sensor_msgs::msg::Image::SharedPtr msg) { - try { - const cv::Mat frame = cv_bridge::toCvCopy(msg, "bgr8")->image; - cv::imshow("Received Image", frame); - cv::waitKey(1); - } catch (const cv_bridge::Exception& e) { - RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); - return; - } -} diff --git a/app/imshow/src/main.cpp b/app/imshow/src/main.cpp deleted file mode 100644 index 0726bc2..0000000 --- a/app/imshow/src/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "imshow/imshow.hpp" -#include - -int main(int argc, char* argv[]) { - rclcpp::init(argc, argv); - auto node = std::make_shared(); - rclcpp::spin(node); - rclcpp::shutdown(); - return 0; -} From b6a3b4c67873240059b7e796ceb6697c734e5919 Mon Sep 17 00:00:00 2001 From: 23-yoshikawa Date: Sun, 23 Jun 2024 20:03:04 +0900 Subject: [PATCH 2/3] =?UTF-8?q?resource=E3=83=95=E3=82=A9=E3=83=AB?= =?UTF-8?q?=E3=83=80=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/imshow/resource/imshow | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/imshow/resource/imshow diff --git a/app/imshow/resource/imshow b/app/imshow/resource/imshow new file mode 100644 index 0000000..e69de29 From dde640ce5cfeb0ff4f149eee3d9970fa0a74f5be Mon Sep 17 00:00:00 2001 From: 23-yoshikawa <136178082+23-yoshikawa@users.noreply.github.com> Date: Mon, 24 Jun 2024 00:47:04 +0900 Subject: [PATCH 3/3] Update app/imshow/setup.py Co-authored-by: H1rono_K <54711422+H1rono@users.noreply.github.com> --- app/imshow/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/imshow/setup.py b/app/imshow/setup.py index ed1eb88..b5371bf 100644 --- a/app/imshow/setup.py +++ b/app/imshow/setup.py @@ -20,7 +20,7 @@ maintainer_email='yoshikawa.h.ah@m.titech.ac.jp', description='Image display for ROS2', license='MIT License', - tests_require=['pytest'], + tests_require=[], entry_points={ 'console_scripts': [ 'imshow = imshow.imshow:main',