기본 ROS를 사용하여 로봇공학 연구를 단순화하는 방법
홈페이지홈페이지 > 블로그 > 기본 ROS를 사용하여 로봇공학 연구를 단순화하는 방법

기본 ROS를 사용하여 로봇공학 연구를 단순화하는 방법

Sep 02, 2023

작성자: The Robot Report 직원 | 2023년 8월 28일

ROS(로봇 운영 체제)는 로봇 공학 연구를 위한 강력한 오픈 소스 플랫폼이지만 최근까지 ROS 소프트웨어 스택과 긴밀하게 통합되는 산업용 품질의 하드웨어가 부족했습니다. 로봇 장비 제조업체는 조작기에 독점적인 비공개 소스 소프트웨어 및 제어 시스템을 사용하므로 연구원은 산업용 로봇에 ROS를 사용하기 위해 가파른 언덕을 오르게 됩니다.

이러한 요구를 해결하고 ROS 개발 커뮤니티의 기능을 향상시키기 위해 Tormach는 현대 로봇 응용 분야를 괴롭히는 "블랙 박스" 문제를 방지하는 ROS 기반 산업용 로봇 조작기 및 제어 시스템을 만들었습니다. 또한 Tormach의 제어 시스템인 PathPilot은 Python을 로봇 프로그래밍 언어로 사용하여 로봇 동작을 위한 직관적인 프로그래밍 인터페이스를 생성하고 Python 패키지 생태계의 잠재력을 발휘합니다.

제어 시스템, 산업용 로봇 하드웨어 및 모든 시스템 매개변수에 대한 전체 액세스를 포함하는 이 오픈 소스 ROS 기반 로봇 플랫폼은 더 많은 연구자, 개발자 및 학생에게 산업용 로봇을 제공하는 빠르고 접근 가능한 솔루션을 만듭니다.

로봇 제어 제조업체는 다음과 같은 이유로 ROS 개발자가 비공개 소스 제어의 모든 시스템 매개변수에 액세스하는 것을 주저합니다.

이러한 이유로 ROS와 상용 로봇 하드웨어 간의 통합은 제한됩니다. ROS를 다른 산업용 로봇에 연결하기 위한 드라이버가 존재하지만, 낮은(10~100Hz) 대역폭 구현은 단순히 독점 폐쇄 소스 컨트롤러에 웨이포인트를 드립 피드합니다.

결과적으로 사용자는 로봇이 타이밍, 속도 및 경로 정확도 의도를 준수하는지 여부에 액세스하지 못할 수 있습니다. 모터 토크, 전류, 추종 오류와 같은 데이터는 일반적으로 사용할 수 없으며 느린 제어 루프는 연구자가 수행할 수 있는 작업을 심각하게 제한합니다.

VULCAN 기기에 설치된 OpenN-AM 실험 플랫폼은 용융 금속 층을 인쇄하여 복잡한 모양을 만드는 Tormach ZA6 로봇 팔을 갖추고 있습니다. 3D 프린팅된 용접부를 중성자 빔으로 현미경으로 연구하면 연구자들은 가열 및 냉각으로 인한 응력과 같은 요인을 더 잘 이해할 수 있습니다. (제공: ORNL/Jill Hemman)

ROS/HAL 하드웨어 및 소프트웨어 스택은 귀중한 제어 기회를 제공할 수 있는 피드백을 제공합니다.

ZA6은 다음을 제공합니다.

이러한 피드백 요소의 대부분은 하위 수준 제어 레이어에만 중점을 둡니다. 더 높은 수준의 제어 계층은 연구 요구 사항에 따라 다른 기회를 제공할 수 있습니다.

ROS와 로봇 하드웨어 간의 연결은 HAL(하드웨어 추상화 계층)에 의존합니다. HAL은 25년 전 NIST(National Institute of Standards and Testing)에서 시작된 오픈 소스 EMC(Enhanced Machine Controller) 프로젝트에서 발전했습니다.

HAL은 유연하고 100% 오픈 소스이며 전 세계 수천 대의 컴퓨터에서 사용되기 때문에 HAL의 활발한 개발은 LinuxCNC 및 Machinekit 프로젝트를 통해 오늘날에도 계속되고 있습니다.

HAL은 명명된 신호를 통해 연결되는 명명된 핀을 업데이트하고, 읽고, 작성하여 서로 통신하는 모듈식 구성 요소(로드 가능한 바이너리 모듈)로 구성됩니다. 어떤 면에서 HAL은 ROS와 유사하지만 중요한 차이점이 있습니다.

Tormach 로봇은 ROS와 오픈 소스 hal_ros_control 구성 요소 사이의 격차를 해소합니다. HAL과 ROS의 결합을 통해 풍부한 로봇 데이터를 사용자에게 노출할 수 있습니다. 모든 프로세스 데이터는 쉘 명령, 데이터 로거 유틸리티 및 그래픽 범위를 통해 액세스할 수 있습니다. 토크, 전류, 추종 오류, 위치, 속도 등을 포함한 EtherCAT 버스의 모든 정보는 1kHz에서 제공되며 HAL을 통해 ROS에 노출됩니다.

HAL은 모듈식이며 유연하므로 사용자는 사전 구축된 HAL 구성 요소를 사용하거나 C 또는 Python으로 새 구성 요소를 작성하여 로봇의 HAL 구성을 변경할 수 있으므로 거의 모든 외부 장치 또는 프로세스와 쉽게 통합할 수 있습니다.