티스토리 뷰
참고한 모든 Paper는 아래 링크에 있습니다. 도움이 되셨다면 Star를 눌러주세요 ㅎ
GitHub - benthebear93/awesome-mobile-manipulator: Reading List and related repos for mobile manipulator
Reading List and related repos for mobile manipulator - GitHub - benthebear93/awesome-mobile-manipulator: Reading List and related repos for mobile manipulator
github.com
해당 글은 아래 논문을 정리한 내용입니다.
참고 논문 : Kinematic Control of Redundant Mobile Manipulators by Mashali, Mustafa
![](https://blog.kakaocdn.net/dn/cXZ3p5/btrO3URKYNb/FBmFNqKlMrgYRiqTXLXyl1/img.png)
논문에서 제시하는 컨트롤러를 구현하기 위해 간단한 Planar mobile manipulator (PMM)을 정의해보자. 먼저 앞선 글들에서 말한 변수들(D, alpha)을 계산하는 식을 정리해야 한다.
먼저 모바일 플랫폼에서부터 EE의 끝단의 거리를 나타내는 파라미터인 D 식을 정리하면 아래와 같다.
![](https://blog.kakaocdn.net/dn/qFywr/btrO45x1fcC/WZp4nKkVDH8SBC30x9PW8k/img.png)
alpha의 경우 외접원의 sin법칙을 이용하여 구할 수 있다. 먼저 로봇 팔을 가장 멀리 뻗었을 때의 길이인 L과 lA와 Dmax를 이용하여 삼각형을 만들고 이를 sin법칙을 사용하여 alpha를 계산하면 아래와 같이 정리 된다.
![](https://blog.kakaocdn.net/dn/ONVTN/btrO34NlOIR/kOLAKNDfE7kTQdOXv53Mn0/img.png)
이 식을 이용하여 D값에 대한 식을 정리하면
![](https://blog.kakaocdn.net/dn/BqJ40/btrOQy1LXlw/tNM2gLoyMqocklkDPYK0MK/img.png)
이 식을 최종적으로 정리하면
![](https://blog.kakaocdn.net/dn/oabzK/btrO4hMvfOc/jNs0FPkjGrd4nwg9WaGv4K/img.png)
모바일 플랫폼에서부터 EE의 거리를 나타내는 Dmax식이 Lmax와 alpha, lA값에 의해 결정된다는 걸 알 수 있다.
D값을 조절함으로 로봇 팔의 작업 공간을 제약할 수 있게 된다.
PMM의 상태변수 식의 경우 아래와 같다.
![](https://blog.kakaocdn.net/dn/cr9AZF/btrOQrhgLgy/DjT3fBHDgK2KEN9wuKKt31/img.png)
Global부터 EE까지의 속도가 X와 Y, 그리고 제약조건의 변수들로 이루어지는데, 이는 Jacobian과 로봇 팔의 각도 값, 모바일의 Twist 값으로 이루어진다. 이때 자코비안의 경우 Global과 EE를 Arm 기준으로 본 자코비안과 Globqal과 EE를 Platform 기준으로 본 자코비안이 있고, 그 밑에는 제약조건에 관한 식에 대한 자코비안이 있다.
경로에 대한 식은 아래와 같다.
![](https://blog.kakaocdn.net/dn/bbczgY/btrO356AgmI/M9KnGHFeeL5xtagPV78kFK/img.png)
![](https://blog.kakaocdn.net/dn/mhm3W/btrOQrO50DO/Ns97eMhZd8igrIFuJrVDB1/img.png)
![](https://blog.kakaocdn.net/dn/bUk17h/btrOGnTNInR/ZbTc5aSxxLHKYCepms3IXk/img.png)
자코비안의 식은
![](https://blog.kakaocdn.net/dn/GvO7V/btrODQiml1p/0a4z711mF2crfCzfhlsMpK/img.png)
Task space에서 Global frame에 대한 EE와 모바일 플랫폼 사이의 거리는 아래 식으로 표현 할 수 있다.
![](https://blog.kakaocdn.net/dn/baR1ZW/btrOQpKxgBY/vxOyPnh9vpJiOR6WaMlcRk/img.png)
이때 제어 변수들은
![](https://blog.kakaocdn.net/dn/5Sn6l/btrO5ffVrqp/mNZU1Z3qf4gsKefEFpOzbK/img.png)
자코비안의 경우
![](https://blog.kakaocdn.net/dn/dCblCn/btrOQlBn5q9/C8kN9Ij6i89kBZgSQ3bxkK/img.png)
![](https://blog.kakaocdn.net/dn/dOHJLf/btrO4pXj7cp/vfu9koKlis6AxFyvkkDzMk/img.png)
실제로 더 자세한 수식의 경우 논문에 나와 있으니 참고하자.
이제부터는 이를 참고해서 코딩을 구현하는 방향으로 진행하려고 한다. 이제부터는 포스팅에 시간이 좀 걸릴 예정
'미니멀공대생 > Control' 카테고리의 다른 글
Behavior Tree :: FSM과 BT의 차이점 (0) | 2023.03.04 |
---|---|
[논문리뷰] Skill Transfer for Surface Finishing Tasks Based on Estimation of Key Parameters (0) | 2023.02.09 |
Mobile Manipulator 101 :: Dual Trajectory & task priority(2) (0) | 2022.10.17 |
Mobile Manipulator 101 :: Dual Trajectory(1) (2) | 2022.10.15 |
[논문리뷰] A fast, iterative solver for the Inverse Kinematcis Problem (0) | 2022.10.10 |