关于ros小车巡线或者沿着线走

巡线代码网络上都有。

 下面是计算所取区域的质心与整个图像的中心进行比对 ,然后进行巡线代码,一般来说是通过erro来进行转角,所以考虑到当你左边沿着线走的时候可以把erro修改一个 变成 

erro = cx(cx是取的图像的质心) - w/2(w是整个图的中心) - x(x就需要不断调试,可以让小车沿着线段跑/_)个人理解

        if        ['m00'] > 0:
            cx = int(M['m10']/M['m00'])
            cy = int(M['m01']/M['m00'])
            cv2.circle(image_np, (cx, cy), 10, (0, 0, 255), -1)
            print('chencxcy')
            print(cx)
            print(cy)
            # cv2.circle(image, (cx, cy), 10, (255, 0, 255), -1)
            #cv2.circle(image, (cx-75, cy), 10, (0, 0, 255), -1)
            #cv2.circle(image, (w/2, h), 10, (0, 255, 255), -1)
            if cv2.circle:
            # 计算图像中心线和目标指示线中心的距离
                erro = cx - w/2-15
                d_erro=erro-last_erro
                self.twist.linear.x = 0.18
                if erro!=0:
                    self.twist.angular.z = -float(erro)*0.005-float(d_erro)*0.000
                else :
                    self.twist.angular.z = 0
                last_erro=erro

你可能感兴趣的:(小车巡线,ubuntu)