def Init(self, config_path = g_data_dir + "vision/config.json"): with open(config_path, "rb") as f: self.config = json.load(f) self.use_sim = self.config["use_sim"] if not self.use_sim: self.cam = RVCManager(self.config["camera"]) if not self.cam.status: self.error_msg = f"相机 {self.cam.sn} 初始化失败!!" vision_log.error(f"{self.error_msg}") return False # 读取网络 ie = IECore() net_openvino = ie.read_network(model=g_data_dir + self.config["train_model_path"]) self.net = ie.load_network(network=net_openvino, device_name="CPU") # from robot_base to camera self.T_b_c = Pose(self.config['hand_eye_transform']).Transform() self.z_direction = [0, 0, -1] # 最后位姿的z方向 self.welding_pts_3d = [] # 焊点的3d坐标 return True
时间: 2024-02-14 13:19:44 浏览: 121
这段代码定义了 `VisionManager` 类的 `Init()` 方法,用于初始化视觉管理器。该方法接受一个可选参数 `config_path`,默认值是 `g_data_dir + "vision/config.json"`。
该方法首先使用 `open()` 函数打开指定路径的 JSON 配置文件,并使用 `json.load()` 函数将其读入内存中,存储到 `self.config` 属性中。
然后,根据配置文件中指定的相机类型,初始化 `self.cam` 属性,如果相机初始化失败,返回 False。
接下来,使用 OpenVINO 的 `IECore()` 类创建 `ie` 对象,并使用 `ie.read_network()` 函数读取指定路径的深度学习模型。然后,使用 `ie.load_network()` 函数将网络加载到 `self.net` 属性中,并指定设备名称为 "CPU"。
接着,根据配置文件中的手眼转换矩阵,计算从机器人基座到相机的变换矩阵,并将其存储到 `self.T_b_c` 属性中。同时,记录最后位姿的 z 轴方向和焊点的 3D 坐标。
最后,如果成功完成初始化,返回 True。
阅读全文