Python을 통해 결과를 계산하기

기능 설명

이 스텝에서는 Python을 통해 사용자 정의 스크립트를 실행하고 계산 결과를 Mech-MSR로 출력할 수 있습니다.

이 스텝의 특징은 다음과 같습니다.

  • 멀티스레드 사용을 지원합니다.

  • Python 스크립트는 실시간으로 로드될 수 있습니다.

  • C++와 Python 간에 데이터를 전송할 때 여러 데이터 유형의 변환을 지원합니다.

  • Python 측에서 Mech-MSR로 로그 리디렉션을 지원합니다.

응용 시나리오

사용자 정의 계산이 필요한 경우 사용자는 이 스텝을 사용하여 작성된 Python 스크립트를 실행하여 측정 솔루션을 단순화할 수 있습니다.

입력 및 출력

  • 입력: 입력 포트 파라미터에 입력된 데이터 유형에 따라 결정됩니다.

  • 출력: 출력 포트 파라미터에 입력된 데이터 유형에 따라 결정됩니다.

이번 스텝의 입출력 포트의 데이터 유형은 이전 스텝과 이후 스텝의 입출력 포트의 데이터 유형에 따라 결정될 수 있습니다.

설치 및 사용

설치 방법

Python 3.9.13은 Mech-MSR 소프트웨어에 내장되어 있으며, 이 스텝은 소프트웨어에 내장된 환경을 사용합니다. 사용 중에 Python 라이브러리가 누락된 경우 누락된 Python 라이브러리를 Mech-MSR에 내장된 Python 환경에 설치해야 합니다. 설치 방법은 다음과 같습니다.

  1. 명령 프롬프트를 엽니다.

  2. 명령줄에서 cd 명령을 사용하여 경로를 Mech-MSR의 Python 디렉터리로 전환합니다.

  3. python -m pip install Python 라이브러리 명령을 실행하여 해당 Python 라이브러리를 다운로드하여 설치합니다.

Mech-MSR에 일반적으로 사용되는 두 가지 Python 라이브러리인 NumPy와 OpenCV가 내장되어 있습니다.

사용 방법

Python 스크립트를 준비한 후 이 스텝을 다음과 같이 사용하십시오(각 파라미터에 대한 설명은 파라미터 설명 부분 참조).

  1. 입력/출력 포트의 데이터 유형을 설정합니다. 이전 또는 이후 스텝의 입력/출력 포트의 데이터 유형에 따라 입력 포트출력 포트의 데이터 유형을 입력합니다.

  2. Python 스크립트 경로를 설정합니다. 스크립트 파일 경로에서 로드할 스크립트의 경로를 선택합니다.

  3. 호출할 함수의 이름을 설정합니다. 스크립트 파일 경로가 지정되면 이 스텝에서는 스크립트의 함수 이름을 자동으로 검색하고 호출할 함수 이름의 드롭다운 목록에서 호출할 함수 이름을 선택합니다.

  4. 스텝을 실행합니다.

  • Python 스크립트를 작성할 때 데이터를 얻기 위해 스크립트에 명령문을 작성하지 않고도 Mech-MSR 데이터를 처리하는 함수를 직접 작성할 수 있습니다.

  • Python 스크립트가 변경될 때 이 스텝에서 최신 Python 스크립트를 실시간으로 실행하려면 스텝 파라미터의 실행 플래그에서 파일 리로딩을 선택하면 됩니다.

사용 시 주의사항

Python 스크립트를 작성하고 이 스텝에서 스크립트를 실행할 때 다음 문제에 주의하십시오.

타사 라이브러리 사용 권장

Mech-MSR에서 Python 스크립트를 실행하는 것은 Python 환경에서 스크립트를 직접 실행하는 것과 다르기 때문에 일부 Python 라이브러리가 성공적으로 설치되지 않거나 설치 후 제대로 작동하지 않을 수 있으므로 타사 라이브러리를 사용하는 것이 좋습니다.

NumPy 라이브러리 사용

NumPy 라이브러리는 일부 복잡한 형식의 데이터를 지원하는 데 사용됩니다. 파라미터 유형이 NumPy인데 NumPy를 가져오지 않은 경우 오류가 발생할 수 있습니다. 따라서 스크립트 시작 부분에 import numpy를 추가해야 합니다.

스크립트 작성 시 데이터 차원 주의

Python 스크립트 작성 시 스텝의 각 포트에 해당하는 데이터의 차원을 참고하시기 바랍니다.

  • 기본 데이터 차원이 0: Image; Cloud(XYZ); Cloud(XYZ-Normal);

  • 기본 데이터 차원이 1: NumberList; BoolList; IndexList; StringList,Point2DList;

  • 기본 데이터 차원이 2: PoseList; Pose2DList; Size3DList.

데이터 차원을 추가하려면 데이터 유형 뒤에 "[]"를 사용하십시오.

예를 들어 NumberList의 데이터 차원은 1이고 NumberList[]의 데이터 차원은 2입니다.

파라미터 설명

입력 포트

파라미터 설명: 이 파라미터는 입력 포트의 데이터 유형을 지정하는 데 사용됩니다. 입력한 데이터 유형은 해당 순서에 따라 호출된 함수에 파라미터로 전달됩니다.

기본값: 비어 있음.

출력 포트

설명: 이 파라미터는 출력 포트의 데이터 유형을 지정하는 데 사용됩니다. 함수에서 반환된 데이터는 해당 순서대로 스텝에 반환되며 해당 데이터 유형에 따라 구문 분석됩니다.

기본값: 비어 있음.

현재 지원되는 데이터 유형은 다음과 같습니다.

스텝 포트 유형 Python에서 사용되는 데이터 유형 입력 데이터 예시

PoseList

리스트

[[10, 20, 30, 0.951, 0.255, 0.168, 0.045]], [10, 20, 30, 0.951, 0.255, 0.168, 0.045]]
(각 배열에서 처음 세 값은 좌표이고 다음 네 값은 사원수)

Pose2DList

리스트

[[0, 0, 0]], [2, 0, 120]]
(각 배열에서 처음 두 값은 각각 좌표의 X, Y 값이고 세 번째 값은 각도)

NumberList

리스트

[1.1, 2, 999.9, -22]

StringList

문자열

['string_1', 'string_2', 'string_3']

Image

8비트 부호 없는 정수/64비트 부동 소수점 숫자

이미지 데이터

Cloud(XYZ)

배열(Array)

포인트 클라우드 데이터

Cloud(XYZ-Normal)

배열(Array)

법선 방향이 있는 포인트 클라우드 데이터

Cloud(XYZ-RGB)

배열(Array)

컬러 포인트 클라우드 데이터

Size3DList

64비트 부동 소수점 숫자

[[2.5, 5, 0.001]], [6, 5, 0.02]]
(각 배열에서 처음 두 값은 너비와 높이이고 세 번째 값은 각 픽셀의 길이)

IndexList

정수

[45, 10, 90]

BoolList

부울

[True, False, True]

Point2DList

리스트

윤곽선 데이터

스크립트 파일 경로

파라미터 설명: 이 파라미터는 로드할 스크립트의 파일 경로를 선택하는 데 사용됩니다.

호출되는 함수 이름

파라미터 설명: 이 파라미터는 호출할 스크립트 함수의 이름을 설정하는 데 사용됩니다.

저희는 귀하의 개인 정보를 소중하게 생각합니다.

당사 웹사이트는 귀하에게 최상의 경험을 제공하기 위해 쿠키를 사용합니다. "모두 수락"을 클릭하시는 경우, 귀하는 사의 쿠키 사용에 동의하게 됩니다. "모두 거부"를 클릭하시는 경우, 귀하가 이 웹사이트를 방문할 때 추적되거나 기억되지 않도록 하기 위해 단일 쿠키가 사용됩니다.