본문 바로가기
반응형

근골격동역학/ANDYBODY공부24

에니바디 척추 하중 경로 2022. 12. 20.
애니바디 psoas 근력 바꾸는 법 아래 경로에서 바꿈 2022. 10. 27.
에니바디 psoas 근육력 경로 2022. 10. 12.
[애니바디] path 추가하는 방법 #path 는 #include 와 다르다. 실제 코드가 포함되는게 아니라 해당 경로로 이동만 시켜준다. 바로가기만들기와 비슷하다. main.any 에다가 path를 만드는 예시를 보자. varus-valgus 수정을 하는 곳이 LegTLEM의 seg.any 라서 아래와 같이 경로를 만들었다. #path Varus_Valgus "../Body/AAUHuman/LegTLEM/Seg.any" .으로 한번 나가면 main.any 가 속한 폴더가 되고, .. 으로 두번 나가면 main.any가 속한 폴더가 속한 폴거가 되는거다. 2022. 9. 15.
[에니바디] 근력을 바꾸는 법 에니바디는 아래와 같이 근력을 계산한다. AnyFolder StrengthScaling = { AnyVar Rother = 0.5; // Mass fraction in the body of organs, blood, skeleton, etc. AnyVar Rfat = ..Anthropometrics.FatPercent/100; // Fat ration in the entire body AnyVar Rfat0 = .StandardParameters.BodyParameters.FatPercent/100; AnyFolder Pelvis = { AnyVar StrengthScale = (..MassScaling.Pelvis.MassScale / ..GeometricalScaling.Pelvis.LengthSca.. 2022. 9. 14.
[에니바디] 벡터를 정의하고 인덱싱해서 사용 AnyVec3 라는 클래스를 이용하여 벡터를 정의하고 인덱싱해서 사용할 수 있다. 인덱스는 0번 부터 시작한다. 2022. 7. 29.
[에니바디] 조인트 클래스 찾는 법 우측 class tree에서 찾을 수 있는데, 아주 꽁꽁 숨어있다. 2022. 6. 15.
[에니바디] 세그먼트 안에 노드 정의하고 위치,보이기,크기 설정하기 AnySeg 클래스를 생성하고, AnySeg 클래스 안에 AnyRefNode 클래스를 생성합니다. sRel 로 초기 위치를 설정합니다. AnySeg Link1 = { //r0 = {0, 0, 0.0}; //rDot0 = {0.0, 0.0, 0.0}; //Axes0 = {{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}}; //omega0 = {0.0, 0.0, 0.0}; Mass = 0.0; Jii = {0.0, 0.0, 0.0}; //Jij = {0.0, 0.0, 0.0}; //sCoM = {0.0, 0.0, 0.0}; //JaboutCoMOnOff = Off; AnyRefNode = { //sRel = {0.0, 0.0, 0.0}; //ARel = {{1.0, .. 2022. 6. 14.
[에니바디] 세그먼트 좌표계 보이고 색,크기 설정 (메뉴얼에서 찾는 법) 세그먼트를 하나 추가해준다. AnySeg Link1 = { //r0 = {0.0, 0.0, 0.0}; //rDot0 = {0.0, 0.0, 0.0}; //Axes0 = {{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}}; //omega0 = {0.0, 0.0, 0.0}; Mass = 0.0; Jii = {0.0, 0.0, 0.0}; //Jij = {0.0, 0.0, 0.0}; //sCoM = {0.0, 0.0, 0.0}; //JaboutCoMOnOff = Off; }; 세그먼트 좌표계를 보이게 하고 싶은 상황이라고 해보자. 세그먼트 레퍼런스 메뉴얼에 들어간다. View RefFrame.Visible 이라는 옵션이 있다. 이 옵션을 On 으로 해주면 된다. AnyS.. 2022. 6. 14.
에니바디 모션캡쳐모델 다루며 느낀점 1) 피험자의 사진을 꼭 찍어야 함. 앞,뒤,좌,우면 더 좋음. 마커가 어디에 붙어 있는지 알아야 마커 위치 잡는게 정확해짐. 2) 에니바디 모델은 오다리,엑스다리를 고려할 수가 없다. 무릎이 1자유도라서... 2021. 8. 26.
[에니바디] 두 점 사이 거리 측정하는 법 AnyKinPLine 이라는 클래스를 사용합니다. 아래 예제에서는 불변하는 두 점 사이를 잇는 선을 시각화하기 위해 사용했습니다. AnyKinPline 안에 두 점을 넣으면 됩니다. 해석을 돌리면 두 점 사이의 거리를 반환해줍니다. 2021. 7. 23.
[에니바디] 척추 reaction force 보는 법 아래 경로로 가서 보면됨. Reaction force는 joint에서 보는 것. 2021. 7. 23.
에니바디 드라이버 Reaction.Type 드라이버는 아래와 같이 설정합니다. AnyKinEqSimpleDriver ShoulderMotion = { AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; DriverPos = {0}; DriverVel = {0}; Reaction.Type = {Off}; }; // Shoulder driver 관절을 하나 넣고, 관절의 자유도에 따라 DriverPos와 DriverVel 을 벡터로 설정합니다. Reaction.Type 이 On으로 되어 있으면 근육력 계산이 안됩니다. 2021. 7. 23.
에니바디 조인트에서 Hard, Soft 설정 KNEE JOINT 를 예로 들어봅시다. AnyRevoluteJoint Knee = { //AnyCylindricalJoint Knee = { Axis = x; AnyRefNode &CrankNode = Main.SliderCrank.Segs.Crank.Tip; AnyRefNode &CouplerNode = Main.SliderCrank.Segs.Coupler.CrankNode; Constraints.CType = {Soft,Hard,Hard,Hard,Hard}; }; KNEE JOINT 는 1자유도입니다. 따라서 나머지 5개 자유도가 구속됩니다. CTYPE을 입력하지 않아도 디폴트로 전부 Hard가 걸려 있습니다. Soft 로 바꾸면 파라미터 최적화시 발생하는 오류를 줄이기 위한 움직임이 가능해집니다... 2021. 7. 23.
에니바디 변수 정의방법 변수를 정의해서 사용할 때 AnyVar 클래스를 쓰면된다. 위와같이 정의하고, 가져다 쓸때는 아래와 같이 쓴다. 2021. 7. 21.
[애니바디 공부] 세그먼트 투명도 설정 방법 AnySeg Leg = { Mass = 1; Jii = {1, 0.01, 1}/15; AnyRefNode R1 = { sRel = {0.038, 0.18, 0.022}; }; AnyDrawSeg drw = { Opacity = 0.5; }; }; AnySeg 안에 AnyDrawSeg 클래스 안에 Opacity를 설정해줍니다. 2021. 7. 20.
[애니바디 공부] c3d 데이터 안보일 때 대처법 c3d 데이터를 받아서 에니바디로 열어보니 corrupt 됐다는 에러가 떴습니다. c3d 를 mokka 에서 열어서 다른 이름으로 저장한 뒤 에니바디에서 불러왔는데 corrupt 에러는 뜨지 않지만 마커가 없었습니다. 에니바디에서는 C3D에 저장된 raw데이터를 불러오는데, mokka 에서 불러와서 저장하는 과정에서 raw 데이터에 있던 정보다 processed section 으로 이동되었기 때문이라고 합니다. AnyInputC3D 에 아래 옵션을 설정해줍니다. MarkerUseAllPointsOnOff = On; 이제 모델 트리에는 마커가 보이는데 눈에는 보이지 않았습니다. scaling 때문입니다. 에니바디는 미터 단위계를 쓰는데, 모션캡쳐데이터는 mm 단위였습니다. AnyInputC3D에 아래 옵션.. 2021. 7. 20.
[애니바디 공부] 세그먼트 공부(바디,좌표계,점) 세그먼트를 하나 정의했다. 위치는 x축으로 3만큼 간 위치다. 글로벌 좌표계는 미리 정의해놓았다. 먼저 세그먼트의 바디를 보이게 해보자. help에 가면 키워드를 찾을 수 있다. 아래와 같이 추가한다. 이번에는 로컬좌표계를 보이게 해보자. 이번에는 세그먼트 안에 점을 하나 정의하고 보이게하자. 점의 로컬좌표계도 보이게 해보자. 2021. 4. 16.
[애니바디 공부] Node를 공중에 정의할 수 있을까 노드를 독립적으로 정의했는데 에러가 뜬다. AnyFixedRefFrame 이나, Seg 안에 정의해야 하나보다. 2021. 4. 16.
애니바디 클래스 입력값 확인 방법 AnyFixedRefFrame 을 예로 들자. class 를 삽입하면 아래와 같다. AnyFixedRefFrame GlobalRef = { //Origin = {0.0, 0.0, 0.0}; //Axes = {{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}}; }; 반드시 입력해야되는 값은 없다. 원한다면 Origin, Axes를 설정할 수 있다. Help로 가자. Optional-Initialization Member 는 우리가 설정할 수 있는값들이다. 두번째 class를 보면, AnySwitchVar 이라고 되어 있고, Name 은 viewRefFrame.Visible 이다. 아래와 같이 정의할 수 있다. AnyFixedRefFrame GlobalRef = { .. 2021. 4. 16.
애니바디 class 설명 보는 법 클래스에 우클릭하고 Help 누르면 도움말이 뜬다. 아래 창이 뜬다. 2021. 4. 16.
에니바디 세그먼트, 노드, STL바디 개념 에니바디에서는 세그먼트가 하나의 뼈 역할을 합니다. 해석을 포함한 전체 모델링의 큰 순서는 아래와 같습니다. 세그먼트 정의 -> 조인트로 연결 -> 드라이버 정의(운동학) -> 운동학 해석 -> 근육 정의 및 부착 -> 역동역학 해석 세그먼트를 정의 할 때, 세그먼트 안에 노드들을 정의합니다. 노드들은 조인트연결이나 근육 연결에 사용됩니다. 세그먼트 정의 부터 살펴봅시다. AnySeg = { //r0 = {0.0, 0.0, 0.0}; //rDot0 = {0.0, 0.0, 0.0}; //Axes0 = {{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}}; //omega0 = {0.0, 0.0, 0.0}; Mass = 0.0; Jii = {0.0, 0.0, 0.0}; .. 2021. 4. 15.
[에니바디] 글로벌 좌표계 표시하는 법 GlobalRef 폴더 안에 아래 코드 추가함. ScaleXYZ는 각 축의 크기, RGB는 좌표계 색상임. 아래는 위 코드 실행결과 2021. 4. 9.
에니바디 템플릿모델 자동생성 폴더 상태 에니바디에서 템플릿으로 불러올 수 있는 모델은 크게 세가지다. 1. Basic Main 템플릿 Basic Main 템플릿으로 생성한 모델의 폴더상태는 아래와 같다. 아래는 에니바디에서 불러온 모습이다. 에니바디 저장소모델을 사용하지 않고, 모델을 처음부터 정의해주어야 한다. 2. HUMAN 템플릿 HUMAN템플릿으로 생성한 모델의 폴더 상태는 아래와 같다. Model 폴더를 열면 아래와 같다. 코드를 보면 에니바디 저장소모델을 불러와서 사용하고 있다. 저장소 모델을 기반으로 확장할 수 있도록 한 것이다. JointsAndDrivers 를 열어보면 아래와 같다. 설정된게 없다. 3. Human Standing 템플릿 Human Standing 템플릿으로 생성한 모델의 폴더 상태는 아래와 같다. Human .. 2021. 4. 9.
반응형