I designed a new FW model in sitl_gazebo
. The mixer file I created looks as follows
Aileron mixer (roll)
---------------------------------
M: 1
S: 0 0 -10000 -10000 0 -10000 10000
M: 1
S: 0 0 -10000 -10000 0 -10000 10000
Elevator mixer
------------
M: 1
S: 0 1 10000 10000 0 -10000 10000
Motor speed mixer
------------
M: 1
S: 0 2 0 20000 -10000 -10000 10000
Rudder mixer
-----------------
M: 1
S: 0 3 10000 10000 0 -10000 10000
and the corresponding sdf control channels are
<control_channels>
<channel name="left_elevon">
<input_index>0</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>
<channel name="right_elevon">
<input_index>1</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>right_elevon_joint</joint_name>
</channel>
<channel name="elevator">
<input_index>2</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>elevator_joint</joint_name>
</channel>
<channel name="rudder">
<input_index>3</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>rudder_joint</joint_name>
</channel>
<channel name="rotor4">
<input_index>4</input_index>
<input_offset>0</input_offset>
<input_scaling>-3500</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_puller_joint</joint_name>
</channel>
</control_channels>
The problem is that the rudder (yaw channel) moves to the right hand side only. If I turn the RC transmitter joggle to the left, then the rudder stays at zero position. It seems that the signal from the yaw channel is limited somewhere between [0, 1]
, but should be [-1, 1]
. Probably, these limitations are defined in a config I should change.
I use x4 of the version 1.12.3
.