How to make quadcopter react to channel override values

Hi Community,

I am working a GPS denied quadcopter which requires channels override as I do not have other options. When I use mavproxy and python dronekit version 1.5, I can not seem to make it go forward or backward.

Here is my code:

import time
from droneapi.lib import VehicleMode, Command
from pymavlink import mavutil

# Connect to API provider and get vehicle
print "Connecting to vehicle..."
api = local_connect()
vehicle = api.get_vehicles()[0]

#Arms vehicle and fly to aTargetAltitude.
def arm_and_takeoff(aTargetAltitude):

    print "Basic pre-arm checks"
    # Don't let the user try to fly autopilot is booting
    if vehicle.mode.name == "INITIALISING":
        print "Waiting for vehicle to initialise"
        time.sleep(1)

    print "Arming motors"
    # Copter should arm in GUIDED mode
    vehicle.mode    = VehicleMode("GUIDED")
    vehicle.armed   = True
    vehicle.flush()

    while not vehicle.armed and not api.exit:
        print " Waiting for arming..."
        time.sleep(1)

    print "Taking off!"
    vehicle.commands.takeoff(aTargetAltitude) # Take off to target altitude
    vehicle.flush()

arm_and_takeoff(.5)

#Get all original channel values (before override)
print " Channel default values:", vehicle.channel_readback

#print Overriding RC channels for pitch forward
vehicle.channel_override = { "2" : 1345}

print " Ch2 override: %s" % vehicle.channel_override['2']
vehicle.flush()

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Hey there,

    What you're doing is risky, so stay safe.

    Also the range of the RC values is usually from 1000 - 2000. So 1000 is in essence the Zero, and will likely not spin the motors, whereas 2000 will make them whir.

    Quite a lot of things can go wrong, so make sure you have a lot of methods to shutdown your aircraft. and try first without props :D

  • Hi Vinh K,

    I would like to ask you that have you ever tried mavros/rc/in when you control it using the RC transmitter. I am going to read each channels in this topic but once I programm msg.channels[3] forexample, the FCU error shows me " the process has died". 

    Thanks

This reply was deleted.

Activity