얼마 전에 작은 자유 크롤러 로봇을 만들었습니다. 각각 2 개의 자유도를 가진 2 개의 다리가 있었으므로 총 4 개의 RC 서보가 있습니다. 다리의 움직임을 프로그래밍하는 동안 다리가 약간 뻣뻣하게 움직이는 것을 알았습니다. RC 서보의 내부 컨트롤러는 위치 명령에 매우 빠르게 반응 할 수 있지만 크롤러가 좀 더 부드럽고 생생한 방식으로 움직이기를 원했습니다.
내 솔루션은 서보의 경로를 설명하는 입방 시간 함수를 만든 다음 작은 시간 단위로 위치를 설정하여보다 부드러운 움직임을 얻었습니다. 본질적으로 내가 한 것은 서보의 시간 간격, 시작 및 종료 위치 및 서보가 이동 해야하는 시작 및 종료 속도 (위치의 미분)를 사용하여 입방 방정식 의 계수를 해결 하는 것입니다.
, , 및 해결하십시오 .
주어진 : , , ,
운동이 반대 방향에 있으면 한 쌍의 운동 사이의 서보 속도를 0으로 설정하고 운동이 양수 또는 음수 모두에 있으면 양수 또는 음수로 설정했습니다.
이것은 꽤 잘 작동했지만이 솔루션은 몇 가지 방식으로 제한됩니다. 우선, 같은 방향으로 진행하는 움직임 사이의 비율이 정확히 무엇인지 결정하기가 어렵습니다. 나는 움직임 사이의 특정 위치 앞뒤의 평균 경사를 사용했지만 최적인지는 확실하지 않습니다. 둘째, 입방체 커브는 서보를 이동 시작 및 끝 위치의 범위 밖의 위치로 가져갈 수 있으며, 이는 바람직하지 않을 수 있습니다. 예를 들어, 시간 간격 동안 어느 시점에서 커브는 서보가 두 번째 위치를 넘어서거나 첫 번째 위치 아래로 이동하게 할 수 있습니다. 셋째, 여기서 곡선 생성은 서보가 회전 할 수있는 최대 속도를 고려하지 않으므로 곡선이 비현실적인 속도로 서보를 움직일 수 있습니다. 그것으로,
마지막 관심사를 무시하고, 이러한 문제는 다항식의 정도를 높이고 계수를 풀기 위해 제약 조건을 추가하여 해결할 수 있지만 이제 궁금해하고 있습니다 ...
이보다 더 나은 방법으로 서보를 부드럽게 움직이고 실물처럼 보이게합니까?