2015-04-29 41 views
3

我正在研究一个GoPiGo,我试图让这个机器人在相机检测到一个圆时移动。错误库Raspbian与GoPiGo

我在这里的主要问题是,当我尝试使用gopigo库来使用fwd(),stop()等函数时,如果我不在命令行中使用sudo,并且只键入“蟒蛇CircleDetector_MOVEMENT.py”它检测到gopigo库,但没有检测到picamera.ar​​ray:

Traceback (most recent call last): 
    File "CircleDetector_MOVEMENT.py", line 2, in <module> 
    from picamera.array import PiRGBArray 
ImportError: No module named picamera.array 

这是我从PIRGBarray进口。当我使用sudo蟒蛇myprogram.py,它不检测gopigo库,错误是下一个:

Traceback (most recent call last): 
    File "CircleDetector_MOVEMENT.py", line 8, in <module> 
    from gopigo import *  #Has the basic functions for controlling the   GoPiGo Robot 
ImportError: No module named gopigo 

我想这可能是一些与许可相关的,但我不知道如何解决它。

所以,如果你知道这里会发生什么,我将不胜感激。在他们的论坛上告诉我这是一个I2C问题,但是我在这一切事情上都是白搭,我不知道如何解决它。

任何帮助表示赞赏。

P.S.这里,你是我的代码,如果有帮助:

#import everything i need to get working all modules. 
from picamera.array import PiRGBArray 
from picamera import PiCamera 
import time 
import cv2 
import os 
import numpy as np 
from gopigo import * #Has the basic functions for controlling the GoPiGo  Robot 
import sys #Used for closing the running program 
os.system('sudo modprobe bcm2835-v4l2') 

h=200 
w=300 

camera = PiCamera() 
camera.resolution = (w, h) 
camera.framerate = 5 
rawCapture = PiRGBArray(camera, size=(w, h)) 
time.sleep(0.1) 


for frame in camera.capture_continuous(rawCapture, format="bgr",  use_video_port=True): 
imagen_RGB = frame.array 
copia_RGB = imagen_RGB.copy() 



    gris = cv2.cvtColor(imagen_RGB, cv2.COLOR_BGR2GRAY) 
    gris = cv2.medianBlur(gris,9) 



    img_circulos = None 
    img_circulos = cv2.HoughCircles(gris, cv2.cv.CV_HOUGH_GRADIENT, 1, 20, param1=50, param2=50, minRadius=0, maxRadius=0) 


    if img_circulos is not None: 

     v = 1 
     img_circulos = np.round(img_circulos[0, :]).astype("int") 


     for (x, y, r) in img_circulos: 

      cv2.circle(copia_RGB, (x, y), r, (0, 255, 0), 3) 
      cv2.rectangle(copia_RGB, (x - 5, y - 5),(x + 5, y + 5), (0, 128, 255, -1)) 
    if v == 1 
     fwd() 

    cv2.imshow("Imagen Combinada", copia_RGB) 

    key = cv2.waitKey(1) & 0xFF 
    rawCapture.truncate(0) 
    if key == ord("q"): 
     break 

回答

0

您是否使用虚拟环境来运行OpenCV代码?如果是,那么您可能需要将gopigo.py复制到您的虚拟环境中并运行python <filename>以使其工作。

+2

这不是一个解答。一旦你得到50代表你可以评论任何地方。 – Drew