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()
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