Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

centerOfMass

무게 중심 위치와 야코비 행렬

설명

예제

com = centerOfMass(robot)은 베이스 프레임을 기준으로 하여, 홈 컨피규레이션에서의 로봇 모델의 무게 중심 위치를 계산합니다.

com = centerOfMass(robot,configuration)은 베이스 프레임을 기준으로 하여, 지정된 조인트 컨피규레이션에서의 로봇 모델의 무게 중심 위치를 계산합니다.

[com,comJac] = centerOfMass(robot,configuration)은 조인트 속도와 무게 중심 속도 간의 관계를 나타내는 무게 중심 야코비 행렬도 반환합니다.

예제

모두 축소

Robotics System Toolbox™ loadrobot으로 KUKA LBR iiwa 로봇 모델을 불러옵니다. 이 모델은 rigidBodyTree 객체로 지정됩니다.

lbr = loadrobot("kukaIiwa14")
lbr = 
  rigidBodyTree with properties:

     NumBodies: 10
        Bodies: {[1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]}
          Base: [1x1 rigidBody]
     BodyNames: {'iiwa_link_0'  'iiwa_link_1'  'iiwa_link_2'  'iiwa_link_3'  'iiwa_link_4'  'iiwa_link_5'  'iiwa_link_6'  'iiwa_link_7'  'iiwa_link_ee'  'iiwa_link_ee_kuka'}
      BaseName: 'world'
       Gravity: [0 0 0]
    DataFormat: 'struct'

데이터 형식을 "row"로 설정합니다. 모든 동역학 계산에서 데이터 형식은 "row" 또는 "column"이어야 합니다.

lbr.DataFormat = "row";

로봇의 홈 컨피규레이션에서 무게 중심 위치와 야코비 행렬을 계산합니다.

[comLocation,comJac] = centerOfMass(lbr);
show(lbr);
hold all
plot3(comLocation(1),comLocation(2),comLocation(3),Marker="x",MarkerSize=30,LineWidth=5);

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 30 objects of type patch, line. These objects represent world, iiwa_link_0, iiwa_link_1, iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh, iiwa_link_7_mesh.

입력 인수

모두 축소

로봇 모델로, rigidBodyTree 객체로 지정됩니다. centerOfMass 함수를 사용하기 위해 DataFormat 속성을 'row' 또는 'column'으로 설정합니다.

로봇 컨피규레이션으로, 로봇 모델의 모든 비고정 조인트에 대한 위치 값을 나타내는 벡터로 지정됩니다. homeConfiguration(robot), randomConfiguration(robot)을 사용하거나 조인트 위치를 직접 지정하여 컨피규레이션을 생성할 수 있습니다. 벡터 형식의 configuration을 사용하려면 robotDataFormat 속성을 'row' 또는 'column'으로 설정합니다.

출력 인수

모두 축소

무게 중심 위치로, [x y z] 벡터로 반환됩니다. 이 벡터는 바디 프레임을 기준으로 지정된 configuration에 대한 무게 중심 위치를 설명합니다(단위: 미터).

무게 중심 야코비 행렬로, 3×n 행렬로 반환됩니다. 여기서 n은 로봇 속도 자유도입니다.

참고 문헌

[1] Featherstone, Roy. Rigid Body Dynamics Algorithms. Springer US, 2008. DOI.org (Crossref), doi:10.1007/978-1-4899-7560-7.

확장 기능

버전 내역

R2017a에 개발됨