당신이 성취할 것

이 단원이 끝나면 OpenArm SDK가 설치된 Python 가상 환경을 갖게 되며 5줄 테스트 스크립트를 실행하면 다음 결과가 반환됩니다. True ~에서 arm.ping(). 이러한 확인은 Python 코드에 팔에 대한 실시간 통신 채널이 있음을 의미합니다. 이는 단원 3~6의 모든 내용이 구축되는 기반입니다.

전체 SDK 설치 및 구성 문서는 다음 위치에 있습니다. 하드웨어/오픈암/소프트웨어. 이 단위는 필요한 컨텍스트에 따라 처리하고 가장 일반적인 실패 모드를 다루는 프레임입니다.

SDK 설치

다음을 통해 작업하세요. 소프트웨어 설정 가이드 전체 SDK 설치를 위해. 짧은 버전:

# Create an isolated environment for this path python3 -m venv ~/openarm-env 소스 ~/openarm-env/bin/activate # Install the SDK and its dependencies pip install openarm-sdk lerobot 토치 torchvision

설치에는 인터넷 연결 상태에 따라 5~15분이 소요됩니다. 그만큼 torch 그리고 lerobot 패키지는 크지만 유닛 4와 5에 필요하므로 지금 설치하세요.

빠른 Python 연결 테스트

ROS 2가 실행되고(Unit 1에서) 가상 환경이 활성화된 상태에서 이 테스트를 실행하세요. 전체 스택이 엔드 투 엔드로 작동하는지 확인하는 가장 빠른 방법은 다음과 같습니다.

# Make sure ROS 2 is running first (from a separate terminal) # source ~/openarm_ws/install/setup.bash && ros2 launch openarm_bringup real.launch.py openarm 가져오기 OpenArm에서 팔 = 오픈암() # connects via ROS 2 action server 인쇄(arm.ping()) # should print: True 인쇄(arm.get_joints()) # should print: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 팔.닫기()

만약에 arm.ping() 보고 True 그리고 arm.get_joints() 현재 관절 각도를 반환하면 완료됩니다. 오류가 표시되는 경우에만 문제 해결 섹션으로 이동하세요.

문제 해결: 가장 일반적인 3가지 연결 오류

오류 1: ConnectionRefusedError 또는 시간 초과 OpenArm()

ROS 2가 실행되고 있지 않거나 작업 서버가 아직 시작되지 않았습니다. 확인해보세요 ros2 node list/openarm_controller. 그렇지 않은 경우 ROS 2 터미널로 돌아가서 오류 없이 실행이 완료되었는지 확인하세요. 일반적인 하위 원인: 시작하기 전에 작업공간을 소싱하는 것을 잊었습니다. 단원 1, 중요한 단계 2를 참조하세요.

오류 2: can0: Network is down ROS 2 터미널에서

SocketCAN 인터페이스가 삭제되었습니다. 이 문제는 USB-CAN 어댑터를 다시 실행하지 않고 분리했다가 다시 연결한 경우 발생합니다. ip link set 명령. 달리다 sudo ip link set can0 up type can bitrate 1000000, ROS 2 실행을 다시 시작하세요. 부팅 시 자동으로 실행되도록 시작 스크립트에 다음 명령을 추가합니다. sudo nano /etc/network/interfaces.d/can0.

오류 3: arm.get_joints() 팔이 원위치되지 않은 경우에도 모두 0을 반환합니다.

이는 오류가 아닙니다. 이는 팔을 의미합니다. ~이다 조인트 상태를 보고하지만 교정이 완료되지 않을 수 있습니다. 팔이 물리적으로 0 포즈에 있으면 0이 올바른 것입니다. 팔의 각도가 다르지만 여전히 0이 보고되는 경우 웹 UI에서 보정을 다시 실행하세요(단위 1, 중요 단계 4). 조인트 인코더는 절대 위치를 설정하기 위해 원점 복귀 시퀀스가 ​​필요합니다.

단원 2 완료 시기...

arm.ping() 보고 True Python 터미널에서. 테스트 스크립트는 처음부터 끝까지 오류 없이 실행됩니다. 팔을 물리적으로 움직일 때 관절 각도 값이 실시간으로 변경되는 것을 볼 수 있습니다. arm.get_joints() 루프에서 폴링됩니다. 이제 Unit 3을 시작할 준비가 되었습니다.