반응형

 

Gazebo Model Configuration

Brief Configuration View

Gazebo Tiltrotor model is described below :

 

Model tree is shown below :

  • model : tiltrotor
  • link : base_link
  • sensors (Airspeed sensor, IMU, GPS...)
  • Links and Joints (for geometry. motor, rotor, wing, control surfaces)
  • Plugins
    • LiftDrag (Aerodynamics)
    • gazebo_motor_model (Rotor model)
    • groundtruth
    • magnetometer
    • barometer
    • mavlink_interface

 

 

Next, Im gonna show How to describe links and joints.


 

Link and Joint

Joints connect between Links. and It makes an link tree.

An object on the vehicle, made as a link and connect the link to parent link by using Joint

  • Link
    • Pose
    • Inertia
    • Collision
      • Pose
      • Geometry
    • Visual (Usually, same as Collision)
      • Pose
      • Geometry
  • Joint
    • Child : Child link
    • Parent : Parent link
    • Axis (Enabing to rotate)

Examples on Tiltrotor Model

 

Gazebo Motor Plugin

   <plugin name='front_right_motor_model' filename='libgazebo_motor_model.so'>
      <robotNamespace></robotNamespace>
      <jointName>rotor_0_joint</jointName>
      <linkName>rotor_0</linkName>
      <turningDirection>ccw</turningDirection>
      <timeConstantUp>0.0125</timeConstantUp>
      <timeConstantDown>0.025</timeConstantDown>
      <maxRotVelocity>1500</maxRotVelocity>
      <motorConstant>2e-05</motorConstant>
      <momentConstant>0.06</momentConstant>
      <commandSubTopic>/gazebo/command/motor_speed</commandSubTopic>
      <motorNumber>0</motorNumber>
      <rotorDragCoefficient>0.0000806428</rotorDragCoefficient>
      <rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
      <motorSpeedPubTopic>/motor_speed/0</motorSpeedPubTopic>
      <rotorVelocitySlowdownSim>20</rotorVelocitySlowdownSim>
    </plugin>

 

 

Mavlink Control Interface

    <plugin name='mavlink_interface' filename='libgazebo_mavlink_interface.so'>
      <robotNamespace></robotNamespace>
      ...
      <motorSpeedCommandPubTopic>/gazebo/command/motor_speed</motorSpeedCommandPubTopic>
      <control_channels>
        <channel name="rotor0">
          <input_index>0</input_index>
          <input_offset>0</input_offset>
          <input_scaling>1500</input_scaling>
          <zero_position_disarmed>0</zero_position_disarmed>
          <zero_position_armed>0</zero_position_armed>
          <joint_control_type>velocity</joint_control_type>
          <joint_name>rotor_0_joint</joint_name>
        </channel>
        ...
        <channel name="motor0_tilt">
          <input_index>4</input_index>
          <input_offset>0.785398</input_offset>
          <input_scaling>0.785398</input_scaling>
          <zero_position_disarmed>0</zero_position_disarmed>
          <zero_position_armed>0</zero_position_armed>
          <joint_control_type>position</joint_control_type>
          <joint_name>motor_0_joint</joint_name>
           <joint_control_pid>
            <p>10</p>
            <i>0</i>
            <d>0</d>
            <iMax>0.0</iMax>
            <iMin>0.0</iMin>
            <cmdMax>2</cmdMax>
            <cmdMin>-2</cmdMin>
            <errMax>0.2</errMax>
          </joint_control_pid>
        </channel>
        ...
        <channel name="left_elevon">
          <input_index>6</input_index>
          <input_offset>0</input_offset>
          <input_scaling>1</input_scaling>
          <zero_position_disarmed>0</zero_position_disarmed>
          <zero_position_armed>0</zero_position_armed>
          <joint_control_type>position_kinematic</joint_control_type>
          <joint_name>left_elevon_joint</joint_name>
        </channel>
      </control_channels>
    </plugin>

 

 

728x90

+ Recent posts