diff --git a/.ci_local_test/README.md b/.ci_local_test/README.md index 7830c823..51347e38 100644 --- a/.ci_local_test/README.md +++ b/.ci_local_test/README.md @@ -1,8 +1,8 @@ -The Jenkinsfile Introduce: +Jenkins file Introduction: -1. The jenkins matchine would scan the ROS2_Openvion project regularly. +1. The Jenkins machine would scan the ROS2_OpenVINO project regularly. it would trigger test when scan the PR or other change. diff --git a/.ci_local_test/ros2_openvino_toolkit_test/docker_run.sh b/.ci_local_test/ros2_openvino_toolkit_test/docker_run.sh index 91a19139..b1ba19a8 100755 --- a/.ci_local_test/ros2_openvino_toolkit_test/docker_run.sh +++ b/.ci_local_test/ros2_openvino_toolkit_test/docker_run.sh @@ -1,43 +1,33 @@ #!/bin/bash export DISPLAY=:0 - export work_dir=$PWD - -function run_container() { - - docker images | grep ros2_openvino_docker - - if [ $? -eq 0 ] - then - echo "the image of ros2_openvino_docker:01 existence" +function run_container() +{ + if docker images -q ros2_openvino_docker:01 &>/dev/null; then + echo "The container ros2_openvino_docker:01 image exists" docker rmi -f ros2_openvino_docker:01 fi docker ps -a | grep ros2_openvino_container - if [ $? -eq 0 ] - then + if docker ps -aq -f name=ros2_openvino_container; then + echo "The container ros2_openvino_container exists. Removing the container..." docker rm -f ros2_openvino_container fi # Removing some docker image .. # Using jenkins server ros2_openvino_toolkit code instead of git clone code. - cd $work_dir && sed -i '/RUN git clone -b ros2/d' Dockerfile + cd "$work_dir" && sed -i '/RUN git clone -b ros2/d' Dockerfile # add the jpg for test. - cd $work_dir && sed -i '$i COPY jpg /root/jpg' Dockerfile - - cd $work_dir && docker build --build-arg ROS_PRE_INSTALLED_PKG=galactic-desktop --build-arg VERSION=galactic -t ros2_openvino_docker:01 . - cd $work_dir && docker images - docker run -i --privileged=true --device=/dev/dri -v $work_dir/ros2_openvino_toolkit:/root/catkin_ws/src/ros2_openvino_toolkit -v $HOME/.Xauthority:/root/.Xauthority -e GDK_SCALE -v $work_dir/test_cases:/root/test_cases --name ros2_openvino_container ros2_openvino_docker:01 bash -c "cd /root/test_cases && ./run.sh galactic" + cd "$work_dir" && sed -i '$i COPY jpg /root/jpg' Dockerfile + cd "$work_dir" && docker build --build-arg ROS_PRE_INSTALLED_PKG=galactic-desktop --build-arg VERSION=galactic -t ros2_openvino_docker:01 . + cd "$work_dir" && docker images + docker run -i --privileged=true --device=/dev/dri -v "$work_dir"/ros2_openvino_toolkit:/root/catkin_ws/src/ros2_openvino_toolkit -v "$HOME"/.Xauthority:/root/.Xauthority -e GDK_SCALE -v "$work_dir"/test_cases:/root/test_cases --name ros2_openvino_container ros2_openvino_docker:01 bash -c "cd /root/test_cases && ./run.sh galactic" } -run_container -if [ $? -ne 0 ] -then - echo "Test fail" - exit -1 +if ! run_container; then + echo "Test failed" + exit 1 fi - - diff --git a/.ci_local_test/ros2_openvino_toolkit_test/test_cases/ros2_openvino_tool_model_download.sh b/.ci_local_test/ros2_openvino_toolkit_test/test_cases/ros2_openvino_tool_model_download.sh index e2678f36..dd3d842e 100755 --- a/.ci_local_test/ros2_openvino_toolkit_test/test_cases/ros2_openvino_tool_model_download.sh +++ b/.ci_local_test/ros2_openvino_toolkit_test/test_cases/ros2_openvino_tool_model_download.sh @@ -3,17 +3,16 @@ mkdir -p /opt/openvino_toolkit/models #apt install -y python-pip apt install -y python3.8-venv -cd ~ && python3 -m venv openvino_env && source openvino_env/bin/activate +cd ~ && python3 -m venv openvino_env +#shellcheck source=/dev/null +source openvino_env/bin/activate python -m pip install --upgrade pip -pip install openvino-dev[tensorflow2,onnx]==2022.3 - +pip install "openvino-dev[tensorflow2,onnx]==2022.3" #Download the optimized Intermediate Representation (IR) of model (execute once) cd ~/catkin_ws/src/ros2_openvino_toolkit/data/model_list && omz_downloader --list download_model.lst -o /opt/openvino_toolkit/models/ - cd ~/catkin_ws/src/ros2_openvino_toolkit/data/model_list && omz_converter --list convert_model.lst -d /opt/openvino_toolkit/models/ -o /opt/openvino_toolkit/models/convert - #Copy label files (execute once) cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/face_detection/face-detection-adas-0001.labels /opt/openvino_toolkit/models/intel/face-detection-adas-0001/FP32/ cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/face_detection/face-detection-adas-0001.labels /opt/openvino_toolkit/models/intel/face-detection-adas-0001/FP16/ @@ -27,4 +26,3 @@ cp /opt/openvino_toolkit/models/convert/public/mask_rcnn_inception_resnet_v2_atr cd /root/test_cases/ && ./yolov5_model_download.sh cd /root/test_cases/ && ./yolov8_model_download.sh - diff --git a/.ci_local_test/ros2_openvino_toolkit_test/test_cases/run.sh b/.ci_local_test/ros2_openvino_toolkit_test/test_cases/run.sh index d13dd828..8e0af8c8 100755 --- a/.ci_local_test/ros2_openvino_toolkit_test/test_cases/run.sh +++ b/.ci_local_test/ros2_openvino_toolkit_test/test_cases/run.sh @@ -7,10 +7,12 @@ then else export ros2_branch=$1 fi -source /root/test_cases/config.sh $ros2_branch +#shellcheck source=/dev/null +source /root/test_cases/config.sh "$ros2_branch" cd /root/catkin_ws && colcon build --symlink-install -cd /root/catkin_ws && source ./install/local_setup.bash +# shellcheck source=/dev/null +source ./install/local_setup.bash apt-get update # apt-get install -y ros-$ros2_branch-diagnostic-updater @@ -31,6 +33,5 @@ result=$? echo "Test ENV:" && df -h && free -g if [ $result -ne 0 ] then - exit -1 + exit 1 fi - diff --git a/.ci_local_test/ros2_openvino_toolkit_test/test_cases/yolov5_model_download.sh b/.ci_local_test/ros2_openvino_toolkit_test/test_cases/yolov5_model_download.sh index f3e50d3b..d5c4a7a8 100755 --- a/.ci_local_test/ros2_openvino_toolkit_test/test_cases/yolov5_model_download.sh +++ b/.ci_local_test/ros2_openvino_toolkit_test/test_cases/yolov5_model_download.sh @@ -5,34 +5,32 @@ cd /root && git clone https://github.com/ultralytics/yolov5.git #Set Environment for Installing YOLOv5 -cd yolov5 +cd yolov5 || exit python3 -m venv yolo_env # Create a virtual python environment +# shellcheck source=/dev/null source yolo_env/bin/activate # Activate environment pip install -r requirements.txt # Install yolov5 prerequisites pip install wheel pip install onnx # Download PyTorch Weights -mkdir -p /root/yolov5/model_convert && cd /root/yolov5/model_convert +mkdir -p /root/yolov5/model_convert && cd /root/yolov5/model_convert || exit wget https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5n.pt -cd /root/yolov5 +cd /root/yolov5 || exit python3 export.py --weights model_convert/yolov5n.pt --include onnx - #2. Convert ONNX files to IR files -cd /root/yolov5/ +cd /root/yolov5/ || exit python3 -m venv ov_env # Create openVINO virtual environment +# shellcheck source=/dev/null source ov_env/bin/activate # Activate environment python -m pip install --upgrade pip # Upgrade pip -pip install openvino[onnx]==2022.3.0 # Install OpenVINO for ONNX -pip install openvino-dev[onnx]==2022.3.0 # Install OpenVINO Dev Tool for ONNX - +pip install "openvino[onnx]==2022.3.0" # Install OpenVINO for ONNX +pip install "openvino-dev[onnx]==2022.3.0" # Install OpenVINO Dev Tool for ONNX -cd /root/yolov5/model_convert +cd /root/yolov5/model_convert || exit mo --input_model yolov5n.onnx - mkdir -p /opt/openvino_toolkit/models/convert/public/yolov5n/FP32/ sudo cp yolov5n.bin yolov5n.mapping yolov5n.xml /opt/openvino_toolkit/models/convert/public/yolov5n/FP32/ - diff --git a/.ci_local_test/ros2_openvino_toolkit_test/test_cases/yolov8_model_download.sh b/.ci_local_test/ros2_openvino_toolkit_test/test_cases/yolov8_model_download.sh index a3879291..bca0df7a 100755 --- a/.ci_local_test/ros2_openvino_toolkit_test/test_cases/yolov8_model_download.sh +++ b/.ci_local_test/ros2_openvino_toolkit_test/test_cases/yolov8_model_download.sh @@ -2,23 +2,21 @@ #Pip install the ultralytics package including all requirements in a Python>=3.7 environment with PyTorch>=1.7. -mkdir -p yolov8 && cd yolov8 +mkdir -p yolov8 && cd yolov8 || exit pip install ultralytics apt install python3.8-venv python3 -m venv openvino_env +# shellcheck source=/dev/null source openvino_env/bin/activate - #Export a YOLOv8n model to a different format like ONNX, CoreML, etc. # export official model yolo export model=yolov8n.pt format=openvino yolo export model=yolov8n-seg.pt format=openvino - # Move to the Recommended Model Path mkdir -p /opt/openvino_toolkit/models/convert/public/FP32/yolov8n mkdir -p /opt/openvino_toolkit/models/convert/public/FP32/yolov8n-seg cp yolov8n_openvino_model/* /opt/openvino_toolkit/models/convert/public/FP32/yolov8n cp yolov8n-seg_openvino_model/* /opt/openvino_toolkit/models/convert/public/FP32/yolov8n-seg - diff --git a/README.md b/README.md index 869fa51c..816412df 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ # Overview ## ROS2 Version Supported -|Branch Name|ROS2 Version Supported|Openvino Version|OS Version| +|Branch Name|ROS2 Version Supported|OpenVINO Version|OS Version| |-----------------------|-----------------------|--------------------------------|----------------------| |[ros2](https://github.com/intel/ros2_openvino_toolkit/tree/ros2)|Galactic, Foxy, Humble|V2022.1, V2022.2, V2022.3|Ubuntu 20.04, Ubuntu 22.04| |[dashing](https://github.com/intel/ros2_openvino_toolkit/tree/dashing)|Dashing|V2022.1, V2022.2, V2022.3|Ubuntu 18.04| @@ -50,12 +50,12 @@ |**OS**|Mandatory|We only tested this project under Ubuntu distros. It is recommended to install the corresponding Ubuntu Distro according to the ROS distro that you select to use. **For example: Ubuntu 18.04 for dashing, Ubuntu 20.04 for Foxy and Galactic, Ubuntu 22.04 for Humble.**| |**ROS2**|Mandatory|We have already supported active ROS distros (Humble, Galactic, Foxy and Dashing (deprecated)). Choose the one matching your needs. You may find the corresponding branch from the table above in section [**ROS2 Version Supported**](#ros2-version-supported).| |**OpenVINO**|Mandatory|The version of OpenVINO toolkit is decided by the OS and ROS2 distros you use. See the table above in Section [**ROS2 Version Supported**](#ros2-version-supported).| -|**Realsense Camera**|Optional|Realsense Camera is optional, you may choose these alternatives as the input: Standard Camera, ROS Image Topic, Video/Image File or RTSP camera.| +|**RealSense Camera**|Optional|RealSense Camera is optional, you may choose these alternatives as the input: Standard Camera, ROS Image Topic, Video/Image File or RTSP camera.| # Introduction ## Design Architecture

Architecture Design -From the view of hirarchical architecture design, the package is divided into different functional components, as shown in below picture. +From the view of hierarchical architecture design, the package is divided into different functional components, as shown in below picture. ![OpenVINO_Architecture](./data/images/design_arch.PNG "OpenVINO RunTime Architecture") @@ -83,8 +83,8 @@ See more from [here](https://github.com/openvinotoolkit/openvino) for Intel Open
ROS Input & Output -- **Diversal Input resources** are data resources to be infered and analyzed with the OpenVINO framework. -- **ROS interfaces and outputs** currently include _Topic_ and _service_. Natively, RViz output and CV image window output are also supported by refactoring topic message and inferrence results. +- **Diverse Input resources** are data resources to be inferred and analyzed with the OpenVINO framework. +- **ROS interfaces and outputs** currently include _Topic_ and _service_. Natively, RViz output and CV image window output are also supported by refactoring topic message and inference results.

@@ -92,7 +92,7 @@ See more from [here](https://github.com/openvinotoolkit/openvino) for Intel Open
Optimized Models -- **Optimized Models** provided by Model Optimizer component of Intel® OpenVINO™ toolkit. Imports trained models from various frameworks (Caffe*, Tensorflow*, MxNet*, ONNX*, Kaldi*) and converts them to a unified intermediate representation file. It also optimizes topologies through node merging, horizontal fusion, eliminating batch normalization, and quantization. It also supports graph freeze and graph summarize along with dynamic input freezing. +- **Optimized Models** provided by Model Optimizer component of Intel® OpenVINO™ toolkit. Imports trained models from various frameworks (Caffe*, TensorFlow*, MxNet*, ONNX*, Kaldi*) and converts them to a unified intermediate representation file. It also optimizes topologies through node merging, horizontal fusion, eliminating batch normalization, and quantization. It also supports graph freeze and graph summarize along with dynamic input freezing.

@@ -103,7 +103,7 @@ From the view of logic implementation, the package introduces the definitions of ![Logic_Flow](./data/images/impletation_logic.PNG "OpenVINO RunTime Logic Flow") -Once a corresponding program is launched with a specified .yaml config file passed in the .launch file or via commandline, _**parameter manager**_ analyzes the configurations about pipeline and the whole framework, then shares the parsed configuration information with pipeline procedure. A _**pipeline instance**_ is created by following the configuration info and is added into _**pipeline manager**_ for lifecycle control and inference action triggering. +Once a corresponding program is launched with a specified .yaml config file passed in the .launch file or via command line, _**parameter manager**_ analyzes the configurations about pipeline and the whole framework, then shares the parsed configuration information with pipeline procedure. A _**pipeline instance**_ is created by following the configuration info and is added into _**pipeline manager**_ for lifecycle control and inference action triggering. The contents in **.yaml config file** should be well structured and follow the supported rules and entity names. Please see [yaml configuration guidance](./doc/quick_start/yaml_configuration_guide.md) for how to create or edit the config files. @@ -111,7 +111,7 @@ The contents in **.yaml config file** should be well structured and follow the s
Pipeline -**Pipeline** fulfills the whole data handling process: initiliazing Input Component for image data gathering and formating; building up the structured inference network and passing the formatted data through the inference network; transfering the inference results and handling output, etc. +**Pipeline** fulfills the whole data handling process: initializing Input Component for image data gathering and formatting; building up the structured inference network and passing the formatted data through the inference network; transfering the inference results and handling output, etc.

@@ -235,7 +235,7 @@ For the snapshot of demo results, refer to the following picture. # Installation and Launching ## Deploy in Local Environment -* Refer to the quick start document for [getting_started_with_ros2](./doc/quick_start/getting_started_with_ros2_ov2.0.md) for detailed installation & lauching instructions. +* Refer to the quick start document for [getting_started_with_ros2](./doc/quick_start/getting_started_with_ros2_ov2.0.md) for detailed installation & launching instructions. * Refer to the quick start document for [yaml configuration guidance](./doc/quick_start/yaml_configuration_guide.md) for detailed configuration guidance. ## Deploy in Docker @@ -274,7 +274,7 @@ For the snapshot of demo results, refer to the following picture. * Report questions, issues and suggestions, using: [issue](https://github.com/intel/ros2_openvino_toolkit/issues). # More Information -* ROS2 OpenVINO discription written in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw +* ROS2 OpenVINO description written in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw ###### *Any security issue should be reported using process at https://01.org/security* diff --git a/data/labels/emotions-recognition/FP32/emotions-recognition-retail-0003.labels b/data/labels/emotions-recognition/FP32/emotions-recognition-retail-0003.labels index 3e3c2ad7..ecbb5a7d 100644 --- a/data/labels/emotions-recognition/FP32/emotions-recognition-retail-0003.labels +++ b/data/labels/emotions-recognition/FP32/emotions-recognition-retail-0003.labels @@ -1,5 +1,5 @@ -neutual +neutral happy sad -supprise +surprise anger diff --git a/doc/quick_start/getting_started_with_Dashing_Ubuntu18.04.md b/doc/quick_start/getting_started_with_Dashing_Ubuntu18.04.md index a4f7c3d0..0a1db9ad 100644 --- a/doc/quick_start/getting_started_with_Dashing_Ubuntu18.04.md +++ b/doc/quick_start/getting_started_with_Dashing_Ubuntu18.04.md @@ -74,7 +74,7 @@ sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_segmentation/fr sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehicle-license-plate-detection-barrier-0106.labels /opt/openvino_toolkit/models/vehicle-license-plate-detection/output/intel/vehicle-license-plate-detection-barrier-0106/FP32 ``` -* If the model (tensorflow, caffe, MXNet, ONNX, Kaldi)need to be converted to intermediate representation (For example the model for object detection) +* If the model (TensorFlow, caffe, MXNet, ONNX, Kaldi)need to be converted to intermediate representation (For example the model for object detection) * ssd_mobilenet_v2_coco ``` cd /opt/openvino_toolkit/models/ @@ -94,7 +94,7 @@ sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehic sudo python3 /opt/intel/openvino_2021/deployment_tools/open_model_zoo/tools/downloader/converter.py --name=yolo-v2-tf --mo /opt/intel/openvino_2021/deployment_tools/model_optimizer/mo.py ``` -* Before launch, check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml, make sure the paramter like model path, label path, inputs are right. +* Before launch, check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml, make sure the parameter like model path, label path, inputs are right. * run face detection sample code input from StandardCamera. ``` ros2 launch dynamic_vino_sample pipeline_people.launch.py @@ -129,7 +129,7 @@ sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehic ``` # More Information -* ROS2 OpenVINO discription writen in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw +* ROS2 OpenVINO description written in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw ###### *Any security issue should be reported using process at https://01.org/security* diff --git a/doc/quick_start/getting_started_with_ros2_ov2.0.md b/doc/quick_start/getting_started_with_ros2_ov2.0.md index 45f79670..c98e2c6e 100644 --- a/doc/quick_start/getting_started_with_ros2_ov2.0.md +++ b/doc/quick_start/getting_started_with_ros2_ov2.0.md @@ -11,7 +11,7 @@ For ROS2 foxy and galactic on ubuntu 20.04: * Install Intel® OpenVINO™ Toolkit Version: 2022.3.
Refer to: [OpenVINO_install_guide](https://docs.openvino.ai/2022.3/openvino_docs_install_guides_installing_openvino_apt.html#doxid-openvino-docs-install-guides-installing-openvino-apt) - * Install from an achive file. Both runtime and development tool are needed, `pip` is recommended for installing the development tool.
+ * Install from an archive file. Both runtime and development tool are needed, `pip` is recommended for installing the development tool.
Refer to: [OpenVINO_devtool_install_guide](https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html) * Install Intel® RealSense™ SDK.
@@ -54,7 +54,7 @@ source ./install/local_setup.bash ## 3. Running the Demo ### Install OpenVINO 2022.3 by PIP OMZ tools are provided for downloading and converting models of open_model_zoo in ov2022.
-Refer to: [OMZtool_guide](https://pypi.org/project/openvino-dev/) +Refer to: [OMZ-tool_guide](https://pypi.org/project/openvino-dev/) * See all available models ``` @@ -67,7 +67,7 @@ cd ~/catkin_ws/src/ros2_openvino_toolkit/data/model_list omz_downloader --list download_model.lst -o /opt/openvino_toolkit/models/ ``` -* If the model (tensorflow, caffe, MXNet, ONNX, Kaldi) need to be converted to intermediate representation (such as the model for object detection): +* If the model (TensorFlow, caffe, MXNet, ONNX, Kaldi) need to be converted to intermediate representation (such as the model for object detection): ``` cd ~/catkin_ws/src/ros2_openvino_toolkit/data/model_list omz_converter --list convert_model.lst -d /opt/openvino_toolkit/models/ -o /opt/openvino_toolkit/models/convert @@ -85,7 +85,7 @@ cd ~/openvino/thirdparty/open_model_zoo/tools/model_tools sudo python3 downloader.py --list download_model.lst -o /opt/openvino_toolkit/models/ ``` -* If the model (tensorflow, caffe, MXNet, ONNX, Kaldi) need to be converted to Intermediate Representation (such as the model for object detection): +* If the model (TensorFlow, caffe, MXNet, ONNX, Kaldi) need to be converted to Intermediate Representation (such as the model for object detection): ``` cd ~/openvino/thirdparty/open_model_zoo/tools/model_tools sudo python3 converter.py --list convert_model.lst -d /opt/openvino_toolkit/models/ -o /opt/openvino_toolkit/models/convert @@ -102,7 +102,7 @@ sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_segmentation/fr sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehicle-license-plate-detection-barrier-0106.labels /opt/openvino_toolkit/models/intel/vehicle-license-plate-detection-barrier-0106/FP32 ``` -* Check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml before lauching, make sure parameters such as model_path, label_path and input_path are set correctly. Please refer to the quick start document for [yaml configuration guidance](./yaml_configuration_guide.md) for detailed configuration guidance. +* Check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml before launching, make sure parameters such as model_path, label_path and input_path are set correctly. Please refer to the quick start document for [yaml configuration guide](./yaml_configuration_guide.md) for detailed configuration guidance. * run face detection sample code input from StandardCamera. ``` ros2 launch openvino_node pipeline_people.launch.py @@ -129,7 +129,7 @@ sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehic ``` # More Information -* ROS2 OpenVINO discription writen in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw +* ROS2 OpenVINO description written in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw ###### *Any security issue should be reported using process at https://01.org/security* diff --git a/doc/quick_start/tutorial_for_yolov5_converted.md b/doc/quick_start/tutorial_for_yolov5_converted.md index dfc82ed8..20443481 100644 --- a/doc/quick_start/tutorial_for_yolov5_converted.md +++ b/doc/quick_start/tutorial_for_yolov5_converted.md @@ -14,8 +14,8 @@ This document describes a method to convert YOLOv5 nano PyTorch weight files wit ## Reference Document |Doc|Link| |---|---| -|OpenVINO|[openvino_2_0_transition_guide](https://docs.openvino.ai/latest/openvino_2_0_transition_guide.html)| -|YOLOv5|[yolov5](https://github.com/ultralytics/yolov5)| +|OpenVINO transition guide |[openvino_2_0_transition_guide](https://docs.openvino.ai/latest/openvino_2_0_transition_guide.html)| +|YOLOv5 documentation |[yolov5](https://github.com/ultralytics/yolov5)| # Convert Weight File to ONNX * Copy YOLOv5 Repository from GitHub diff --git a/doc/quick_start/tutorial_for_yolov7_converted.md b/doc/quick_start/tutorial_for_yolov7_converted.md index 9c476634..66f086af 100644 --- a/doc/quick_start/tutorial_for_yolov7_converted.md +++ b/doc/quick_start/tutorial_for_yolov7_converted.md @@ -15,8 +15,8 @@ files using the OpenVINO model optimizer. This method can help OpenVINO users op ## Reference Document |Doc|Link| |---|---| -|OpenVINO|[openvino_2_0_transition_guide](https://docs.openvino.ai/latest/openvino_2_0_transition_guide.html)| -|YOLOv7|[yolov7](https://github.com/WongKinYiu/yolov7)| +|OpenVINO transition guide|[openvino_2_0_transition_guide](https://docs.openvino.ai/latest/openvino_2_0_transition_guide.html)| +|YOLOv7 documentation |[yolov7](https://github.com/WongKinYiu/yolov7)| # Convert Weight File to ONNX * Copy YOLOv7 Repository from GitHub diff --git a/doc/quick_start/yaml_configuration_guide.md b/doc/quick_start/yaml_configuration_guide.md index b6a08a2a..e250df7b 100644 --- a/doc/quick_start/yaml_configuration_guide.md +++ b/doc/quick_start/yaml_configuration_guide.md @@ -58,16 +58,16 @@ Currently, options for inputs are: |Input Option|Description|Configuration| |--------------------|------------------------------------------------------------------|-----------------------------------------| |StandardCamera|Any RGB camera with USB port supporting. Currently only the first USB camera if many are connected.|```inputs: [StandardCamera]```| -|RealSenseCamera| Intel RealSense RGB-D Camera, directly calling RealSense Camera via librealsense plugin of openCV.|```inputs: [RealSenseCamera]```| +|RealSenseCamera| Intel® RealSense™ RGB-D Camera, directly calling RealSense Camera via librealsense plugin of openCV.|```inputs: [RealSenseCamera]```| |RealSenseCameraTopic| Any ROS topic which is structured in image message.|```inputs: [RealSenseCameraTopic]```| |Image| Any image file which can be parsed by openCV, such as .png, .jpeg.|```inputs: [Image]```| |Video| Any video file which can be parsed by openCV.|```inputs: [Video]```| |IpCamera| Any RTSP server which can push video stream.|```inputs: [IpCamera]```| -**Note:** Please refer to this opensource repo [RTSP_server_install_guide](https://github.com/EasyDarwin/EasyDarwin) to install RTSP server for IpCamera input. +**Note:** Please refer to this opensource repo [RTSP_server_install_guide](https://github.com/EasyDarwin/EasyDarwin) to install RTSP server for IP Camera input. ### Specify input_path -The input_path need to be specified when input is Image, Video and Ipcamera. +The input_path need to be specified when input is Image, Video and IP Camera. |Input Option|Configuration| |--------------------|------------------------------------------------------------------| @@ -85,11 +85,11 @@ The name of inference engine need to be specified here. Currently, the inference |-----------------------|------------------------------------------------------------------| |FaceDetection|Object Detection task applied to face recognition using a sequence of neural networks.| |EmotionRecognition| Emotion recognition based on detected face image.| -|AgeGenderRecognition| Age and gener recognition based on detected face image.| +|AgeGenderRecognition| Age and gender recognition based on detected face image.| |HeadPoseEstimation| Head pose estimation based on detected face image.| -|ObjectDetection| object detection based on SSD-based trained models.| +|ObjectDetection| Object detection based on SSD-based trained models.| |VehicleDetection| Vehicle and passenger detection based on Intel models.| -|ObjectSegmentation| object detection and segmentation.| +|ObjectSegmentation| Object detection and segmentation.| |ObjectSegmentationMaskrcnn| object segmentation based on Maskrcnn model.| * #### model diff --git a/docker/docker_instructions_ov2.0.md b/docker/docker_instructions_ov2.0.md index c9cdd202..285084e9 100644 --- a/docker/docker_instructions_ov2.0.md +++ b/docker/docker_instructions_ov2.0.md @@ -65,7 +65,7 @@ source ./install/local_setup.bash * See all available models OMZ tools are provided for downloading and converting OMZ models in ov2022.
-Refer to: [OMZtool_guide](https://pypi.org/project/openvino-dev/) +Refer to: [OMZ-tool_guide](https://pypi.org/project/openvino-dev/) ``` omz_downloader --print_all @@ -77,7 +77,7 @@ cd ~/catkin_ws/src/ros2_openvino_toolkit/data/model_list omz_downloader --list download_model.lst -o /opt/openvino_toolkit/models/ ``` -* If the model (tensorflow, caffe, MXNet, ONNX, Kaldi) need to be converted to intermediate representation (such as the model for object detection): +* If the model (TensorFlow, caffe, MXNet, ONNX, Kaldi) need to be converted to intermediate representation (such as the model for object detection): ``` cd ~/catkin_ws/src/ros2_openvino_toolkit/data/model_list omz_converter --list convert_model.lst -d /opt/openvino_toolkit/models/ -o /opt/openvino_toolkit/models/convert @@ -93,7 +93,7 @@ sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_segmentation/fr sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehicle-license-plate-detection-barrier-0106.labels /opt/openvino_toolkit/models/intel/vehicle-license-plate-detection-barrier-0106/FP32 ``` -* Check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml before lauching, make sure parameters such as model_path, label_path and input_path are set correctly. Please refer to the quick start document for [yaml configuration guidance](../doc/quick_start/yaml_configuration_guide.md) for detailed configuration guidance. +* Check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml before launching, make sure parameters such as model_path, label_path and input_path are set correctly. Please refer to the quick start document for [yaml configuration guidance](../doc/quick_start/yaml_configuration_guide.md) for detailed configuration guidance. * run face detection sample code input from StandardCamera. ``` ros2 launch openvino_node pipeline_people.launch.py @@ -124,7 +124,7 @@ sudo cp ~/catkin_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehic ``` # More Information -* ROS2 OpenVINO discription writen in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw +* ROS2 OpenVINO description written in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw ###### *Any security issue should be reported using process at https://01.org/security* diff --git a/docker/ros2_2021.4/ros2_dashing/docker_instraction.md b/docker/ros2_2021.4/ros2_dashing/docker_instructions.md similarity index 96% rename from docker/ros2_2021.4/ros2_dashing/docker_instraction.md rename to docker/ros2_2021.4/ros2_dashing/docker_instructions.md index 48221333..6aca40bb 100644 --- a/docker/ros2_2021.4/ros2_dashing/docker_instraction.md +++ b/docker/ros2_2021.4/ros2_dashing/docker_instructions.md @@ -76,7 +76,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - sudo cp /root/ros2_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehicle-license-plate-detection-barrier-0106.labels /opt/openvino_toolkit/models/vehicle-license-plate-detection/output/intel/vehicle-license-plate-detection-barrier-0106/FP32 ``` -* If the model (tensorflow, caffe, MXNet, ONNX, Kaldi)need to be converted to intermediate representation (For example the model for object detection) +* If the model (TensorFlow, caffe, MXNet, ONNX, Kaldi)need to be converted to intermediate representation (For example the model for object detection) * ssd_mobilenet_v2_coco ``` cd /opt/openvino_toolkit/models/ @@ -96,7 +96,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - sudo python3 /opt/intel/openvino_2021/deployment_tools/open_model_zoo/tools/downloader/converter.py --name=yolo-v2-tf --mo /opt/intel/openvino_2021/deployment_tools/model_optimizer/mo.py ``` -* Before launch, check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml, make sure the paramter like model path, label path, inputs are right. +* Before launch, check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml, make sure the parameter like model path, label path, inputs are right. * run face detection sample code input from StandardCamera. ``` ros2 launch dynamic_vino_sample pipeline_people.launch.py @@ -131,7 +131,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - ``` # More Information -* ROS2 OpenVINO discription writen in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw +* ROS2 OpenVINO description written in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw ###### *Any security issue should be reported using process at https://01.org/security* diff --git a/docker/ros2_2021.4/ros2_foxy/docker_instraction.md b/docker/ros2_2021.4/ros2_foxy/docker_instructions.md similarity index 96% rename from docker/ros2_2021.4/ros2_foxy/docker_instraction.md rename to docker/ros2_2021.4/ros2_foxy/docker_instructions.md index 2515ec3c..02ad7d3d 100644 --- a/docker/ros2_2021.4/ros2_foxy/docker_instraction.md +++ b/docker/ros2_2021.4/ros2_foxy/docker_instructions.md @@ -76,7 +76,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - sudo cp /root/ros2_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehicle-license-plate-detection-barrier-0106.labels /opt/openvino_toolkit/models/vehicle-license-plate-detection/output/intel/vehicle-license-plate-detection-barrier-0106/FP32 ``` -* If the model (tensorflow, caffe, MXNet, ONNX, Kaldi)need to be converted to intermediate representation (For example the model for object detection) +* If the model (TensorFlow, caffe, MXNet, ONNX, Kaldi)need to be converted to intermediate representation (For example the model for object detection) * ssd_mobilenet_v2_coco ``` cd /opt/openvino_toolkit/models/ @@ -96,7 +96,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - sudo python3 /opt/intel/openvino_2021/deployment_tools/open_model_zoo/tools/downloader/converter.py --name=yolo-v2-tf --mo /opt/intel/openvino_2021/deployment_tools/model_optimizer/mo.py ``` -* Before launch, check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml, make sure the paramter like model path, label path, inputs are right. +* Before launch, check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml, make sure the parameter like model path, label path, inputs are right. * run face detection sample code input from StandardCamera. ``` ros2 launch dynamic_vino_sample pipeline_people.launch.py @@ -131,7 +131,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - ``` # More Information -* ROS2 OpenVINO discription writen in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw +* ROS2 OpenVINO description written in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw ###### *Any security issue should be reported using process at https://01.org/security* diff --git a/docker/ros2_2021.4/ros2_galactic/docker_instructions.md b/docker/ros2_2021.4/ros2_galactic/docker_instructions.md index 6e5fe9be..0f40d6bc 100644 --- a/docker/ros2_2021.4/ros2_galactic/docker_instructions.md +++ b/docker/ros2_2021.4/ros2_galactic/docker_instructions.md @@ -78,7 +78,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - sudo cp /root/ros2_ws/src/ros2_openvino_toolkit/data/labels/object_detection/vehicle-license-plate-detection-barrier-0106.labels /opt/openvino_toolkit/models/vehicle-license-plate-detection/output/intel/vehicle-license-plate-detection-barrier-0106/FP32 ``` -* If the model (tensorflow, caffe, MXNet, ONNX, Kaldi)need to be converted to intermediate representation (For example the model for object detection) +* If the model (TensorFlow, caffe, MXNet, ONNX, Kaldi)need to be converted to intermediate representation (For example the model for object detection) * ssd_mobilenet_v2_coco ``` cd /opt/openvino_toolkit/models/ @@ -98,7 +98,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - sudo python3 /opt/intel/openvino_2021/deployment_tools/open_model_zoo/tools/downloader/converter.py --name=yolo-v2-tf --mo /opt/intel/openvino_2021/deployment_tools/model_optimizer/mo.py ``` -* Before launch, check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml, make sure the paramter like model path, label path, inputs are right. +* Before launch, check the parameter configuration in ros2_openvino_toolkit/sample/param/xxxx.yaml, make sure the parameter like model path, label path, inputs are right. * run face detection sample code input from StandardCamera. ``` ros2 launch dynamic_vino_sample pipeline_people.launch.py @@ -133,7 +133,7 @@ sudo python3 downloader.py --name person-attributes-recognition-crossroad-0230 - ``` # More Information -* ROS2 OpenVINO discription writen in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw +* ROS2 OpenVINO description written in Chinese: https://mp.weixin.qq.com/s/BgG3RGauv5pmHzV_hkVAdw ###### *Any security issue should be reported using process at https://01.org/security* diff --git a/docker/ros2_ov202x/ros2_humble/Dockerfile b/docker/ros2_ov202x/ros2_humble/Dockerfile new file mode 100644 index 00000000..8401d07b --- /dev/null +++ b/docker/ros2_ov202x/ros2_humble/Dockerfile @@ -0,0 +1,72 @@ +# ros2 openvino toolkit env master f1b1ca4d914186a1881b87f103be9c6e910c9d80 + +from osrf/ros:humble-desktop + +# Set non-interactive mode for APT +ENV DEBIAN_FRONTEND=noninteractive + +# setting proxy env --option +# If needed, enable the below ENV setting by correct proxies. +# ENV http_proxy=your_proxy +# ENV https_proxy=your_proxy + +# maintainer information +LABEL maintainer="Jayabalaji Sathiyamoorthi " + +SHELL ["/bin/bash", "-c"] + +# install OpenVINO 2025.0.0 / 2023.3 LTS +#https://docs.openvino.ai/2025/get-started/install-openvino.html?PACKAGE=OPENVINO_BASE&VERSION=v_2025_0_0&OP_SYSTEM=LINUX&DISTRIBUTION=APT +RUN apt update \ + && apt install curl wget gnupg2 lsb-release +RUN wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ + && apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB +#RUN echo "deb https://apt.repos.intel.com/openvino/2025 ubuntu22 main" | tee /etc/apt/sources.list.d/intel-openvino-2025.list +RUN echo "deb https://apt.repos.intel.com/openvino/2024 ubuntu22 main" | tee /etc/apt/sources.list.d/intel-openvino-2024.list +#RUN echo "deb https://apt.repos.intel.com/openvino/2023 ubuntu22 main" | tee /etc/apt/sources.list.d/intel-openvino-2023.list + +RUN apt update \ + && apt-cache search openvino \ +# && apt-get install -y openvino-2025.0.0 + && apt-get install -y openvino-2024.2.0 +# && apt-get install -y openvino-2023.3.0 + +# workaround to fetch librealsense2-dkms via ECI repo +RUN bash -c 'echo "deb [trusted=yes] http://wheeljack.ch.intel.com/apt-repos/ECI/$(lsb_release -sc) isar main" > /etc/apt/sources.list.d/eci.list' +RUN bash -c 'echo "deb-src [trusted=yes] http://wheeljack.ch.intel.com/apt-repos/ECI/$(lsb_release -sc) isar main" >> /etc/apt/sources.list.d/eci.list' +RUN bash -c 'echo -e "Package: *\nPin: origin wheeljack.ch.intel.com\nPin-Priority: 1000" > /etc/apt/preferences.d/isar' +RUN bash -c 'echo "Acquire::http::Proxy \"http://proxy-dmz.intel.com:912\"; Acquire::https::Proxy \"http://proxy-dmz.intel.com:912\"; Acquire::http::Proxy::wheeljack.ch.intel.com DIRECT;" >> /etc/apt/apt.conf.d/proxy.conf' + +RUN apt-get update \ + && apt-get install -y librealsense2-dkms + +# install librealsense2 +# Reference : https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md +RUN apt-get install -y --no-install-recommends \ + software-properties-common \ + apt-transport-https + +RUN mkdir -p /etc/apt/keyrings +RUN curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | tee /etc/apt/keyrings/librealsense.pgp > /dev/null + +RUN echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \ + tee /etc/apt/sources.list.d/librealsense.list +RUN apt-get update +RUN apt-get install -y --no-install-recommends \ +# librealsense2-dkms \ # Houston, this is not available in kernel 6.8 + librealsense2-utils \ + librealsense2-dev \ + librealsense2-dbg \ + && rm -rf /var/lib/apt/lists/* + +# build ros2 openvino toolkit +WORKDIR /root +RUN mkdir -p ros2_ws/src +WORKDIR /root/ros2_ws/src +RUN git clone https://github.com/intel/ros2_object_msgs.git +RUN git clone -b ros2 https://github.com/jb-balaji/ros2_openvino_toolkit.git +RUN git clone -b humble https://github.com/ros-perception/vision_opencv.git +WORKDIR /root/ros2_ws +RUN source /opt/ros/humble/setup.bash \ + && colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release + \ No newline at end of file diff --git a/docker/ros2_ov202x/ros2_humble/docker_instructions.md b/docker/ros2_ov202x/ros2_humble/docker_instructions.md new file mode 100644 index 00000000..9ce0aadf --- /dev/null +++ b/docker/ros2_ov202x/ros2_humble/docker_instructions.md @@ -0,0 +1 @@ +To Do \ No newline at end of file diff --git a/openvino_param_lib/CMakeLists.txt b/openvino_param_lib/CMakeLists.txt index 8a78469a..a7991962 100644 --- a/openvino_param_lib/CMakeLists.txt +++ b/openvino_param_lib/CMakeLists.txt @@ -56,7 +56,7 @@ if(UNIX OR APPLE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector") endif() elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") - # Clang is compatbile with some of the flags. + # Clang is compatible with some of the flags. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector") elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") # Same as above, with exception that ICC compilation crashes with -fPIE option, even @@ -68,7 +68,7 @@ if(UNIX OR APPLE) # Generic flags. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-operator-names -Wformat -Wformat-security -Wall") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") - # Dot not forward c++17 flag to GPU beucause it is not supported + # Dot not forward c++17 flag to GPU because it is not supported set(CUDA_PROPAGATE_HOST_FLAGS OFF) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D_FORTIFY_SOURCE=2") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") diff --git a/openvino_people_msgs/msg/PersonAttribute.msg b/openvino_people_msgs/msg/PersonAttribute.msg index 3ad0b0a6..c886313a 100644 --- a/openvino_people_msgs/msg/PersonAttribute.msg +++ b/openvino_people_msgs/msg/PersonAttribute.msg @@ -12,6 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This message can represent a peron's attributes +# This message can represent a person's attributes string attribute # person attributes sensor_msgs/RegionOfInterest roi # region of interest \ No newline at end of file diff --git a/openvino_wrapper_lib/CMakeLists.txt b/openvino_wrapper_lib/CMakeLists.txt index 131607a5..7069a51f 100644 --- a/openvino_wrapper_lib/CMakeLists.txt +++ b/openvino_wrapper_lib/CMakeLists.txt @@ -33,7 +33,7 @@ set(CMAKE_CXX_FLAGS "-std=c++17 ${CMAKE_CXX_FLAGS}") #add_definitions(-DLOG_LEVEL_DEBUG) #################################### -# environment variable OpenVINO_DIR can be use instead of relaive path to specify location of configuration file +# environment variable OpenVINO_DIR can be use instead of relative path to specify location of configuration file find_package(OpenVINO REQUIRED) if(NOT OpenVINO_FOUND) @@ -41,7 +41,7 @@ if(NOT OpenVINO_FOUND) endif() set(OpenVINO_LIBRARIES openvino::runtime) -# Find OpenCV libray if exists +# Find OpenCV library if exists find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) if(OpenCV_FOUND) @@ -155,7 +155,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-deprecated-de #The below command is commented in order to ignore "colcon test" errors. #This maybe impacts CPU's inference tuning, although we tested on Core i7-6700 and got the similar performance. -#If you concern the inference performence, you can try to get the resource from the follow url and enable the below line. +#If you concern the inference performance, you can try to get the resource from the follow url and enable the below line. #https://github.com/openvinotoolkit/openvino/tree/2018/inference-engine/src/extension/cmake #include(feature_defs OPTIONAL) diff --git a/sample/CMakeLists.txt b/sample/CMakeLists.txt index 25f50b09..8189f0a9 100644 --- a/sample/CMakeLists.txt +++ b/sample/CMakeLists.txt @@ -68,7 +68,7 @@ if(OpenCV_FOUND) message(STATUS "OpenCV_INCLUDE_DIRS=${OpenCV_INCLUDE_DIRS}") message(STATUS "OpenCV_LIBS=${OpenCV_LIBS}") else() - message(STATUS "OPENCV is disabled or not found, " ${PROJECT_NAME} " skiped") + message(STATUS "OPENCV is disabled or not found, " ${PROJECT_NAME} " skipped") return() endif() diff --git a/script/environment_setup.sh b/script/environment_setup.sh index 371bba98..08a37790 100755 --- a/script/environment_setup.sh +++ b/script/environment_setup.sh @@ -3,43 +3,43 @@ set -euo pipefail echo "Please Enter Your Password:" stty -echo -read ROOT_PASSWD +read -r ROOT_PASSWD stty echo basedir=$PWD echo "Begin Environment Setup" -system_ver=`cat /etc/lsb-release | grep -i "DISTRIB_RELEASE" | cut -d "=" -f2` +system_ver=$(cat /etc/lsb-release | grep -i "DISTRIB_RELEASE" | cut -d "=" -f2) #Get Config Parameters -CLEAN=`cat modules.conf | grep 'clean'` +CLEAN=$(cat modules.conf | grep 'clean') CLEAN=${CLEAN##*=} echo "Set CLEAN to $CLEAN" -ROS2_SRC=`cat modules.conf | grep 'ros2_src'` +ROS2_SRC=$(cat modules.conf | grep 'ros2_src') ROS2_SRC=${ROS2_SRC##*=} echo "Set ROS2_SRC to $ROS2_SRC" -OPENCV=`cat modules.conf | grep 'opencv'` +OPENCV=$(cat modules.conf | grep 'opencv') OPENCV=${OPENCV##*=} echo "Set OPENCV to $OPENCV" -OPENCL=`cat modules.conf | grep 'opencl'` +OPENCL=$(cat modules.conf | grep 'opencl') OPENCL=${OPENCL##*=} echo "Set OPENCL to $OPENCL" -DLDT=`cat modules.conf | grep 'dldt'` +DLDT=$(cat modules.conf | grep 'dldt') DLDT=${DLDT##*=} echo "Set DLDT to $DLDT" -MODEL_ZOO=`cat modules.conf | grep 'model_zoo'` +MODEL_ZOO=$(cat modules.conf | grep 'model_zoo') MODEL_ZOO=${MODEL_ZOO##*=} echo "Set MODEL_ZOO to $MODEL_ZOO" -LIBREALSENSE=`cat modules.conf | grep 'librealsense'` +LIBREALSENSE=$(cat modules.conf | grep 'librealsense') LIBREALSENSE=${LIBREALSENSE##*=} echo "Set LIBREALSENSE to $LIBREALSENSE" -OTHER_DEPENDENCY=`cat modules.conf | grep 'other_dependency'` +OTHER_DEPENDENCY=$(cat modules.conf | grep 'other_dependency') OTHER_DEPENDENCY=${OTHER_DEPENDENCY##*=} echo "Set OTHER_DEPENDENCY to $OTHER_DEPENDENCY" @@ -48,17 +48,17 @@ echo "Set OTHER_DEPENDENCY to $OTHER_DEPENDENCY" if [ "$CLEAN" == "1" ]; then echo "===================Clean Existing Directories...====================================" - read -n1 -p "The clean operation will delete some manually created directories, + read -r -n1 -p "The clean operation will delete some manually created directories, including ~/code, ~/ros2_ws, /opt/intel, /opt/openvino_toolkit, and OpenVINO tar ball. Do you want to clean existing directories[Y/N]?" answer case $answer in Y|y) echo echo "===================Cleaning...====================================" - echo $ROOT_PASSWD | sudo -S rm -rf ~/code + echo "$ROOT_PASSWD" | sudo -S rm -rf ~/code rm -rf ~/ros2_ws - echo $ROOT_PASSWD | sudo -S rm -rf /opt/openvino_toolkit + echo "$ROOT_PASSWD" | sudo -S rm -rf /opt/openvino_toolkit if [[ $system_ver = "16.04" && -L "/usr/lib/x86_64-linux-gnu/libboost_python3.so" ]]; then - echo $ROOT_PASSWD | sudo -S rm /usr/lib/x86_64-linux-gnu/libboost_python3.so + echo "$ROOT_PASSWD" | sudo -S rm /usr/lib/x86_64-linux-gnu/libboost_python3.so fi echo "===================Clean finish...====================================";; N|n) echo @@ -70,25 +70,25 @@ fi if [ "$ROS2_SRC" == "1" ]; then echo "===================Installing ROS2 from Source...=======================" - echo $ROOT_PASSWD | sudo -S locale-gen en_US en_US.UTF-8 - echo $ROOT_PASSWD | sudo -S update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 + echo "$ROOT_PASSWD" | sudo -S locale-gen en_US en_US.UTF-8 + echo "$ROOT_PASSWD" | sudo -S update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8 - echo $ROOT_PASSWD | sudo -S apt-get update && sudo apt-get install -y curl + echo "$ROOT_PASSWD" | sudo -S apt-get update && sudo apt-get install -y curl curl http://repo.ros2.org/repos.key | sudo apt-key add - - echo $ROOT_PASSWD | sudo -S sh -c 'echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list' + echo "$ROOT_PASSWD" | sudo -S sh -c 'echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list' if [ -n "$http_proxy" ]; then - echo $ROOT_PASSWD | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy="$http_proxy" --recv-key F42ED6FBAB17C654 + echo "$ROOT_PASSWD" | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy="$http_proxy" --recv-key F42ED6FBAB17C654 else - echo $ROOT_PASSWD | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F42ED6FBAB17C654 + echo "$ROOT_PASSWD" | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F42ED6FBAB17C654 fi - echo $ROOT_PASSWD | sudo -S apt-get update && sudo apt-get install -y build-essential cmake git python3-colcon-common-extensions python3-pip python-rosdep python3-vcstool wget + echo "$ROOT_PASSWD" | sudo -S apt-get update && sudo apt-get install -y build-essential cmake git python3-colcon-common-extensions python3-pip python-rosdep python3-vcstool wget # install some pip packages needed for testing - echo $ROOT_PASSWD | sudo -S -H python3 -m pip install -U argcomplete flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pytest-repeat pytest-rerunfailures + echo "$ROOT_PASSWD" | sudo -S -H python3 -m pip install -U argcomplete flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pytest-repeat pytest-rerunfailures python3 -m pip install -U pytest pytest-cov pytest-runner setuptools - echo $ROOT_PASSWD | sudo -S apt-get install --no-install-recommends -y libasio-dev libtinyxml2-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install --no-install-recommends -y libasio-dev libtinyxml2-dev mkdir -p ~/ros2_ws/src cd ~/ros2_ws @@ -96,13 +96,13 @@ if [ "$ROS2_SRC" == "1" ]; then vcs-import src < ros2.repos if [ ! -f "/etc/ros/rosdep/sources.list.d/20-default.list" ]; then - echo $ROOT_PASSWD | sudo -S rosdep init + echo "$ROOT_PASSWD" | sudo -S rosdep init else echo "file already exists, skip..." fi rosdep update - if [ $system_ver = "16.04" ]; then + if [ "$system_ver" = "16.04" ]; then rosdep install --from-paths src --ignore-src --rosdistro crystal -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 python3-lark-parser rti-connext-dds-5.3.1 urdfdom_headers" colcon build --symlink-install --packages-ignore qt_gui_cpp rqt_gui_cpp else @@ -115,16 +115,16 @@ fi if [ "$OPENCV" == "1" ]; then echo "===================Installing OpenCV3 from Source...=======================" - echo $ROOT_PASSWD | sudo -S apt-get install -y build-essential - echo $ROOT_PASSWD | sudo -S apt-get install -y cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev - echo $ROOT_PASSWD | sudo -S apt-get install -y python-dev python-numpy libtbb2 libtbb-dev libpng-dev libtiff-dev libdc1394-22-dev - - if [ $system_ver = "18.04" ]; then - echo $ROOT_PASSWD | sudo -S add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" - echo $ROOT_PASSWD | sudo apt update - echo $ROOT_PASSWD | sudo apt install libjasper1 libjasper-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install -y build-essential + echo "$ROOT_PASSWD" | sudo -S apt-get install -y cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install -y python-dev python-numpy libtbb2 libtbb-dev libpng-dev libtiff-dev libdc1394-22-dev + + if [ "$system_ver" = "18.04" ]; then + echo "$ROOT_PASSWD" | sudo -S add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" + echo "$ROOT_PASSWD" | sudo apt update + echo "$ROOT_PASSWD" | sudo apt install libjasper1 libjasper-dev else - echo $ROOT_PASSWD | sudo -S apt-get install libjasper-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install libjasper-dev fi mkdir -p ~/code && cd ~/code @@ -140,10 +140,10 @@ if [ "$OPENCV" == "1" ]; then cd ~/code/opencv mkdir build && cd build - cmake -DOPENCV_EXTRA_MODULES_PATH=$HOME/code/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_opencv_cnn_3dobj=OFF .. + cmake -DOPENCV_EXTRA_MODULES_PATH="$HOME"/code/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_opencv_cnn_3dobj=OFF .. make -j4 - echo $ROOT_PASSWD | sudo -S make install - echo $ROOT_PASSWD | sudo -S ldconfig + echo "$ROOT_PASSWD" | sudo -S make install + echo "$ROOT_PASSWD" | sudo -S ldconfig echo "==== END install OpenCV ====" fi @@ -158,7 +158,7 @@ if [ "$OPENCL" == "1" ]; then wget https://github.com/intel/compute-runtime/releases/download/19.04.12237/intel-igc-opencl_18.50.1270_amd64.deb wget https://github.com/intel/compute-runtime/releases/download/19.04.12237/intel-opencl_19.04.12237_amd64.deb wget https://github.com/intel/compute-runtime/releases/download/19.04.12237/intel-ocloc_19.04.12237_amd64.deb - echo $ROOT_PASSWD | sudo -S -E dpkg -i *.deb + echo "$ROOT_PASSWD" | sudo -S -E dpkg -i -- *.deb echo "==== END install OpenCL ====" fi @@ -168,8 +168,8 @@ if [ "$DLDT" == "1" ]; then echo "===================Installing Deep Learning Deployment Toolkit...=======================" if [[ -f /etc/lsb-release ]]; then - echo $ROOT_PASSWD | sudo -S -E apt update - echo $ROOT_PASSWD | sudo -S -E apt-get install -y \ + echo "$ROOT_PASSWD" | sudo -S -E apt update + echo "$ROOT_PASSWD" | sudo -S -E apt-get install -y \ build-essential \ cmake \ curl \ @@ -197,10 +197,10 @@ if [ "$DLDT" == "1" ]; then gstreamer1.0-plugins-base \ libusb-1.0-0-dev \ libopenblas-dev - if [ $system_ver = "18.04" ]; then - echo $ROOT_PASSWD | sudo -S -E apt-get install -y libpng-dev + if [ "$system_ver" = "18.04" ]; then + echo "$ROOT_PASSWD" | sudo -S -E apt-get install -y libpng-dev else - echo $ROOT_PASSWD | sudo -S -E apt-get install -y libpng12-dev + echo "$ROOT_PASSWD" | sudo -S -E apt-get install -y libpng12-dev fi fi mkdir -p ~/code && cd ~/code @@ -212,8 +212,8 @@ if [ "$DLDT" == "1" ]; then mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j8 - echo $ROOT_PASSWD | sudo -S mkdir -p /opt/openvino_toolkit - echo $ROOT_PASSWD | sudo -S ln -sf ~/code/dldt /opt/openvino_toolkit/dldt + echo "$ROOT_PASSWD" | sudo -S mkdir -p /opt/openvino_toolkit + echo "$ROOT_PASSWD" | sudo -S ln -sf ~/code/dldt /opt/openvino_toolkit/dldt echo "==== END install DLDT ====" fi @@ -229,8 +229,8 @@ if [ "$MODEL_ZOO" == "1" ]; then mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release /opt/openvino_toolkit/dldt/inference-engine make -j8 - echo $ROOT_PASSWD | sudo -S mkdir -p /opt/openvino_toolkit - echo $ROOT_PASSWD | sudo -S ln -sf ~/code/open_model_zoo /opt/openvino_toolkit/open_model_zoo + echo "$ROOT_PASSWD" | sudo -S mkdir -p /opt/openvino_toolkit + echo "$ROOT_PASSWD" | sudo -S ln -sf ~/code/open_model_zoo /opt/openvino_toolkit/open_model_zoo echo "==== END install open_model_zoo ====" fi @@ -241,9 +241,9 @@ if [ "$LIBREALSENSE" == "1" ]; then echo "Install server public key for librealsense" if [ -n "$http_proxy" ]; then - echo $ROOT_PASSWD | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=$http_proxy --recv-key C8B3A55A6F3EFCDE + echo "$ROOT_PASSWD" | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy="$http_proxy" --recv-key C8B3A55A6F3EFCDE else - echo $ROOT_PASSWD | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE + echo "$ROOT_PASSWD" | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE fi if ! test "$(grep "http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo" /etc/apt/sources.list)" @@ -259,18 +259,18 @@ fi if [ "$OTHER_DEPENDENCY" == "1" ]; then echo "===================Setting UP OTHER_DEPENDENCY DEPENDENCY...=======================" - echo $ROOT_PASSWD | sudo -S apt-get install -y libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev - echo $ROOT_PASSWD | sudo -S apt-get install -y libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install -y libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install -y libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev pip3 install numpy pip3 install networkx - if [ $system_ver = "16.04" ]; then - echo $ROOT_PASSWD | sudo -S apt-get install -y --no-install-recommends libboost-all-dev + if [ "$system_ver" = "16.04" ]; then + echo "$ROOT_PASSWD" | sudo -S apt-get install -y --no-install-recommends libboost-all-dev cd /usr/lib/x86_64-linux-gnu - echo $ROOT_PASSWD | sudo -S ln -sf libboost_python-py35.so libboost_python3.so - elif [ $system_ver = "18.04" ]; then - echo $ROOT_PASSWD | sudo -S apt-get install -y --no-install-recommends libboost-all-dev - echo $ROOT_PASSWD | sudo -S apt install libboost-python1.62.0 + echo "$ROOT_PASSWD" | sudo -S ln -sf libboost_python-py35.so libboost_python3.so + elif [ "$system_ver" = "18.04" ]; then + echo "$ROOT_PASSWD" | sudo -S apt-get install -y --no-install-recommends libboost-all-dev + echo "$ROOT_PASSWD" | sudo -S apt install libboost-python1.62.0 fi echo "==== END install other dependencies ====" diff --git a/script/environment_setup_binary.sh b/script/environment_setup_binary.sh index d8cca987..3fe6bc54 100755 --- a/script/environment_setup_binary.sh +++ b/script/environment_setup_binary.sh @@ -3,40 +3,40 @@ set -euo pipefail echo "Please Enter Your Password:" stty -echo -read ROOT_PASSWD +read -r ROOT_PASSWD stty echo basedir=$PWD echo "Begin Environment Setup" -system_ver=`cat /etc/lsb-release | grep -i "DISTRIB_RELEASE" | cut -d "=" -f2` +system_ver=$(cat /etc/lsb-release | grep -i "DISTRIB_RELEASE" | cut -d "=" -f2) #Get Config Parameters -CLEAN=`cat modules.conf | grep 'clean'` +CLEAN=$(cat modules.conf | grep 'clean') CLEAN=${CLEAN##*=} echo "Set CLEAN to $CLEAN" -ROS2_SRC=`cat modules.conf | grep 'ros2_src'` +ROS2_SRC=$(cat modules.conf | grep 'ros2_src') ROS2_SRC=${ROS2_SRC##*=} echo "Set ROS2_SRC to $ROS2_SRC" -OPENVINO=`cat modules.conf | grep 'openvino'` +OPENVINO=$(cat modules.conf | grep 'openvino') OPENVINO=${OPENVINO##*=} echo "Set OPENVINO to $OPENVINO" -OPENCL=`cat modules.conf | grep 'opencl'` +OPENCL=$(cat modules.conf | grep 'opencl') OPENCL=${OPENCL##*=} echo "Set OPENCL to $OPENCL" -OPENCV=`cat modules.conf | grep 'opencv'` +OPENCV=$(cat modules.conf | grep 'opencv') OPENCV=${OPENCV##*=} echo "Set OPENCV to $OPENCV" -LIBREALSENSE=`cat modules.conf | grep 'librealsense'` +LIBREALSENSE=$(cat modules.conf | grep 'librealsense') LIBREALSENSE=${LIBREALSENSE##*=} echo "Set LIBREALSENSE to $LIBREALSENSE" -OTHER_DEPENDENCY=`cat modules.conf | grep 'other_dependency'` +OTHER_DEPENDENCY=$(cat modules.conf | grep 'other_dependency') OTHER_DEPENDENCY=${OTHER_DEPENDENCY##*=} echo "Set OTHER_DEPENDENCY to $OTHER_DEPENDENCY" @@ -45,19 +45,19 @@ echo "Set OTHER_DEPENDENCY to $OTHER_DEPENDENCY" if [ "$CLEAN" == "1" ]; then echo "===================Clean Existing Directories...====================================" - read -n1 -p "The clean operation will delete some manually created directories, + read -r -n1 -p "The clean operation will delete some manually created directories, including ~/code, ~/ros2_ws, /opt/intel, /opt/openvino_toolkit, and OpenVINO tar ball. Do you want to clean existing directories[Y/N]?" answer case $answer in Y|y) echo echo "===================Cleaning...====================================" - echo $ROOT_PASSWD | sudo -S rm -rf ~/code + echo "$ROOT_PASSWD" | sudo -S rm -rf ~/code rm -rf ~/ros2_ws - echo $ROOT_PASSWD | sudo -S rm -rf /opt/intel + echo "$ROOT_PASSWD" | sudo -S rm -rf /opt/intel rm -rf ~/Downloads/l_openvino_toolkit* - echo $ROOT_PASSWD | sudo -S rm -rf /opt/openvino_toolkit + echo "$ROOT_PASSWD" | sudo -S rm -rf /opt/openvino_toolkit if [[ $system_ver = "16.04" && -L "/usr/lib/x86_64-linux-gnu/libboost_python3.so" ]]; then - echo $ROOT_PASSWD | sudo -S rm /usr/lib/x86_64-linux-gnu/libboost_python3.so + echo "$ROOT_PASSWD" | sudo -S rm /usr/lib/x86_64-linux-gnu/libboost_python3.so fi echo "===================Clean finish...====================================";; N|n) echo @@ -69,26 +69,26 @@ fi if [ "$ROS2_SRC" == "1" ]; then echo "===================Installing ROS2 from Source...=======================" - echo $ROOT_PASSWD | sudo -S locale-gen en_US en_US.UTF-8 - echo $ROOT_PASSWD | sudo -S update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 + echo "$ROOT_PASSWD" | sudo -S locale-gen en_US en_US.UTF-8 + echo "$ROOT_PASSWD" | sudo -S update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8 - echo $ROOT_PASSWD | sudo -S apt-get update && sudo apt-get install -y curl + echo "$ROOT_PASSWD" | sudo -S apt-get update && sudo apt-get install -y curl curl http://repo.ros2.org/repos.key | sudo apt-key add - - echo $ROOT_PASSWD | sudo -S sh -c 'echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list' + echo "$ROOT_PASSWD" | sudo -S sh -c 'echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list' if [ -n "$http_proxy" ]; then - echo $ROOT_PASSWD | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy="$http_proxy" --recv-key F42ED6FBAB17C654 + echo "$ROOT_PASSWD" | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy="$http_proxy" --recv-key F42ED6FBAB17C654 else - echo $ROOT_PASSWD | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F42ED6FBAB17C654 + echo "$ROOT_PASSWD" | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F42ED6FBAB17C654 fi - echo $ROOT_PASSWD | sudo -S apt-get update && sudo apt-get install -y build-essential cmake git python3-colcon-common-extensions python3-pip python-rosdep python3-vcstool wget + echo "$ROOT_PASSWD" | sudo -S apt-get update && sudo apt-get install -y build-essential cmake git python3-colcon-common-extensions python3-pip python-rosdep python3-vcstool wget # install some pip packages needed for testing - echo $ROOT_PASSWD | sudo -S -H python3 -m pip install -U argcomplete flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pytest-repeat pytest-rerunfailures + echo "$ROOT_PASSWD" | sudo -S -H python3 -m pip install -U argcomplete flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pytest-repeat pytest-rerunfailures python3 -m pip install -U pytest pytest-cov pytest-runner setuptools python3 -m pip uninstall pytest -y - echo $ROOT_PASSWD | sudo -S apt-get install --no-install-recommends -y libasio-dev libtinyxml2-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install --no-install-recommends -y libasio-dev libtinyxml2-dev mkdir -p ~/ros2_ws/src cd ~/ros2_ws @@ -96,13 +96,13 @@ if [ "$ROS2_SRC" == "1" ]; then vcs-import src < ros2.repos if [ ! -f "/etc/ros/rosdep/sources.list.d/20-default.list" ]; then - echo $ROOT_PASSWD | sudo -S rosdep init + echo "$ROOT_PASSWD" | sudo -S rosdep init else echo "file already exists, skip..." fi rosdep update - if [ $system_ver = "16.04" ]; then + if [ "$system_ver" = "16.04" ]; then rosdep install --from-paths src --ignore-src --rosdistro crystal -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 python3-lark-parser rti-connext-dds-5.3.1 urdfdom_headers" colcon build --symlink-install --packages-ignore qt_gui_cpp rqt_gui_cpp else @@ -119,9 +119,9 @@ if [ "$OPENVINO" == "1" ]; then wget -c http://registrationcenter-download.intel.com/akdlm/irc_nas/16057/l_openvino_toolkit_p_2019.3.376.tgz tar -xvf l_openvino_toolkit_p_2019.3.376.tgz cd l_openvino_toolkit_p_2019.3.376 - echo $ROOT_PASSWD | sudo -S ./install_openvino_dependencies.sh - cp $basedir/openvino_silent.cfg . - echo $ROOT_PASSWD | sudo -S ./install.sh --silent openvino_silent.cfg + echo "$ROOT_PASSWD" | sudo -S ./install_openvino_dependencies.sh + cp "$basedir"/openvino_silent.cfg . + echo "$ROOT_PASSWD" | sudo -S ./install.sh --silent openvino_silent.cfg echo "==== END install OpenVINO Toolkit ====" fi @@ -136,7 +136,7 @@ if [ "$OPENCL" == "1" ]; then wget https://github.com/intel/compute-runtime/releases/download/19.04.12237/intel-igc-opencl_18.50.1270_amd64.deb wget https://github.com/intel/compute-runtime/releases/download/19.04.12237/intel-opencl_19.04.12237_amd64.deb wget https://github.com/intel/compute-runtime/releases/download/19.04.12237/intel-ocloc_19.04.12237_amd64.deb - echo $ROOT_PASSWD | sudo -S -E dpkg -i *.deb + echo "$ROOT_PASSWD" | sudo -S -E dpkg -i -- *.deb echo "==== END install OpenCL ====" fi @@ -147,9 +147,9 @@ if [ "$LIBREALSENSE" == "1" ]; then echo "Install server public key for librealsense" if [ -n "$http_proxy" ]; then - echo $ROOT_PASSWD | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=$http_proxy --recv-key C8B3A55A6F3EFCDE + echo "$ROOT_PASSWD" | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy="$http_proxy" --recv-key C8B3A55A6F3EFCDE else - echo $ROOT_PASSWD | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE + echo "$ROOT_PASSWD" | sudo -S apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE fi if ! test "$(grep "http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo" /etc/apt/sources.list)" @@ -165,16 +165,16 @@ fi if [ "$OPENCV" == "1" ]; then echo "===================Installing OpenCV3 from Source...=======================" - echo $ROOT_PASSWD | sudo -S apt-get install -y build-essential - echo $ROOT_PASSWD | sudo -S apt-get install -y cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev - echo $ROOT_PASSWD | sudo -S apt-get install -y python-dev python-numpy libtbb2 libtbb-dev libpng-dev libtiff-dev libdc1394-22-dev - - if [ $system_ver = "18.04" ]; then - echo $ROOT_PASSWD | sudo -S add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" - echo $ROOT_PASSWD | sudo apt update - echo $ROOT_PASSWD | sudo apt install libjasper1 libjasper-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install -y build-essential + echo "$ROOT_PASSWD" | sudo -S apt-get install -y cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install -y python-dev python-numpy libtbb2 libtbb-dev libpng-dev libtiff-dev libdc1394-22-dev + + if [ "$system_ver" = "18.04" ]; then + echo "$ROOT_PASSWD" | sudo -S add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" + echo "$ROOT_PASSWD" | sudo apt update + echo "$ROOT_PASSWD" | sudo apt install libjasper1 libjasper-dev else - echo $ROOT_PASSWD | sudo -S apt-get install libjasper-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install libjasper-dev fi mkdir -p ~/code && cd ~/code @@ -190,10 +190,10 @@ if [ "$OPENCV" == "1" ]; then cd ~/code/opencv mkdir build && cd build - cmake -DOPENCV_EXTRA_MODULES_PATH=$HOME/code/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_opencv_cnn_3dobj=OFF .. + cmake -DOPENCV_EXTRA_MODULES_PATH="$HOME"/code/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_opencv_cnn_3dobj=OFF .. make -j4 - echo $ROOT_PASSWD | sudo -S make install - echo $ROOT_PASSWD | sudo -S ldconfig + echo "$ROOT_PASSWD" | sudo -S make install + echo "$ROOT_PASSWD" | sudo -S ldconfig echo "==== END install OpenCV ====" fi @@ -202,18 +202,18 @@ fi if [ "$OTHER_DEPENDENCY" == "1" ]; then echo "===================Setting UP OTHER_DEPENDENCY DEPENDENCY...=======================" - echo $ROOT_PASSWD | sudo -S apt-get install -y libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev - echo $ROOT_PASSWD | sudo -S apt-get install -y libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install -y libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev + echo "$ROOT_PASSWD" | sudo -S apt-get install -y libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev pip3 install numpy pip3 install networkx - if [ $system_ver = "16.04" ]; then - echo $ROOT_PASSWD | sudo -S apt-get install -y --no-install-recommends libboost-all-dev + if [ "$system_ver" = "16.04" ]; then + echo "$ROOT_PASSWD" | sudo -S apt-get install -y --no-install-recommends libboost-all-dev cd /usr/lib/x86_64-linux-gnu - echo $ROOT_PASSWD | sudo -S ln -sf libboost_python-py35.so libboost_python3.so - elif [ $system_ver = "18.04" ]; then - echo $ROOT_PASSWD | sudo -S apt-get install -y --no-install-recommends libboost-all-dev - echo $ROOT_PASSWD | sudo -S apt install libboost-python1.62.0 + echo "$ROOT_PASSWD" | sudo -S ln -sf libboost_python-py35.so libboost_python3.so + elif [ "$system_ver" = "18.04" ]; then + echo "$ROOT_PASSWD" | sudo -S apt-get install -y --no-install-recommends libboost-all-dev + echo "$ROOT_PASSWD" | sudo -S apt install libboost-python1.62.0 fi echo "==== END install other dependencies ====" diff --git a/script/set_variable.sh b/script/set_variable.sh index 88fb16b6..bef756c7 100644 --- a/script/set_variable.sh +++ b/script/set_variable.sh @@ -14,5 +14,5 @@ elif [ "$openvino_version" == "binary" ]; then else echo "openvino version error" fi -echo "model_downloader="$model_downloader -echo "model_optimizer="$model_optimizer +echo "model_downloader=""$model_downloader" +echo "model_optimizer=""$model_optimizer" diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f6c1fde6..faa2a20d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -31,7 +31,7 @@ if(NOT OpenVINO_FOUND) endif() set(OpenVINO_LIBRARIES openvino::runtime) -# Find OpenCV libray if exists +# Find OpenCV library if exists find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) if(OpenCV_FOUND)