The relationship among Link, Joint and Axis - modulabs/gazebo-tutorial GitHub Wiki
μ΄λ² μ₯μμλ Link, Joint, Axis κ΄κ³μ λν΄μ μ€λͺ νλ €κ³ ν©λλ€. μ’ λ λͺ ννκ² κ·Έ κ΄κ³μ λν κ°λ μ μ‘λ κ²μ΄ μ΄λ²μ₯μ λͺ©ν μ λλ€. μμ νν 리μΌμμ λ§λ€μλ λͺ¨λ°μΌ λ‘λ΄μ ν λλ‘ μ€λͺ μ μ§ν νκ² μ΅λλ€.

μ κ·Έλ¦Όμμ 보λ―μ΄ κ°μ 보λ₯Ό μ€ννλ©΄ μ€μ¬μ λΉ¨κ°μ, μ΄λ‘μ, νλμμ μ μ΄ λμ€κ² λλλ° μ΄λ₯Ό μ μμ’νλ‘ μ§μΉ νκ² μ΅λλ€. κ° κ°μ μ μμ’νμ X(λΉ¨κ°μ), Y(μ΄λ‘μ), Z(νλμ)λ₯Ό λνλκ² λ©λλ€. λ§ν¬λ‘ μ¬κ°ν, ꡬ, μκΈ°λ₯μ μμ± ν μ μμ΅λλ€. μ¬κΈ°μμλ μ¬μ΄μ¦ 0.4X0.2X0.1(m)μΈ λ°μ€λ₯Ό νλμ λ§ν¬λ‘ λ§λ€μμ΅λλ€. κΈ°λ³Έμ μΌλ‘ λ§λ€κ³ μ νλ λ§ν¬μ κΈ°ννμ μΈ μ€μ¬μ΄ μ μμ’νμ μλ€κ³ μκ°νλ©΄ λ©λλ€. κ·Έ μ μμ’νμμ Xλ°©ν₯μΌλ‘ 0.4m, Yλ°©ν₯μΌλ‘ 0.2m, Zλ°©ν₯μΌλ‘ 0.1mμΈ μ¬κ°νμ΄ μμ±λ©λλ€.

μ κ·Έλ¦Όμμ 보λ―μ΄ SDFνμΌμ λ΄κ° μμ±ν Link tag λ΄μ <pose>0 0 0 0 0 0</pose>λ₯Ό ν΅ν΄μ μμΉλ₯Ό μ‘°μ ν μκ° μμ΅λλ€. tagμμ μ«μλ x,y,z,Rx,Ry,Rzλ₯Ό μλ―Έν©λλ€. μμ κΈ°λ³Έμ μΌλ‘ λ§ν¬λ₯Ό μμ±ν λλ λ§ν¬μ κΈ°ννμ μΈ μ€μ¬μ΄ κ°μ 보μ μ μμ’νμ μκ² λ©λλ€. κ·Έλ¦¬κ³ μ΄ μ μμ’νμ κ°μ μ’νκ° λ§ν¬μ λΆκ² λ©λλ€. μ΄ν pose tagμ κ°μ λ³νμν€κ² λλ©΄ κ°μ 보μ μ μμ’νλ₯Ό κΈ°μ€μΌλ‘ λ§ν¬μ μ€μ¬μ λΆμ μ’νκ° μ΄λνκ² λ©λλ€. κ°μ 보μμ Insert νμμ λ΄κ° λ§λ λͺ¨λΈμ λλ₯΄λ©΄ μ²μμ κ°μ 보μ μ μμ’νμ μμΉνκ² λκ³ μ΄ν λͺ¨λΈμ μ΄λμμΌ λ΄κ° μνλ μμΉμ λͺ¨λΈμ μμΉ μν¬ μ μμ΅λλ€. μμ κ·Έλ¦Όμμ λ²νΈ1μ <pose>0 0 0 0 0 0</pose>μΌλ‘ μ΄λ€ λ³νκ° μλ μν μ
λλ€. λ²νΈ2λ <pose>0 0 0.05 0 0 0</pose>λ‘ zλ°©ν₯μΌλ‘ 0.05m λ§νΌ μ¬λ¦° μνμ
λλ€. λ²νΈ3μ <pose>0 0 0.05 0 0 1.57</pose>λ§νΌ μ΄λμν¨ μνμ
λλ€. μ¬κΈ°μ νμ μ κ°μ 보μ μ μμ’νκ³ κΈ°μ€μΌλ‘ λ§ν¬μ λΆμ΄μλ μ’νκ³λ₯Ό νμ νκ² λ©λλ€. μ¬κΈ°μμλ μ μμ’νκ³μ zλ°©ν₯μΌλ‘ 1.57λ§νΌ λ§ν¬μ λΆμ΄μλ μ’νλ₯Ό νμ μμΌ°μ΅λλ€. λ²νΈ4λ <pose>0 0 0.05 0 1.57 1.57</pose> μ¬κΈ°μμ νμ μ μ μμ’νκ³μ yλ°©ν₯μΌλ‘ 1.57λ§νΌ λ§ν¬μ λΆμ΄ μλ μ’νλ₯Ό νμ μν€κ³ λ€μ μ μμ’νκ³μ zλ°©ν₯μΌλ‘ 1.57λ§νΌ λ§ν¬μ μ’νκ³λ₯Ό νμ μμΌ°μ΅λλ€.

μ κ·Έλ¦Όμμ λ²νΈ1μ μκΈ°λ₯μ νλμ λ§ν¬λ‘ κ·Έλ¦° κ²μΌλ‘ μμ μ€λͺ
νλλ‘ κΈ°λ³Έμ μΌλ‘ μμ±μ μκΈ°λ₯μ κΈ°ννμ μΈ μ€μ¬μ λ§ν¬ μ’νκ³κ° μ μμ’νκ³μ λμΌνκ² λΆκ² λ©λλ€. λ²νΈ2λ μ¬κ°ν λ°μ€μ, μκΈ°λ₯μ κ° κ° λ§ν¬λ‘ κ·Έλ¦° κ²μ
λλ€. μ΅μ΄ μμ±μ λ λ§ν¬μ κΈ°ννμ μΈ μ€μ¬μ΄ κ°μ 보μ μ μμ’νμ μλ€κ³ μκ°νκ² μ΅λλ€. μ¬κ°ν λ°μ€μ Link tag λ΄μ poseλ <pose>0 0 .1 0 0 0</pose>λ‘ μ¬κ°ν λ°μ€μ λ§ν¬ μ’νκ³κ° μ μμ’νκ³ κΈ°μ€μΌλ‘ zλ°©ν₯μΌλ‘ 0.1mλ§νΌ μ΄λνκ² λ©λλ€. μΌμͺ½ λ°ν΄ μκΈ°λ₯ Link tag λ΄μ poseλ <pose>0.1 0.13 0.1 0 1.5707 1.5707</pose>μΌλ‘ μ μμ’νκ³ κΈ°μ€μΌλ‘ λ§ν¬μ μ’νκ³λ₯Ό νμ ν ν x,y,zλ§νΌ μ΄λνκ² λ©λλ€. μ΄λ κ² λ λ§ν¬μ κ΄κ³κ° μ ν΄μ§κ² λκ³ μ΄ν λ λ§ν¬κ° κ²°ν©λ λͺ¨λΈμ κ°μ 보λ΄μμ μνλ μμΉμ λμ μ μκ² λ©λλ€.

μ κ·Έλ¦Όμμ 보λ―μ΄ μΌμͺ½ λ°ν΄μ μ€λ₯Έμͺ½ λ°ν΄κ° κ° κ°μ λ§ν¬λ‘ κ° λ§ν¬μ μ‘°μΈνΈκ° λΆμ΄ μκ³ κ·Έ μ‘°μΈνΈμ νμ μΆμ΄ μ€μ λμ΄ μμ΅λλ€.
μΌμͺ½ λ°ν΄μ λΆμ΄ μλ μ‘°μΈνΈμ SDF μ½λλ μλμ κ°μ΅λλ€.
<joint type="revolute" name="left_wheel_hinge">
<pose>0.03 0 -0.03 0 0 0</pose>
<child>left_wheel</child>
<parent>chassis</parent>
<axis>
<xyz>0 1 0</xyz>
</axis>
</joint>
μ΅μ΄μ μ‘°μΈνΈμ λΆμ΄ μλ μ’νκ³λ childλ‘ μ§μ ν΄λμ μΌμͺ½ λ°ν΄μ λΆμ΄ μλ λ§ν¬ μ’νκ³μ λμΌν©λλ€. μ¬κΈ°μμ pose tagλ₯Ό 보면 μΌμͺ½ λ°ν΄μ λ§ν¬ μ’νκ³ κΈ°μ€μΌλ‘ μ‘°μΈνΈμ μ’νκ³κ° xλ°©ν₯μΌλ‘ 0.03m, zλ°©ν₯μΌλ‘ -0.03m μ΄λ λμμ΅λλ€.
μ£Όμν΄μΌ ν μ μ νμ μΆμ κ°μ 보μ μ μμ’νκ³ κΈ°μ€μΌλ‘ μ€μ λλ€λ κ²μ λλ€. μ¬κΈ°μμ axis tagλ₯Ό 보면 μ μμ’νκ³μ xλ°©ν₯μΌλ‘ 0m, yλ°©ν₯μΌλ‘ 1m, zλ°©ν₯μΌλ‘ 0mλ₯Ό κ°λ₯΄ν€λ λ°©ν₯ 벑ν°κ° μ‘°μΈνΈμ μ’νμ λΆκ² λκ³ μ΄ λ°©ν₯벑ν°λ₯Ό κΈ°μ€μΌλ‘ νμ μΆμ΄ μ€μ λ©λλ€.
μ€λ₯Έμͺ½ λ°ν΄μ λΆμ΄ μλ μ‘°μΈνΈμ SDF μ½λλ μλμ κ°μ΅λλ€.
<joint type="revolute" name="right_wheel_hinge">
<pose>0 0 0.03 0 0 0</pose>
<child>right_wheel</child>
<parent>chassis</parent>
<axis>
<xyz>3 1 0</xyz>
</axis>
</joint>
μ΅μ΄μ μ‘°μΈνΈμ λΆμ΄ μλ μ’νκ³λ childλ‘ μ§μ ν΄λμ μ€λ₯Έμͺ½ λ°ν΄μ λΆμ΄ μλ λ§ν¬ μ’νκ³μ λμΌν©λλ€. μ¬κΈ°μμ pose tagλ₯Ό 보면 μΌμͺ½ λ°ν΄μ λ§ν¬ μ’νκ³ κΈ°μ€μΌλ‘ μ‘°μΈνΈμ μ’νκ³κ° zλ°©ν₯μΌλ‘ 0.03m μ΄λ λμμ΅λλ€.
axis tagλ₯Ό 보면 μ μμ’νκ³μ xλ°©ν₯μΌλ‘ 3m, yλ°©ν₯μΌλ‘ 1m, zλ°©ν₯μΌλ‘ 0mλ₯Ό κ°λ₯΄ν€λ λ°©ν₯ 벑ν°κ° μ‘°μΈνΈμ μ’νμ λΆκ² λκ³ μ΄ λ°©ν₯벑ν°λ₯Ό κΈ°μ€μΌλ‘ νμ μΆμ΄ μ€μ λ©λλ€.