Python을 통해 결과를 계산하기
기능 설명
이 스텝에서는 Python을 통해 사용자 정의 스크립트를 실행하고 계산 결과를 Mech-MSR로 출력할 수 있습니다.
이 스텝의 특징은 다음과 같습니다.
-
멀티스레드 사용을 지원합니다.
-
Python 스크립트는 실시간으로 로드될 수 있습니다.
-
C++와 Python 간에 데이터를 전송할 때 여러 데이터 유형의 변환을 지원합니다.
-
Python 측에서 Mech-MSR로 로그 리디렉션을 지원합니다.
입력 및 출력
-
입력: 입력 포트 파라미터에 입력된 데이터 유형에 따라 결정됩니다.
-
출력: 출력 포트 파라미터에 입력된 데이터 유형에 따라 결정됩니다.
이번 스텝의 입출력 포트의 데이터 유형은 이전 스텝과 이후 스텝의 입출력 포트의 데이터 유형에 따라 결정될 수 있습니다. |
설치 및 사용
설치 방법
Python 3.9.13은 Mech-MSR 소프트웨어에 내장되어 있으며, 이 스텝은 소프트웨어에 내장된 환경을 사용합니다. 사용 중에 Python 라이브러리가 누락된 경우 누락된 Python 라이브러리를 Mech-MSR에 내장된 Python 환경에 설치해야 합니다. 설치 방법은 다음과 같습니다.
-
명령 프롬프트를 엽니다.
-
명령줄에서
cd
명령을 사용하여 경로를 Mech-MSR의 Python 디렉터리로 전환합니다. -
python -m pip install Python 라이브러리
명령을 실행하여 해당 Python 라이브러리를 다운로드하여 설치합니다.
Mech-MSR에 일반적으로 사용되는 두 가지 Python 라이브러리인 NumPy와 OpenCV가 내장되어 있습니다. |
사용 방법
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]]
|
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 |
리스트 |
프로파일 데이터 |
- 스크립트 파일 경로
-
파라미터 설명: 이 파라미터는 로드할 스크립트의 파일 경로를 선택하는 데 사용됩니다.
- 호출되는 함수 이름
-
파라미터 설명: 이 파라미터는 호출할 스크립트 함수의 이름을 설정하는 데 사용됩니다.