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()