start-jsk / rtmros_gazebo

gazebo simulation for rtmros robots
8 stars 24 forks source link

[on #242] add Craneplugin #243

Closed Naoki-Hiraoka closed 4 years ago

Naoki-Hiraoka commented 4 years ago

gazeboでクレーンを使用するためのプラグインです。 gazeboでロボットを地面に置きたい時に、従来は地面より少し高い位置を指定してロボットをワープさせて落とすという手法をとっていましたが、 このプラグインを使うことで①落とすことなく、②正確なZ方向位置を指定することなく、ロボットを地面に置くことが可能になります。

URDFの以下に以下のようなタグを加えることで使用できます。

 <gazebo>                                                                      
    <plugin filename="libCranePlugin.so" name="crane_plugin">                   
      <objname>HRP2JSKNTS</objname>                                             
      <linkname>CHEST_LINK1</linkname>                                          
      <liftheight>1.2</liftheight>                                              
      <lowerheight>0.5</lowerheight>                                            
      <liftvelocity>0.1</liftvelocity>                                          
      <lowervelocity>0.03</lowervelocity>                                       
      <pgain>2500</pgain>                                                       
      <dgain>500</dgain>                                                        
      <damp>10000</damp>                                                        
    </plugin>                                                                   
  </gazebo>   

linknameのリンクに対し、liftheightの高さになるようにpgain dgainの値を用いてPD制御で外力を加えます。 紐で吊るされた状態を想定しているため、鉛直上向きにのみ外力を加え、下向きには外力を加えません。

objname/name/LowerCommandにstd_msgs/Emptyトピックを送ると、目標高さがlowerheightまでlowervelocityの速さで徐々に下がり、目標高さがlowerheightに到達するとこのプラグインが無効になります。

objname/name/LiftCommandにstd_msgs/Emptyトピックを送ると、このプラグインが再度有効になり、目標高さがliftheightまでliftvelocityの速さで徐々に上がります。

pazeshun commented 4 years ago

@Naoki-Hiraoka Kindly ping

Naoki-Hiraoka commented 4 years ago

I'm sorry for my late response. I added description of plugins.