# PM Vision Assistant
ROS2 Vision-Assistant to intuitivly build reusable vision-pipelines based on openCV functions.
## 1. Description and Concept of the pm vision manager
The pm vision assistant (pm_vision_manager) is designed to intuitivly build reusable vision-pipelines based on openCV (and other python and custom) functions. It's basic idea is that the vision assistant manager runs vision functions (mostly based on openCV) defined in an processfile.json successively on an initial image to extract specific features. In order to do so, the vision manager offers some simple services, with which vision pipleines can be executed (ExecuteVision) or interactivly build (StartVisionAssistant). While a vision assistant service is running, a processed (and the original) image you subscribed to will be displayed while you can modify the vision pipeline in the processfile.json on the fly. It also has a feature to crossvalidate images from a database with the loaded vision_process.json.
In precision assembly processes the usage of camera vision and image processing is prerequisite. In order to create, execute and manage image pipelines for precision assembly task this package has been created. The pm vision manager operates using vision pipelines that are defined in a json file format. By defining camera specifications (with its resprecitve topic on which the camera is publishing) the pm vision manager can execute these process file on any camera image. Based on this concept, the user can define custom vision pipelines in json format with no python coding needed. To assist with the task, there is also an app for creating process.json files. Using the service of the pm vision manager to start a vision assistant, the operator can view changes on the process.json in realtime an thus rapidly build up new vision pipelines when teaching in a new assembly process. Additionally a cross validation among a image database can be run, to check how changes on a process.json would have affect past assembly parts.
Currently the assistant is designed for camera setups with telecentric lenses only! It is currently intended to be used in precision assembly tasks for fast vision pipeline deployment.
## 2. Package Overview
* `config`: Contains the vision_assistant_path_config.yaml, the vision_assistant_config.yaml and the demo webcam_config.yaml.
* `pm_vision_manager`: Contains the node file for the pm_vision_manager, the python classes for the assistant and a webcam image publisher
* `vision_functions`: Description of all the vision functions supported by the vision assistant! These files are used by the vision_assistant_app.
* `vision_db` (not mandatory to run the node): Default demo database
* `vision_processes` (not mandatory to run the node): Default demo folder for processes with a process_demo.json
## 3. Configuring the pm_vision_manager
Go into pm_vision-manager/config/vision_assistant_path_config.yaml and change:
* `process_library_path`: This path specifies where the pm_vision_manager looks for process files (root folder of the process libary). You can specify any path here. To change it to default, correct the path in the vision_assistant_path_config.yaml.
* `vision_database_path`: This path specifies where the pm_vision_manager will save images, when executing visions (root folder of images). Images will be saved in a folder being named after the process id (name of the process). To change it to default, correct the path in the vision_assistant_path_config.yaml.
* `function_libary_path`: This path specifies where to find the vision functions libarys. The vision functons libary consists of multple yaml-files that descripe the functionality and the input parameter of a vision function. The vision functions libary is used by the vision app, to build process_files. Correct the path according to the one in the vision_assistant_path_config.yaml!
* `camera_config_path`: This path specifies where to find all the definitions for available cameras (root folder of the camera libary). You can specify any path here. To change it to default, correct the path in the vision_assistant_path_config.yaml.
* `vision_assistant_config`: This path specifies where the pm_vision manager looks for the vision_assistant_config. Correct the path according to the one in the vision_assistant_path_config.yaml! In the vision_assistant_config file, the image output format of the pm_vision_manager can be specified.
Further explanations:
* `vision_assistant_path_config.yaml`: This file specifies where to find the config, vision processes, camera configurations and the image data base. The path configuration file is transfered to '/home/USER/ros2_ws/install/pm_vision_manager/share' when building the package.
* `camera_config.yaml`: The camera_config.yamls specifie the parameters for the connected camera (e.a. webcam). Some of the input and (all) output parameter of the vision functions are specified in microns (calculated by the definitions in camera_config) and refered to the camera cooridnate system.
*
## 4. Getting Started
To launch the pm vision manager execute
```
ros2 launch pm_vision_manager pm_vision.launch.py
```
To start a demo image publisher, start the webcam publisher (a webcam needs to be connected) to publish topic 'video_frames'
```
ros2 run pm_vision_manager vision_webcam_publisher
```
## 5. Services
After launching the pm_vision_manager, three services will be available:
```
ExecuteVision
```
Running this service call, the pm_vision_manager will subsribe to the topic specified in the camera_config_file. It will then execute the vision pipeline defined in the process_filname.json. There are also some other inputs to the service call, that specify how the call will behave:
* `process_filename` (str): Filename or relative path to the process_libary of the process file (json)
* `camera_config_filename` (str): Filename or relative path to the camera config file (yaml)
* `process_uid` (str): ID of the process (should be random and/or not yet in use)
* `image_display_time` (int): Time the image will be displayed after vision finished
* `run_cross_validation`: If this is set to true, the vision pipeline will additionally be executed on images in the database (database_path/process_name/). Results of the cross_validation will be saved in (database_path/process_name/Results/).
------------------------
* `success` (bool): returns true if the vision pipeline exited with no error (on the subscribed image). In case of "db_cross_val_only" the success value refers to the last image evaluated from the database.
* `results_dict` (str): String of the vision results dictionary
* `results_path` (str): Path of the process results json
## 5. To Do's
* Conditions
## 6. How to add new vision functions to the pm vision manager
TBD
VS CODE gnome-terminal Issue
unset GTK_PATH
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
PM 视觉助手 ROS2 Vision-Assistant 基于 openCV 和其他 python 函数直观地构建可重用的视觉管道。 描述 pm vision assistant (pm_vision_manager) 旨在基于 openCV(以及其他 python 和自定义)函数直观地构建可重用的视觉管道。它的基本思想是,视觉助手管理器在初始图像上连续运行processfile.json中定义的视觉函数(主要基于 openCV)以提取特定特征。为此,Vision Manager 提供了一些基本服务,通过这些服务可以执行 Vision Pipleines (ExecuteVision) 或交互式构建 (StartVisionAssistant)。当视觉助手服务运行时,将显示您订阅的已处理(和原始)图像,同时您可以在 processfile.json 中动态修改视觉管道。它还具有将数据库中的图像与加载vision_process.json交叉验证的功能。
资源推荐
资源详情
资源评论
收起资源包目录
基于 openCV 和其他 python 函数直观地构建可重用的视觉管道 (138个子文件)
setup.cfg 103B
setup.cfg 95B
Examples_vision_assistant_API.ipynb 13KB
c_cpp_properties.json 3KB
process_demo.json 3KB
c_cpp_properties.json 2KB
settings.json 2KB
settings.json 2KB
settings.json 2KB
13_Var3.json 1KB
13_Var2.json 1KB
13_Var1.json 1KB
c_cpp_properties.json 1KB
17_Var4.json 754B
vision_processesprocess_demo_results_Webcam.json 500B
process_demo_results_Webcam.json 423B
results_testl.json 365B
UFC_Paper_Vision_Point_3_helper.json 166B
UFC_Paper_Vision_Point_2_helper.json 166B
UFC_Paper_Vision_Point_1_helper.json 166B
UFC_Paper_Surface_Center_Point.json 165B
UFC_Paper_Laser_Mes_Frame_2.json 162B
UFC_Paper_Laser_Mes_Frame_3.json 162B
UFC_Paper_Laser_Mes_Frame_1.json 162B
UFC_Paper_Laser_Mes_Frame_4.json 162B
UFC_Paper_Gripping_Point.json 159B
UFC_Paper_Vision_Point_2.json 159B
UFC_Paper_Vision_Point_3.json 159B
UFC_Paper_Vision_Point_1.json 159B
UFC_Paper_Vision_Point_4.json 159B
bla.json 138B
README.md 7KB
README.md 2KB
README.md 5B
VisionResponse.msg 130B
CrossValidation.msg 101B
VisionLine.msg 91B
VisionPoint.msg 85B
VisionResults.msg 82B
VisionCircle.msg 40B
VisionArea.msg 0B
pm_vision_app 0B
pm_vision_manager 0B
vision_pipline_processing.py 47KB
vision_assistant_class.py 32KB
vision_builder_widget.py 25KB
camera_ros_interfaces.py 17KB
image_processing_handler.py 17KB
line_corner_detec.py 14KB
vision_assistant_API.py 13KB
type_classes.py 11KB
VisionAssistantWindow.py 9KB
ImageDisplayWidget.py 9KB
vision_node.py 9KB
MainMenuWidget.py 8KB
vision_functions_loader.py 8KB
vision_pipeline_class.py 8KB
geometry_utils.py 5KB
manager_configuration.py 4KB
vision_functions_class.py 4KB
webcam_image_pub.py 3KB
import sys.py 3KB
vision_assistant_app.py 2KB
setup.py 2KB
vision_sub.py 2KB
test_vision_pipline_processing.py 2KB
tests.py 2KB
Simple_Vision_Assistant_Example.py 1KB
vision_utils.py 1KB
setup.py 997B
test_copyright.py 962B
test_copyright.py 962B
test_flake8.py 884B
test_flake8.py 884B
test_pep257.py 803B
test_pep257.py 803B
pm_vision.launch.py 708B
Launch_vision_assistant_Example.py 692B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
pm_vision_app.cpython-310.pyc 15KB
vision_assistant_API.cpython-310.pyc 8KB
vision_pipeline_class.cpython-310.pyc 6KB
type_classes.cpython-310.pyc 6KB
vision_functions_loader.cpython-310.pyc 4KB
geometry_utils.cpython-310.pyc 4KB
vision_functions_class.cpython-310.pyc 2KB
webcam_image_pub.cpython-310.pyc 2KB
__init__.cpython-310.pyc 183B
vision_assistant_app.cpython-310.pyc 158B
__init__.cpython-310.pyc 151B
ExecuteVision.srv 192B
DemoSetExposure.srv 38B
共 138 条
- 1
- 2
资源评论
hakesashou
- 粉丝: 6244
- 资源: 1640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- www.chajianxw.com_ibfjkeafbnhjoedpihdjgaapmhnkhape.zip
- 大智慧多股同列加入分时指标
- GTools Python库
- Response surface methodology
- AES加密解密算法的Verilog实现程序
- 【Unity角色控制器】Invector Third Person Controller - Basic Locomotion
- 基于django的鲜花分类系统的设计与实现
- 在线外卖平台源码 美团外卖源码 支持多商户+多样化配送费模式+本土外卖平台+支持第三方配送
- 卷积神经网络(CNN)-池化层python案例
- Wireshark Lua API主要接口
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功