How to rotate angle in shortest path using position control mode in dynamixel?

Hello,

I am trying to rotate the dynamixel with shortest path.
I mean, when the motor is at 10 degree and want to rotate 350 degree, it should rotate -20 degree direction but it rotates over 340 degree.

What I am considering is two options

  1. Use extended position mode
  2. Use custom pid control loop using velocity mode

But I am worried extended position mode only supports upto 255 revolution, so I have no idea what if the number of rotation exceeds it.
And if I use custom pid control loop I should tune the pid gain, which is very cumbersome.

Is there any good method for implementing this?

Thank you,
Jongwon Lee

안녕하세요.

  1. 확장 위치제어 모드는 -256 ~ 256 [rev]으로 최대 512 회전을 합니다.
    -256 ~ 256 [rev] 이상으로는 회전이 안됩니다.

다음의 경우 한 바퀴의 절대위치값으로(1 rev)으로 초기화 됩니다.

    1. Operating Mode(11)가 위치 제어 모드로 변경 될 때.
    1. 위치 제어 모드에서 Torque OFF 에서 Torque ON 으로 변경 될 때.
    1. 전원을 끄고 키거나, Reboot Instruction 사용 시.
  1. 추가 방법으로 사용하시는 각도를 Homing Offset(20) 으로 ‘0’ 점 위치를변경하시면 10도 ~ 350의 최단 경로로 회전이 가능합니다.

    예) Homing Offset(20)을 1024 설정
    Goal Position 값을 1300, 800을 각각 주시면
    실제 다이나믹셀은 10도 ~ 350도 구간을 최단거리로 이동합니다.

감사합니다.

감사합니다.

말씀하신 바를 이해한게 맞다면, 아래와 같이 두가지 옵션이 존재하겠군요.

  1. extended position mode에서 제어하고, -256에서 256을 넘어갈것같으면 reboot instruction 사용
  2. homing offset을 적절히 설정.

1번의 경우에는 이해가 되는데, 2번의 경우 결국 0점 위치를 다른 곳으로 옮긴 것이기 때문에 다른 각도에서 최단 경로로 이동할 수 없는 문제가 발생하지 않나요??

답변주셔서 감사드립니다.

특정 각도 이외에 다른 위치 값도 사용하신다면 extended position mode를 사용하는 게 좋아 보입니다.