이번 글은 M1 칩이 장착된 맥북에서 mujoco-py를 어떻게 사용하는지에 대해 정리한 글이다. 21년 12월 16일 딥마인드에서 무조코 버전 2.1.1을 Release 하였다. 아래 주소로 들어가면 Release 내용을 볼 수 있으며, MacOS M1 칩에서도 무조코가 지원되는지 궁금해서 봤는데 지원한다는 내용이 적혀있다. Release 2.1.1 · deepmind/mujoco API changes Added mj_printFormattedModel, which accepts a format string for floating point numbers, for example to increase precision. Added mj_versionString, which returns human-rea..
과거의 Observer부터 현대의 Observer를 설명해보려 한다. 과거의 Observer는 간단한 정의만 다루고 현대의 Observer를 자세히 설명하겠다. 1. Plant Output Based Estimator(OBE) Plant의 결과(Output)값으로부터 정보를 관측하는 관측기이다. 이를 기준으로 한 Observer로 low pass noise filter, apporixmatic differentiator, 알파-베타-감마 필터가 있다. 2. Input and Output Based Observer(IOBO) = Luenberger Observer OBE와 IBE를 합쳐둔 걸로, measure data를 피드백 해주는 형태의 관측기이다. 따라서 Closed loop observer라..
Position control 로봇 제어에 있어서 위치제어를 먼저 설명해보려 한다. 로봇 팔 끝단을 제어하는 방법으로는 Joint space에서의 제어와 Cartesian space에서의 제어가 있다. 따라서 Joint space 제어기와 Cartesian space 제어기 2개가 존재한다. 이 글에서는 각 제어기가 사용하는 PD제어기나 PID제어기를 설명해보려 한다. Proportional derivative controller PD제어기는 로봇 팔 끝단의 위치오차와 이의 미분 값이 속도 오차의 비례항으로 구성된다. 이는 일반적인 PD 제어기와 전혀 다를게 없다. Kp와 Kv 값에 따라서 시스템 응답이 달라지게 된다. 이들 값은 시스템의 고유진동수와 댐핑 계수에 연관이 있다. 이 두개 값은 과도구간..
로봇 팔 다이나믹스에 대한 이해가 좀 떨어지는 것 같아서 조금 정리해보려고 한다. 라그랑주 운동방정식 (Lagrange equation of motion) 라그랑주 운동방정식은 Minimal principle을 기준으로 정의되는데, 로봇 팔에서는 각 관절에 따른 운동 변수와 관절 모터의 토크를 이용해 라그랑주 방정식이 정의된다. 라그랑주 운동방정식은 토크와 운동방정식, 위치에너지의 관계를 말한다. 식에서 L은 라그랑지안으로 운동에너지와 위치에너지의 차이로 정의 된다. 즉 토크는 운동에너지와 위치에너지의 차이를 각위치(각도)와 각속도 기준으로 편미분 한 식들과 관계가 있다는 뜻이다. 다관절 로봇의 운동에너지는 일반운동에너지랑 별 차이가 없다. M(q)는 이너시아 매트릭스이다. 운동에너지 식 T(..
연말에 개인 프로젝트를 진행하느라 너무 바빠서, 오랜만에 게시물을 올려본다. 이번 게시물의 목표는 Mujoco 파일을 실행해보는 것이며 코드 분석을 통해 설명하고자 한다. 코드 분석을 세세하게 진행하려 하다보니, 글을 쓰는 입장에서 너무 힘들고, 보는 사람도 지루할 것 같아서 github 레포지토리를 하나 만들었다. 이 레포지토리는 일주일에 한 번, 또는 한달에 두 번 정도 업데이트가 될 예정이다. GitHub - jdj2261/lets-do-mujoco Contribute to jdj2261/lets-do-mujoco development by creating an account on GitHub. github.com 앞 챕터에서 말한대로 필자는 robosuite 프레임워크를 토대로 코드를 재구성 하였..
작년에 이은 2021년도 팀블로그 운영 결산입니다. 원래는 작년 12월에 해야했지만 ㅎㅎ 많이 바빴던 관계로 늦게나마 지금 하게 됐습니다. 0. 블로그 소식 0-1. 블로그 개편 블로그 공동 개설자이신 김현준(Lunabot-factory)님께서 카테고리에 스크롤을 만들어 주셨습니다. 티스토리에서 기본적으로 제공되던 기능은 아니라서 늘어나는 팀원수에 따른 카테고리 증가에 굉장히 고민이 많았는데, 감사합니다!! 0-2. 팀 깃 개설 https://github.com/orgs/ropiens/teams/member 저희 블로그 이름은 Ropiens를 본따 Team Ropiens라는 레포지토리를 백준엽(whitebot)님께서 개설해주셨습니다. 좋은 프로젝트들이 탄생할 예감이 가득합니다. 참여를 원하시는 블로그 팀..
#임피던스제어 #제어공학 #로봇공학 #제어 Series Dynamics 이전 글에서 Force feedback이 있을 경우 시스템의 Positivity와 관련 된 방법으로 Natural Admittance control에 대해 이야기 했다. 확실하게 이해를 못했지만, 다음 챕터로 넘어가서 정리를 해보려한다. Force feedback이 있을 때 interaction을 안정화 시키는 다른 방법으로는 compliant 와 viscous 요소를 manipulator와 환경 사이에 연속으로 넣는 것이다. 이런 방법은 옛날부터 로봇에 많이 사용됐는데, 한가지의 예시로 로봇의 끝 부분에 붙어 있는 compliant pad(아마 고무 패드 같은 걸 이야기 하는듯)를 생각할 수 있다. 이런 방법의 단점은 미세한 움직임..
Improving Low-Impedance Performance 사람이랑 같이 협동하는 로봇을 만들 경우 당연히 낮은 기계적 임피던스를 가져야 한다. 가장 쉬운 방법은 낮은 임피던스 하드웨어로 간단한 임피던스 컨트롤 알고리즘을 접목시키는 것이다. 하지만 낮은 기계적 임피던스를 갖는 하드웨어를 만들기란 쉽지 않다. 특히 복잡한 구조와 큰 힘과 파워를 낼 경우 더욱 더 쉽지 않다. 또한 마찰과 이노시아도 고려해야하는 상황이 많은데 간단한 임피던스 컨트롤의 경우 이런 부분을 고려하지 않는다. Force Feedback 힘 피드백은 존재하는 임피던스를 줄이는 방법중 하나이다. 위와 같은 1차원 시스템에 간단한 임피던스 컨트롤이 적용되며 이때 비선형 마찰력이 발생하고 있다고 해보자. 또한 비례적인 힘 피드백 컨트..