NVlabs/Deep_Object_Pose

Error when roslaunch dope dope.launch

Closed this issue · 2 comments

device version:ubuntu16、python 2.7、torch=0.4.0、torchvision=0.2.0

First time:roslaunch dope dope.launch,

it turns out a error:
Traceback (most recent call last):
File "/home/sch/catkin_ws/src/DOPE-ROS-D435-master/dope/nodes/dope", line 23, in
from dope.inference.cuboid import Cuboid3d
ImportError: No module named inference.cuboid

I copy the inference/ folder into nodes/ and remove the dope. prefix in the imports of the dope python executable

It look like this:

import cv2
import message_filters
import numpy as np
import resource_retriever
import rospy
import tf.transformations
from PIL import Image
from PIL import ImageDraw
from cv_bridge import CvBridge
from inference.cuboid import Cuboid3d
from inference.cuboid_pnp_solver import CuboidPNPSolver
from inference.detector import ModelData, ObjectDetector
from geometry_msgs.msg import PoseStamped
from sensor_msgs.msg import CameraInfo, Image as ImageSensor_msg
from std_msgs.msg import String
from vision_msgs.msg import Detection3D, Detection3DArray, ObjectHypothesisWithPose
from visualization_msgs.msg import Marker, MarkerArray

Then it turn out the second error: I can't find out what result this

Traceback (most recent call last):
File "/home/robot/catkin_ws/src/dope/nodes/dope", line 24, in
from inference.cuboid_pnp_solver import CuboidPNPSolver
File "/home/robot/catkin_ws/src/dope/nodes/inference/cuboid_pnp_solver.py", line 8, in
from pyrr import Quaternion
File "/home/robot/miniconda3/envs/dope/lib/python2.7/site-packages/pyrr/init.py", line 57, in
from .objects import (
File "/home/robot/miniconda3/envs/dope/lib/python2.7/site-packages/pyrr/objects/init.py", line 13, in
from . import (
File "/home/robot/miniconda3/envs/dope/lib/python2.7/site-packages/pyrr/objects/matrix33.py", line 63, in
from multipledispatch import dispatch
File "/home/robot/miniconda3/envs/dope/lib/python2.7/site-packages/multipledispatch/init.py", line 1, in
from .core import dispatch
File "/home/robot/miniconda3/envs/dope/lib/python2.7/site-packages/multipledispatch/core.py", line 4, in
from .dispatcher import Dispatcher, MethodDispatcher, ambiguity_warn
File "/home/robot/miniconda3/envs/dope/lib/python2.7/site-packages/multipledispatch/dispatcher.py", line 3, in
from .conflict import ordering, ambiguities, super_signature, AmbiguityWarning
File "/home/robot/miniconda3/envs/dope/lib/python2.7/site-packages/multipledispatch/conflict.py", line 2, in
from .variadic import isvariadic
File "/home/robot/miniconda3/envs/dope/lib/python2.7/site-packages/multipledispatch/variadic.py", line 77
class Variadic(metaclass=VariadicSignatureMeta):
^
SyntaxError: invalid syntax
[dope-2] process has died [pid 11804, exit code 1, cmd /home/robot/catkin_ws/src/dope/nodes/dope __name:=dope __log:=/home/robot/.ros/log/5855623e-7ae7-11ee-ab6c-3c95094b5ce3/dope-2.log].
log file: /home/robot/.ros/log/5855623e-7ae7-11ee-ab6c-3c95094b5ce3/dope-2*.log

You did not bring all the code, you are missing the cuboid file.

I sure that I have downloaded the cuboid file to the /src/dope/inference/ folder. but, the dope.py file in /dope/node/ folder cannot read the class functions in /src/dope/inference/cuboid.py ,look this:

robot@WP:~/catkin_ws/src/dope/src$ tree
.
└── dope
├── inference
│ ├── cuboid_pnp_solver.py
│ ├── cuboid.py
│ ├── detector.py
│ └── init.py
├── init.py
└── utils.py

The second folder:
robot@WP:~/catkin_ws/src/dope/nodes$ tree
.
├── camera
├── dope
└── inference
├── cuboid_pnp_solver.py
├── cuboid_pnp_solver.pyc
├── cuboid.py
├── cuboid.pyc
├── detector.py
├── init.py
└── init.pyc

So i have to put src/dope/inference file down /dope/node/ ,Then dope.py can import inference.cuboid’s class,but it turn out new error: That's the second question asked above