Problem controlling tail servo on tricopter

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Problem controlling tail servo on tricopter

Pascal Fust-2
Hi all,

I'm trying to get my tricopter to run on paparazzi. Therefore, I've adapted the CDW tricopter airframe file and changed the motor control from MKK to PWM, as I want test the rig for the instance without the I2C control option. Motors control works well, however I am struggling with the tail servo. It just doesn't work on paparazzi when connected via the autopilot, directly connected to the PWM of the RC receiver it works perfectly fine.

I attached the complete airframe XML, however the airframe file includes the following sections, important for PWM control:

<airframe name="KroozSD Tricopter">
  <firmware name="rotorcraft">
.....
    <subsystem name="radio_control" type="ppm">
       <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO10"/>    <!--  -->
    </subsystem>

    <subsystem name="actuators"     type="pwm">
      <define name="SERVO_HZ" value="400"/>
    </subsystem>
......
  </firmware>
<servos driver="Pwm">
    <servo name="TAIL" no="5" min="1000" neutral="1500" max="2000"/>
    <servo name="BACK"    no="2" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTRIGHT"   no="1" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTLEFT"    no="0" min="988" neutral="1000" max="2012"/>
  </servos>

  <commands>
    <axis name="PITCH" failsafe_value="0"/>
    <axis name="ROLL" failsafe_value="0"/>
    <axis name="YAW" failsafe_value="0"/>
    <axis name="THRUST" failsafe_value="0"/>
  </commands>

<command_laws>
    <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
    <set servo="FRONTLEFT" value="motor_mixing.commands[0]"/>
    <set servo="FRONTRIGHT" value="motor_mixing.commands[1]"/>
    <set servo="BACK" value="motor_mixing.commands[2]"/>
    <set servo="TAIL" value="@YAW"/>
  </command_laws>

  <rc_commands>
    <set command="YAW" value="@YAW"/>
   </rc_commands>
.....
</airframe>


The radio XML looks as follows:
<radio name="FrSky X9D + X8R receiver 12ch SBus connection" data_min="900" data_max="2100" sync_min ="5000" sync_max ="28000" pulse_type="POSITIVE">
     <channel ctl="A" function="THROTTLE" min="998" neutral="998" max="2011" average="0"/>
     <channel ctl="B" function="YAW"      min="990" neutral="1500" max="2011" average="0"/>
....
     <channel ctl="gain1" function="XKILL"     min="2050" neutral="1496" max="948" average="1"/>
....
</radio>



What am I missing here?
Thanks for your help, guys, I really appreciate your support !

Pascal

_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel

my_krooz_sd_triCopt_test_PMW.xml (17K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem controlling tail servo on tricopter

Loic Drumettaz

Hi,

Try to set the  tail servo frequency to 50 Hz.

Loïc

Le 19 avr. 2016 04:38, "Pascal Fust" <[hidden email]> a écrit :
Hi all,

I'm trying to get my tricopter to run on paparazzi. Therefore, I've adapted the CDW tricopter airframe file and changed the motor control from MKK to PWM, as I want test the rig for the instance without the I2C control option. Motors control works well, however I am struggling with the tail servo. It just doesn't work on paparazzi when connected via the autopilot, directly connected to the PWM of the RC receiver it works perfectly fine.

I attached the complete airframe XML, however the airframe file includes the following sections, important for PWM control:

<airframe name="KroozSD Tricopter">
  <firmware name="rotorcraft">
.....
    <subsystem name="radio_control" type="ppm">
       <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO10"/>    <!--  -->
    </subsystem>

    <subsystem name="actuators"     type="pwm">
      <define name="SERVO_HZ" value="400"/>
    </subsystem>
......
  </firmware>
<servos driver="Pwm">
    <servo name="TAIL" no="5" min="1000" neutral="1500" max="2000"/>
    <servo name="BACK"    no="2" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTRIGHT"   no="1" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTLEFT"    no="0" min="988" neutral="1000" max="2012"/>
  </servos>

  <commands>
    <axis name="PITCH" failsafe_value="0"/>
    <axis name="ROLL" failsafe_value="0"/>
    <axis name="YAW" failsafe_value="0"/>
    <axis name="THRUST" failsafe_value="0"/>
  </commands>

<command_laws>
    <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
    <set servo="FRONTLEFT" value="motor_mixing.commands[0]"/>
    <set servo="FRONTRIGHT" value="motor_mixing.commands[1]"/>
    <set servo="BACK" value="motor_mixing.commands[2]"/>
    <set servo="TAIL" value="@YAW"/>
  </command_laws>

  <rc_commands>
    <set command="YAW" value="@YAW"/>
   </rc_commands>
.....
</airframe>


The radio XML looks as follows:
<radio name="FrSky X9D + X8R receiver 12ch SBus connection" data_min="900" data_max="2100" sync_min ="5000" sync_max ="28000" pulse_type="POSITIVE">
     <channel ctl="A" function="THROTTLE" min="998" neutral="998" max="2011" average="0"/>
     <channel ctl="B" function="YAW"      min="990" neutral="1500" max="2011" average="0"/>
....
     <channel ctl="gain1" function="XKILL"     min="2050" neutral="1496" max="948" average="1"/>
....
</radio>



What am I missing here?
Thanks for your help, guys, I really appreciate your support !

Pascal

_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel


_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem controlling tail servo on tricopter

Pascal Fust
Hi Loïc,
thanks for your advice, I'll try this, however, I've been using the similar setup (400Hz) on my fixed-wing paparazzi UAV with the same RC equipment without any problem.

Pascal

2016-04-19 7:12 GMT+02:00 Loic Drumettaz <[hidden email]>:

Hi,

Try to set the  tail servo frequency to 50 Hz.

Loïc

Le 19 avr. 2016 04:38, "Pascal Fust" <[hidden email]> a écrit :
Hi all,

I'm trying to get my tricopter to run on paparazzi. Therefore, I've adapted the CDW tricopter airframe file and changed the motor control from MKK to PWM, as I want test the rig for the instance without the I2C control option. Motors control works well, however I am struggling with the tail servo. It just doesn't work on paparazzi when connected via the autopilot, directly connected to the PWM of the RC receiver it works perfectly fine.

I attached the complete airframe XML, however the airframe file includes the following sections, important for PWM control:

<airframe name="KroozSD Tricopter">
  <firmware name="rotorcraft">
.....
    <subsystem name="radio_control" type="ppm">
       <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO10"/>    <!--  -->
    </subsystem>

    <subsystem name="actuators"     type="pwm">
      <define name="SERVO_HZ" value="400"/>
    </subsystem>
......
  </firmware>
<servos driver="Pwm">
    <servo name="TAIL" no="5" min="1000" neutral="1500" max="2000"/>
    <servo name="BACK"    no="2" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTRIGHT"   no="1" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTLEFT"    no="0" min="988" neutral="1000" max="2012"/>
  </servos>

  <commands>
    <axis name="PITCH" failsafe_value="0"/>
    <axis name="ROLL" failsafe_value="0"/>
    <axis name="YAW" failsafe_value="0"/>
    <axis name="THRUST" failsafe_value="0"/>
  </commands>

<command_laws>
    <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
    <set servo="FRONTLEFT" value="motor_mixing.commands[0]"/>
    <set servo="FRONTRIGHT" value="motor_mixing.commands[1]"/>
    <set servo="BACK" value="motor_mixing.commands[2]"/>
    <set servo="TAIL" value="@YAW"/>
  </command_laws>

  <rc_commands>
    <set command="YAW" value="@YAW"/>
   </rc_commands>
.....
</airframe>


The radio XML looks as follows:
<radio name="FrSky X9D + X8R receiver 12ch SBus connection" data_min="900" data_max="2100" sync_min ="5000" sync_max ="28000" pulse_type="POSITIVE">
     <channel ctl="A" function="THROTTLE" min="998" neutral="998" max="2011" average="0"/>
     <channel ctl="B" function="YAW"      min="990" neutral="1500" max="2011" average="0"/>
....
     <channel ctl="gain1" function="XKILL"     min="2050" neutral="1496" max="948" average="1"/>
....
</radio>



What am I missing here?
Thanks for your help, guys, I really appreciate your support !

Pascal

_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel


_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem controlling tail servo on tricopter

Christophe De Wagter
Just in case this would be your issue: please note that in paparazzi the tail servo (yaw) only starts working when the throttle is more than 10%. Below that yaw is arming.

Next: I'm not sure the <rc_commands are needed/used/good. The tail is just list all other commands, except no mixing is needed.

-Christophe 

On Tue, Apr 19, 2016 at 9:13 AM, Pascal Fust <[hidden email]> wrote:
Hi Loïc,
thanks for your advice, I'll try this, however, I've been using the similar setup (400Hz) on my fixed-wing paparazzi UAV with the same RC equipment without any problem.

Pascal

2016-04-19 7:12 GMT+02:00 Loic Drumettaz <[hidden email]>:

Hi,

Try to set the  tail servo frequency to 50 Hz.

Loïc

Le 19 avr. 2016 04:38, "Pascal Fust" <[hidden email]> a écrit :
Hi all,

I'm trying to get my tricopter to run on paparazzi. Therefore, I've adapted the CDW tricopter airframe file and changed the motor control from MKK to PWM, as I want test the rig for the instance without the I2C control option. Motors control works well, however I am struggling with the tail servo. It just doesn't work on paparazzi when connected via the autopilot, directly connected to the PWM of the RC receiver it works perfectly fine.

I attached the complete airframe XML, however the airframe file includes the following sections, important for PWM control:

<airframe name="KroozSD Tricopter">
  <firmware name="rotorcraft">
.....
    <subsystem name="radio_control" type="ppm">
       <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO10"/>    <!--  -->
    </subsystem>

    <subsystem name="actuators"     type="pwm">
      <define name="SERVO_HZ" value="400"/>
    </subsystem>
......
  </firmware>
<servos driver="Pwm">
    <servo name="TAIL" no="5" min="1000" neutral="1500" max="2000"/>
    <servo name="BACK"    no="2" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTRIGHT"   no="1" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTLEFT"    no="0" min="988" neutral="1000" max="2012"/>
  </servos>

  <commands>
    <axis name="PITCH" failsafe_value="0"/>
    <axis name="ROLL" failsafe_value="0"/>
    <axis name="YAW" failsafe_value="0"/>
    <axis name="THRUST" failsafe_value="0"/>
  </commands>

<command_laws>
    <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
    <set servo="FRONTLEFT" value="motor_mixing.commands[0]"/>
    <set servo="FRONTRIGHT" value="motor_mixing.commands[1]"/>
    <set servo="BACK" value="motor_mixing.commands[2]"/>
    <set servo="TAIL" value="@YAW"/>
  </command_laws>

  <rc_commands>
    <set command="YAW" value="@YAW"/>
   </rc_commands>
.....
</airframe>


The radio XML looks as follows:
<radio name="FrSky X9D + X8R receiver 12ch SBus connection" data_min="900" data_max="2100" sync_min ="5000" sync_max ="28000" pulse_type="POSITIVE">
     <channel ctl="A" function="THROTTLE" min="998" neutral="998" max="2011" average="0"/>
     <channel ctl="B" function="YAW"      min="990" neutral="1500" max="2011" average="0"/>
....
     <channel ctl="gain1" function="XKILL"     min="2050" neutral="1496" max="948" average="1"/>
....
</radio>



What am I missing here?
Thanks for your help, guys, I really appreciate your support !

Pascal

_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel


_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem controlling tail servo on tricopter

Pascal Fust
@Christophe:
Very good hint, as I was running the motors at low speed so far during the tests. Therefore, I might not have been above the 10% threshold. I'll check that out this evening...
Regarding the rc_commands: First, I haven't had this in the file, but added it later as the tail servo didn't work. I'll definitely remove it again, as you pointed out.

Thanks, Pascal

2016-04-19 9:30 GMT+02:00 Christophe De Wagter <[hidden email]>:
Just in case this would be your issue: please note that in paparazzi the tail servo (yaw) only starts working when the throttle is more than 10%. Below that yaw is arming.

Next: I'm not sure the <rc_commands are needed/used/good. The tail is just list all other commands, except no mixing is needed.

-Christophe 

On Tue, Apr 19, 2016 at 9:13 AM, Pascal Fust <[hidden email]> wrote:
Hi Loïc,
thanks for your advice, I'll try this, however, I've been using the similar setup (400Hz) on my fixed-wing paparazzi UAV with the same RC equipment without any problem.

Pascal

2016-04-19 7:12 GMT+02:00 Loic Drumettaz <[hidden email]>:

Hi,

Try to set the  tail servo frequency to 50 Hz.

Loïc

Le 19 avr. 2016 04:38, "Pascal Fust" <[hidden email]> a écrit :
Hi all,

I'm trying to get my tricopter to run on paparazzi. Therefore, I've adapted the CDW tricopter airframe file and changed the motor control from MKK to PWM, as I want test the rig for the instance without the I2C control option. Motors control works well, however I am struggling with the tail servo. It just doesn't work on paparazzi when connected via the autopilot, directly connected to the PWM of the RC receiver it works perfectly fine.

I attached the complete airframe XML, however the airframe file includes the following sections, important for PWM control:

<airframe name="KroozSD Tricopter">
  <firmware name="rotorcraft">
.....
    <subsystem name="radio_control" type="ppm">
       <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO10"/>    <!--  -->
    </subsystem>

    <subsystem name="actuators"     type="pwm">
      <define name="SERVO_HZ" value="400"/>
    </subsystem>
......
  </firmware>
<servos driver="Pwm">
    <servo name="TAIL" no="5" min="1000" neutral="1500" max="2000"/>
    <servo name="BACK"    no="2" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTRIGHT"   no="1" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTLEFT"    no="0" min="988" neutral="1000" max="2012"/>
  </servos>

  <commands>
    <axis name="PITCH" failsafe_value="0"/>
    <axis name="ROLL" failsafe_value="0"/>
    <axis name="YAW" failsafe_value="0"/>
    <axis name="THRUST" failsafe_value="0"/>
  </commands>

<command_laws>
    <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
    <set servo="FRONTLEFT" value="motor_mixing.commands[0]"/>
    <set servo="FRONTRIGHT" value="motor_mixing.commands[1]"/>
    <set servo="BACK" value="motor_mixing.commands[2]"/>
    <set servo="TAIL" value="@YAW"/>
  </command_laws>

  <rc_commands>
    <set command="YAW" value="@YAW"/>
   </rc_commands>
.....
</airframe>


The radio XML looks as follows:
<radio name="FrSky X9D + X8R receiver 12ch SBus connection" data_min="900" data_max="2100" sync_min ="5000" sync_max ="28000" pulse_type="POSITIVE">
     <channel ctl="A" function="THROTTLE" min="998" neutral="998" max="2011" average="0"/>
     <channel ctl="B" function="YAW"      min="990" neutral="1500" max="2011" average="0"/>
....
     <channel ctl="gain1" function="XKILL"     min="2050" neutral="1496" max="948" average="1"/>
....
</radio>



What am I missing here?
Thanks for your help, guys, I really appreciate your support !

Pascal

_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel


_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem controlling tail servo on tricopter

Pascal Fust
Thanks to you all for your ideas. I changed to lower servo frequencies (although the servo was supposed to run at 330 Hz), removed the rc_commands section, all without success. 
Then I was thinking about the power supply of the servo, as I was running the servo like the ESCs directly from the autopilot. Switching the BEC from the RC receiver to the PWM section on the autopilot (KroozSD), speeding up above 10% and it's working.

Looking forward to the maiden flight, now! :-)
Cheers, Pascal  

2016-04-19 9:50 GMT+02:00 Pascal Fust <[hidden email]>:
@Christophe:
Very good hint, as I was running the motors at low speed so far during the tests. Therefore, I might not have been above the 10% threshold. I'll check that out this evening...
Regarding the rc_commands: First, I haven't had this in the file, but added it later as the tail servo didn't work. I'll definitely remove it again, as you pointed out.

Thanks, Pascal

2016-04-19 9:30 GMT+02:00 Christophe De Wagter <[hidden email]>:
Just in case this would be your issue: please note that in paparazzi the tail servo (yaw) only starts working when the throttle is more than 10%. Below that yaw is arming.

Next: I'm not sure the <rc_commands are needed/used/good. The tail is just list all other commands, except no mixing is needed.

-Christophe 

On Tue, Apr 19, 2016 at 9:13 AM, Pascal Fust <[hidden email]> wrote:
Hi Loïc,
thanks for your advice, I'll try this, however, I've been using the similar setup (400Hz) on my fixed-wing paparazzi UAV with the same RC equipment without any problem.

Pascal

2016-04-19 7:12 GMT+02:00 Loic Drumettaz <[hidden email]>:

Hi,

Try to set the  tail servo frequency to 50 Hz.

Loïc

Le 19 avr. 2016 04:38, "Pascal Fust" <[hidden email]> a écrit :
Hi all,

I'm trying to get my tricopter to run on paparazzi. Therefore, I've adapted the CDW tricopter airframe file and changed the motor control from MKK to PWM, as I want test the rig for the instance without the I2C control option. Motors control works well, however I am struggling with the tail servo. It just doesn't work on paparazzi when connected via the autopilot, directly connected to the PWM of the RC receiver it works perfectly fine.

I attached the complete airframe XML, however the airframe file includes the following sections, important for PWM control:

<airframe name="KroozSD Tricopter">
  <firmware name="rotorcraft">
.....
    <subsystem name="radio_control" type="ppm">
       <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO10"/>    <!--  -->
    </subsystem>

    <subsystem name="actuators"     type="pwm">
      <define name="SERVO_HZ" value="400"/>
    </subsystem>
......
  </firmware>
<servos driver="Pwm">
    <servo name="TAIL" no="5" min="1000" neutral="1500" max="2000"/>
    <servo name="BACK"    no="2" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTRIGHT"   no="1" min="988" neutral="1000" max="2012"/>
    <servo name="FRONTLEFT"    no="0" min="988" neutral="1000" max="2012"/>
  </servos>

  <commands>
    <axis name="PITCH" failsafe_value="0"/>
    <axis name="ROLL" failsafe_value="0"/>
    <axis name="YAW" failsafe_value="0"/>
    <axis name="THRUST" failsafe_value="0"/>
  </commands>

<command_laws>
    <call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
    <set servo="FRONTLEFT" value="motor_mixing.commands[0]"/>
    <set servo="FRONTRIGHT" value="motor_mixing.commands[1]"/>
    <set servo="BACK" value="motor_mixing.commands[2]"/>
    <set servo="TAIL" value="@YAW"/>
  </command_laws>

  <rc_commands>
    <set command="YAW" value="@YAW"/>
   </rc_commands>
.....
</airframe>


The radio XML looks as follows:
<radio name="FrSky X9D + X8R receiver 12ch SBus connection" data_min="900" data_max="2100" sync_min ="5000" sync_max ="28000" pulse_type="POSITIVE">
     <channel ctl="A" function="THROTTLE" min="998" neutral="998" max="2011" average="0"/>
     <channel ctl="B" function="YAW"      min="990" neutral="1500" max="2011" average="0"/>
....
     <channel ctl="gain1" function="XKILL"     min="2050" neutral="1496" max="948" average="1"/>
....
</radio>



What am I missing here?
Thanks for your help, guys, I really appreciate your support !

Pascal

_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel


_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel




_______________________________________________
Paparazzi-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
Loading...