Adapter util 패키지

Adapter util 패키지는 Mech-Center 소프트웨어 설치 경로 아래의 /src/util 폴더에 있으며, 많은 모듈을 포함하고 몇 가지 공통 함수를 제공합니다. 프로그래밍 과정에서 먼저 util 패키지에 어느 함수의 기능이 구현되었는지 확인합니다. 기능이 구현되어 있으면 직접 사용할 수 있고, 구현하지 않고 보다 일반적이면 작은 함수로 추상화하여 util 패키지에 추가할 수 있습니다.

다음은 각 모듈에 대한 간략한 소개입니다.

database 모듈

database 모듈은 데이터베이스에 대한 작업을 제공합니다. Mech-Center는 실행 시 기본적으로 mechmind.db 데이터베이스 파일을 생성하며, 이는 실행 중인 로그를 저장하는 데 사용됩니다. database 모듈은 하나 또는 모든 기록을 조회하기 위해 SQL 문을 실행하는 기능을 제공합니다.

json_keys 모듈

json_keys 모듈은 Mech-Center에서 사용되는 json 키/값 문자열을 저장하며, 다른 모듈에서 직접 가져와서 사용할 수 있습니다.

message_box 모듈

message_box 모듈은 팝업 프롬프트의 기능을 제공하며 팝업 프롬프트의 종류에는 정보(information), 경고(warning), 위험(critical)이 있습니다.

timestamp 모듈

timestamp 모듈은 현재 타임스탬프를 반환하는 기능을 제공합니다.

transforms 모듈

transforms 모듈은 오일러 각에서 사원수로/사원수에서 오일러 각으로 전환, 포즈 곱셈, 물체 포즈에서 TCP 포즈로/TCP 포즈에서 물체 포즈로 전환, 물체 회전 계산 등과 같은 기능을 제공합니다. transforms3d도 오일러 각에서 사원수로, 사원수에서 오일러 각으로 전환하는 기능을 제공하지만 실제 사용에서는 transforms3d로 변환된 값이 잘못된 경우가 있습니다. 실제 계산에서는 transforms3d 라이브러리를 먼저 사용할 수 있으며, 결과가 틀리면 transforms 모듈에서 제공하는 사용자 정의 변환 함수를 사용할 수 있습니다.

util_file 모듈

util_file 모듈은 파일 읽기 및 쓰기 기능을 제공합니다. 일반적으로 사용되는 json 파일 읽기 및 쓰기를 포함합니다.

timer 모듈

timer 모듈은 편리한 타이머 클래스를 제공합니다. 타이밍 기능이 필요한 경우 Timer 대상을 생성하고 콜백 함수를 전달하고 start()를 호출할 수 있습니다. 사용 후 Timer 대상은 소멸될 필요가 없으며 프로그램이 종료될 때 자동으로 소멸됩니다.

pose 모듈

pose 모듈은 Mech-Viz의 포즈 표현과 동일한 클래스를 제공합니다. 예를 들면 평행이동(미터 단위) 및 회전(사원수 형식)을 포함하며 역계산 및 곱셈 연산을 할 수 있고 list에서 전환 또는 list로 전환을 할 수 있습니다. 또한 pose 모듈은 pose의 단위 전환 함수를 제공합니다. 예를 들면 밀리미터에서 미터로, 미터에서 밀리미터, 라디안에서 도, 도에서 라디안, 사원수에서 오일러 각으로, 오일러 각에서 수원수 등 전환입니다.