안녕하세요, Nero 로봇팔을 구매하여 개발 진행 중인 사용자입니다.
현재 제공해주신 오픈소스 라이브러리와 패키지를 활용해 제어 환경을 구축하던 중, 몇 가지 의문점이 생겨 Discussion을 통해 문의드립니다.
1. joint_limits 수동 수정 시 펌웨어 영향 및 안전성 여부
제공해주신 URDF 파일과 pyAgxArm 라이브러리를 사용해 아래와 같이 설정 값을 가져오고 있습니다.
cfg = create_agx_arm_config(robot=ArmModel.NERO, firmware_version=NeroFW.V111)
하지만 이 cfg를 통해 획득한 joint_limits와 URDF에 명시된 관절 가동 범위가, 실제 로봇팔이 물리적으로 움직일 수 있는 범위보다 다소 좁게 설정되어 있음을 확인했습니다. 이로 인해 티칭, 리더모드 등을 통해 수동으로 팔을 움직여 놓은 특정 자세가, MoveIt 상에서는 범위를 벗어나 동작 불가능으로 판정되는 현상이 발생하고 있습니다.
이를 해결하기 위해 URDF 파일의 limit 속성을 수정하고, 파이썬 내부에서 cfg 변수(Dict 타입)의 joint_limits 값을 직접 변경하여 가동 범위를 넓히려고 합니다.
질문: 소프트웨어 단(URDF, pyAgxArm dict)에서 limit 값을 확장할 경우, 펌웨어 단에서 자체적으로 걸려 있는 제한과 충돌하거나 시스템에 무리를 줄 수 있는지 궁금합니다. (단순히 가동 범위만 늘어나는 유효한 변경인지, 혹은 펌웨어 단의 캘리브레이션이나 제어 로직에 문제를 유발할 소지가 있는지 답변 부탁드립니다.)
2. ROS 2 Control (Hardware Interface) 지원 여부
현재 패키지 구조를 분석한 결과, 공식 ros2_control을 사용하지 않고 pyAgxArm 라이브러리를 사용하는 agx_arm_ctrl_single_node.py 형태의 독자적인 노드로 하드웨어를 제어하고 있는 것으로 파악했습니다.
질문: 현재 Nero 로봇팔을 위해 공식적으로 지원되는 ros2_control 하드웨어 인터페이스 패키지가 존재하는지 궁금합니다.
3. 영점(Homing) 설정 방법 및 오작동 확인
nero_api.md 문서 상에서는 자동 영점 세팅(Auto Homing) 방법을 명확히 찾기 어려워 질문드립니다.
질문: 라이브러리 내부적으로 자동 영점 세팅을 수행하는 명령어가 따로 존재하나요? 또한, 자동 영점 구동 시 Joint 6이 한쪽 방향으로 확 꺾였다가 돌아오는 현상이 발생하는데, 이것이 정상 시퀀스인지 아니면 오작동인지 확인 부탁드립니다. (영상)
질문: 수동 영점 세팅 시 Joint 1은 물리적 노치(Notch)가 있어 기준을 잡기 수월했으나, Joint 2, 4, 6, 7은 기준 마크를 찾기 어렵습니다. 이 관절들은 외관상 무엇을 기준으로 정렬 상태를 맞춰야 하는지 가이드 부탁드립니다.