TimSchneider42/franky

High-Level Control Library for Franka Robots with Python and C++ Support

해결하는 문제

Franka 로봇을 제어하려면 일반적으로 1 kHz의 엄격한 실시간 프로그래밍이 필요하며, 이는 Python과 같은 비실시간 환경에서 달성하기 어렵습니다. franky는 내부적으로 실시간 요구 사항을 처리하는 하이레벨 제어 인터페이스를 제공하여 이러한 장벽을 제거함으로써, 사용자가 ROS나 복잡한 실시간 설정 없이도 로봇을 제어할 수 있도록 합니다.

작동 방식

이 라이브러리는 저수준 명령을 요구하는 대신 하이레벨 위치 또는 속도 목표를 수용합니다. Ruckig 라이브러리를 사용하여 속도, 가속도 및 저크 제한을 준수하면서 실시간으로 시간 최적화된 궤적을 계획합니다. 또한 동적으로 운동 명령을 업데이트하여 예기치 않은 이벤트(환경 접촉 등)를 처리하는 반응 시스템을 포함하며, 궤도를 즉석에서 재계획하기 위한 동작 선점(preemption)을 허용합니다.

대상

ROS의 오버헤드나 저수준 실시간 프로그래밍의 복잡성 없이 Python 또는 C++를 사용하여 로봇 제어를 구현하는 더 간단한 방법을 원하는 Franka 로봇 사용자 개발자 및 연구자.

주요 특징

  • 멀티모달 제어: 데카르트 및 관절 위치/속도 제어뿐만 아니라 직접적인 토크 및 임피던스 제어를 지원합니다.
  • ROS 불필요: pip를 통해 설치할 수 있으며 Python에서 직접 사용할 수 있습니다.
  • 반응형 시스템: 예기치 않은 이벤트에 대한 실시간 반응을 정의하고 모니터링을 위해 비차단(non-blocking) 콜백을 사용할 수 있습니다.
  • 전체 API 액세스: 그리퍼 제어 및 로봇 상태 읽기를 포함하여 libfranka API의 대부분에 대한 Python 액세스를 제공합니다.
  • 시뮬레이션 지원: 실제 하드웨어에 배포하기 전에 코드를 테스트할 수 있도록 franky-sim과 호환됩니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트