Python スクリプトを含む ROS パッケージを作成しました。Python スクリプトは torch モジュールに基づいています (これは pytorch モデルの推論コードです)。スクリプトを実行しようとすると、エラーが発生します。
ImportError: No module named torch
ROS をインストールするに は、ROS wiki の指示を使用しました。インストールを検証するために、ROS (単純なパブリッシャーとサブスクライバー)のサンプル コードに従いましたが、うまく動作しました。私のシステム情報は次のとおりです。
Python: 3.6.9
torch: 1.1.0
torchvision: 0.3.0
OS カーネル: Linux 4.15.0-74-generic
OS ディストリビューション: Ubuntu 18.04.3
以下のライブラリをインポートしたい:
import torch
from cv_bridge import CvBridge
import cv2
import os
import numpy as np
from torch.autograd import Variable
from torchvision import transforms
import torch.nn.functional as F
import torch._utils
import time
from PIL import Image
私のCMakeファイルは以下の通りです:
cmake_minimum_required(VERSION 2.8.3)
project(inference_pytorch)
## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)
set(Torch_DIR ".local/lib/python3.6/site-packages/torch/share/cmake/Torch")
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
cv_bridge
)
find_package(Torch REQUIRED)
find_package(OpenCV 3 REQUIRED)
## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)
###################################
## catkin specific configuration ##
###################################
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES inference_pytorch
# CATKIN_DEPENDS roscpp rospy std_msgs
# DEPENDS system_lib
)
###########
## Build ##
###########
## Specify additional locations of header files
## Your package locations should be listed before other locations
include_directories(
# include
${catkin_INCLUDE_DIRS}
${OPENCV_INCLUDE_DIRS}
${Torch_INSTALL_INCLUDE}
${Torch_DIR}
)
#############
## Install ##
#############
# all install targets should use catkin DESTINATION variables
# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
install(PROGRAMS
scripts/inference_test.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
catkin_install_python(PROGRAMS scripts/inference_test.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
link_directories(
${Torch_INSTALL_LIB}
)
では、CMAKE ファイルをどのように編集して、前述のライブラリを ROS パッケージに追加すればよいでしょうか?