...
POST No. 2591851
다이나믹셀을 활용하여 로봇을 만들어 trajectory를 구성하여 움직이려고 합니다.
2022-05-05 17:54:28 k052211

다이나믹셀을 활용하여 로봇을 만들어 trajectory를 구성하여 움직이려고 합니다.

 

inverse kinematics로 trajectory를 구성하는 각 지점마다의 모터들의 각도를 구하여

 

움직이게 했는데, 이때 각 모터를이 속도는 똑같은데, 움직이는 각도가 달라,

 

동작이 매끄럽게 진행되지 않습니다.

 

예를 들어 설명드리자면

 

모터 1,2,3 이 있다고 했을 때,

 

지점1에서 지점 2에서 움직일때

 

모터1은 60도

 

모터2는 20도

 

모터 3은 120도를 움직여야 하지만

 

세 모터의 속도는 똑같아 

 

지점 1에서 2로 움직일 때, 세 모터가 동시에 부드럽게 움직이는게 아니라

 

뚝뚝 끊겨서 움직이는 것 처럼 됩니다.

 

혹시 여러개의 다이나믹셀을 동시에 제어할 때,   

 

각 모터들의 이동각도를 동시에 넣어주면

 

알아서 속도 조절을 해 동시에 딱 맞춰서 이동하도록 해주는 라이브러리나

 

기능이 있나요?

 

SDK 예제의 sync write 예제가 

 

여러개의 모터들을 동시에 제어하는 예제로 보이는데,

 

위에서 제가 말한 속도를 알아서 조절하여 맞춰주는 기능도 포함되어 있는지?

 

아니면 다른 함수로 구현되어 제공되어 있는지 궁금합니다.

 

다 아니라면 제가 직접 각도에 맞춰서 매 움직임 마다 속도를 조절해주는 코드를 추가하여야 할까요?

2022-05-05 17:54:28
k052211
2022-05-06 10:20:33 유기웅

안녕하세요.

 

말씀하시는 최종 목표가 1, 2, 3 의 다이나믹셀이 동시에 도착을 원하시는 건가요?

 

아니면 동시에 출발을 원하시는 건가요?

 

또한, 사용하시는 다이나믹셀을 알려주세요.

 

기본적으로 여러 개의 다이나믹셀을 제어하시려면 말씀하신 Sync Write를 사용하시면 됩니다.

 

사용하시는 다이나믹셀이 프로토콜2.0을 지원하는 다이나믹셀이라면 아래 내용을 참고해 주세요.

 

1. 각각의 다이나믹셀의 다른 목표 위치가 동시 도착을 원하시는 거라면 

   Drive Mode(10)를 Time-based Profile로 설정하여 사용하시면 도착시간을 지정하실 수 있습니다.

   Drive Mode(10)의 Bit 2 Profile Configuration을 참고하시면 됩니다.(※ 자세한 사항은 Profile를 참고하세요.)

 

 

2. 동시 출발을 원하시는 거라면 다이나믹셀의 기본 설정에서 Sync Write를 사용하여 동시 제어를 하시면 됩니다.

 

감사합니다.

  

 

 

comment
2022-05-06 15:40:41 k052211
안녕하세요

답변 정말 감사드립니다.

일단 제가 원하는건 동시 도착이기에 말씀해주신 DriveMode를 변경하면 가능할 거 같습니다.

하지만 현재 사용하는 다이나믹 셀이 MX-64 와 AX-12A 를 섞어서 동시에 사용하고 있습니다.

제가 알기로는 MX-64는 프로토콜2.0을 지원하지만, AX-12는 지원하지 않는 걸로 알고 있습니다.

이경우 Drive mode 변경으로는 동시도착 제어를 할 수 없는 건가요?

아니면 프로토콜1.0 에서도 drive mode 설정을 통해서 사용할 수 있거나,

다른 방법이 있을까요?

감사합니다.
2022-05-06 15:40:41
k052211
2022-05-09 12:39:45 ykw4463
안녕하세요.

AX-12A는 프로토콜 1.0으로 해당 기능을 사용할 수 없습니다.

감사합니다.
2022-05-09 12:39:45
ykw4463
2022-05-06 10:20:33
ykw4463