UAV
Analysis Gazebo model file : *.sdf for Tilt-model
bu_ctrlMan
2023. 10. 15. 12:13
반응형
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)
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