Python 例程使用指南
本节介绍如何配置和运行 Mech-Vision SDK 的 Python 例程。
使用前提
-
已完成 SDK 环境配置。
-
Python 3.8 或以上版本。
-
已安装
mmind_vision包(参见 Python 环境配置)。 -
Mech-Vision 已安装并可正常运行。
例程简介
Python 例程位于 development/python/examples/ 目录,单文件形式,包含以下例程:
| 例程文件 | 说明 |
|---|---|
|
打开/关闭/保存/重命名方案,获取方案信息和工程信息列表。 |
|
运行工程,获取输出数据(抓取点位姿)。 |
|
操作工程数据存储,读写存储数据。 |
|
获取参数配方列表,切换当前参数配方。 |
|
获取和修改方案的通信配置(TCP/IP、Modbus 等)。 |
|
获取方案中相机的连接状态、温度、传输速度等设备状态信息。 |
|
读取和写入方案中的全局变量(整型、浮点型、字符串、队列等)。 |
|
获取步骤信息,固定步骤输出端口,运行工程后获取步骤输出数据(如点位姿)。 |
|
通过 JSON 格式读取和设置步骤参数。 |
运行例程
-
确保 Mech-Vision 已启动。
-
修改例程文件中的方案路径,将默认路径替换为实际方案路径:
path = "D:/path/to/your/solution" -
在命令行中运行例程:
python solution_basic.py
代码示例
打开方案并获取工程信息(solution_basic.py)
import mmind_vision
from mmind_vision import *
def main():
# 打开方案
solution = Solution()
solution.open("D:/data/vision_sdk_example", "", "")
# 获取方案信息
solution_info = solution.get_info()
print(f"Solution: {solution_info.name}")
print(f"Path: {solution_info.path}")
# 获取工程信息列表
project_infos = solution.get_all_project_infos()
for info in project_infos:
print(f" Project: {info.name}, Running: {info.is_running}")
# 保存并关闭方案
solution.save()
solution.close()
if __name__ == '__main__':
mmind_vision.initialize()
main()
mmind_vision.uninitialize()
运行工程并获取输出数据(project_basic.py)
import mmind_vision
from mmind_vision import *
import json
def main():
solution = Solution()
solution.open("D:/data/vision_sdk_example", "", "")
# 获取第一个工程名称
project_infos = solution.get_all_project_infos()
project = Project(project_infos[0].name)
# 运行工程(等待工程执行完成)
project_result = project.run(
ProjectRunWaitState.Finished, "request_1")
# 解析输出数据(抓取点位姿)
output = json.loads(project_result.output_json)
pick_points = output.get("workobject_data", {}).get("pick_points", [])
print(f"Pick points count: {len(pick_points)}")
if __name__ == '__main__':
mmind_vision.initialize()
main()
mmind_vision.uninitialize()
读取和设置步骤参数(step_props.py)
import mmind_vision
from mmind_vision import *
import json
def main():
solution = Solution()
solution.open("D:/data/vision_sdk_example", "", "")
step = Step("3D Matching_1", "Matching")
# 读取步骤参数
names_json = json.dumps(["confidenceThreshold"])
props_json = step.get_properties_json(names_json)
props = json.loads(props_json)
print(f"Confidence threshold: {props['confidenceThreshold']}")
# 设置步骤参数
new_props = json.dumps({"confidenceThreshold": 0.8})
step.set_properties_json(new_props)
if __name__ == '__main__':
mmind_vision.initialize()
main()
mmind_vision.uninitialize()