Dev Call Aug 07, 2017 2300 UTC


  • Copter-3.5.x release update


  • Update


  • 3.8 Release Update


  • WAF build for release
  • Zero of memory in objects


*I don’t think there is an update on


  • Update from Sebastian
  • Others?


1 Like

Attendee count (max): 23

09:02 - Randy and Copter
3.5.1 is going very well
3.5.2rc1 is out
Look at projects area/release notes to see what’s in
Landing gear change
Functional improvement rather than bugfix
Back to 3.4.6 behaviour
Some fixes from Lucas
Another i2c bus on Intel Aero
Floating point exception from MdB
Servo function fix
Doesn’t include qmc compass driver
Fix from Leonard NOT included (for quadplanes)
Motor scaling
Final will probably be out this Friday

09:06 - Randy and Rover
Stuff went in!
Peter’s Flight-mode classes
As modified by Randy and Pierre
Major cleanup
Randy is really happy with this change!
Functional improvements next
Presentation Randy has distributed is worth looking at
Things in that document will be applied to Rover
E.g. Steering saturation issues
Need to add controller feedback so that PIDs don’t wind up when you hit physical limits on your vehicle
Linearisation of outputs
Like Motor curve compensation in Copter
Steering controllers are already linearised
If you go faster then scaling is applied to your steering
But this doesn’t work on skid-steering vehicles
Plane’s ground steering suffers from some of the same problems
This can be tested in SITL
And in RealFlight
Take wings off the plane….
Whole steering controller is based around steering wheels not pivot vehicles
Might need to subclass
The lateral acceleration thing is wonky for pivot steering vehicles
Accels.gyros are used, which is wrong
E.g. a tracked vehicle can turn at 0 speed
So why use lateral acceleration?
Scaling goes off at low speeds
Tconst is an odd thing
Should be have an angular controller on a rate controller instead, like Copter?
Tconst is used in Plane to convert between the angle and rate errors (same wth Rover)
Copter does things the other way around - seconds vs 1/seconds
Result from the tconst multiplication goes into integrator?!
In Copter you would go into a controller rather than via a PID
FF vs P
float kp_ff = MAX((_K_P - _K_I * _tau) * _tau - _K_D , 0) * 45.0f;

Paul did this controller
Original by Doug
Wanted to keep same behaviour as Doug’s
Paul jumped through hoops to keep parameters the same
Few users tune the steering controller!
Most people chuck their planes
Most use default tune
Suggestion to create a new controller
Then have Plane use new controller later
Move fast and break things, Randy!
Two controllers (tracked/steering wheels)
Steering issues / non-symmetric and non-linear
Should have a parameter
Control reversal when on ground / at low speeds
Oscillation due to castor a
Initial left turn turns into right turn later
Gyro effect
This is what makes tuning ground steering hard
Castor is good from a physical perspective
Less breakage
Tridge bends the wheel to reduce castor!
Tracked controller should be much smaller than normal controller
Rob suggests starting from scratch for new controllers
-1/+1 change helps make this sense
Combined throttle/steering controller?
Combination P / PID controller
Prioritisation could be done better this way
Wouldn’t be usable on Plane

09:29 - tridge and Plane
3.8 released!
Weather was final delay
But really cold/windy/miserable in Canberra
20kt winds for testing eventually
No crash reports so far
Migration guide!
Doesn’t really affect Copter users
Except Gimbal
Planes for 3.8.1
Yaw control with differential thrust for tail-sitters
3.8 has some of this
Quadplane transition-to-landing has jump in demanded altitude
Copter Z-Controller can drop thrust too far
Plane can drop significantly!
Demanded e.g. 38m vs 36m
Tuning issue?
Never control set-alt-target?
Time needed!
Release builds will be switched to WAF
PR is in place
Most devs are using waf now
Proposal from Lucas to change the way we zero memory
Tridge likes it
Very intrusive
Make life easier for static analysis tools
FF has a few issues
Need a PR from Lucas
Tridge wants syntactic sugar on classes to make it easier to find bugs
Randy thinks this is a good time to shake things up like this

09:37am - Issues
Gimbal pointing issue
Base things on GPS heading?
Depending on speed so it doesn’t go crazy on ground
Use velocity vector instead of GPS?
Have a function in ahrs for this already
Problem is vaguely storm32-specific
We send earth-frame target
Maybe we need a different mode
Yaw relative to body frame
Rc targeting/mavlink targeting only
Gps targeting should currently be OK
Need to know what mount mode he’s using
Point to next waypoint?
They might not currently have a waypoint!
Need to apply this for any gimbal
Is this a new “frame”?
COG frame?
Maybe just do all of it automatically?
Add delta between COG and yaw to gimbal target
pan/tilt FPV use case would seem to preclude this
Probably need a parameter to turn it off
Cruise mode was added to do this scenery-looking stuff
So you’re always looking at what you want regardless of crosswind
“Whenever the argument goes over 10 minutes you need a parameter” - tridge’s first law of DevCalls
GCS would need to be modified
Want people to get this fix
Would need to change mount mode between hover and forward flight on vtol aircraft
Randy’s driving
Lack of engine noise freaking various participants out
Engine noises supplied by various participants
Preflight-reboot safety changes
Set- PWM 1 thing
Done by Sub only
Can’t do zero because interface ignores 0
This is treated as zero by ESCs that we know about
This behaviour might be dangerous
But we really shouldn’t rely on this!
360 rotation ESCs?!
Might keep going and going and going
Weird things have happened
Including permanent reversals
Out-of-range pulses are bad!
Need to
change low-level to either treat 1 as zero
Or change interface so we can set zero
Reboot should be as close as possible to power-cycling
Plane turns safety on to be close to what happens on power cycle
Maybe not completely successful yet
Some channels may not be right
Should we send a reboot to the IO processor?
This is a safety net
Preflight reboot
Change behaviour based on armed?
Crossing codepaths?
Mixers for other vehicles?
Simple mixer for heli would be good
A good enough pilot could save the vehicle
Testable via a switch on the transmitter
Multi could go to minimal outputs
Rover can always just stop….

Should CLI die?
Log download
MP has stopped using it for log download
Nsh console tells you v2 vs v3
We should populate the mavlink hardware field
YES - it will die!
Generalisation of serial 5
Output from debug port on startup is the issue
E.g. does GPS get confused by all this garbage coming out?
Telemetry links would probably be OK
Persistent byte in chip?
OTP area?
Hold last value of nsh enablement
Need to tell nsh to exit / stop using port
Can then just open it up
SerialManager would say that if the port is ordinarily nsh then it would poke nsh to say stop
Just recommend people not use NSH port for non-validated devices
Tridge wants uart-over-canbus

10:35am - Miguel and his GSoC project
Hardware uart problems
USB/Serial chip weren’t able to receive at 1mbit (but could send…)
Changed to use loopback on RPi
source/sync side processing messages
Debugging CPU usage
And other performance metrics
Going to to RC input/output to the mix
Next step is to make the other side an stm32
Tridge is looking forward to this
wants to know if we can get the khz data through
Stm32 DMA send on uarts is the concern
Many, many interrupts
You can do dma xmit but NuttX doesn’t currently permit it
Need to do a writeup
a HOWTO so other people can reproduce work

10:39am - Olivier and marketing
Meeting was held with Alex Perez
Organised quickly
Kept getting bumped out of DevCall
interDrone coming up
Meeting Notes
The number one marketing effort (most important)
Branding between PIxHawk vs PX4 vs ArduPilot
InterDrone promotional materials
Tom set up a Skype channel
Death by committee was feared, so Tom left!
Nab Olivier if you want to get onto the Skype chat
Some ideas to dispel branding confusion
Simple explanation to disambiguate
Video for interdrone
Another Mumble meeting tomorrow, same time
Funding Proposal coming
Should make Tom happy!
Tridge wants a video showcasing the large number of vehicles ArduPilot can control
But we need a nice summary video with nice music and production values
Tridge wants to do a HOWTO video on contributing to Wiki
Click-to-edit on GitHub
Get people to contribute to docs
Tridge wants to do some new-features-video for Plane
E.g. HOWTO use servo-auto-trim
2-minute videos
Associated with blog posts
Flightaxis simulator to demonstrate
Alex suggested tutorials would be great
Involve users!
Olivier thinks the meeting notes should go up on Discuss
Should the Skype marketing channel be a gitter channel instead?
More open, discoverable, lurkable
Should we have a marketing committee?
With a marketing budget?
Oliver thinks it might be too early
Would need to do proper elections and the like
Gathering stats
Voluntary information gathering
Amilcar’s company is interested in setting up something droneshare like
Random other people also want to do droneshare-like stuff
GCSs will need to support
Businesses sometimes move on…
Like droneshare…
Having the ability to move on is important!

10:49am - Contribution of the Month for July
Make more suggestions, please
ed." Years later, he landed at Microsoft and says he saw how Microsoft used high-paying jobs strategically, bot


thanks craig for keeping us in the loop.
i am not following the project too close lately but feel well informed!

very nice to see lots of cool things happenening on the rover side. cant wait to dive in again.


maybe I can share some experience
I’m using such a concept for the STorM32 gimbal controller (called there NT bus), the chip is a F103 @ 78Mhz, the control loop runs at 1.5ms, the UART at 2Mbaud, and it shuffles data at a rate of 1.3Mb/s or slightly higher. What I observed:
the FTDI usb chip can be used with 2Mb (or 1Mb) out of the box, but it doesn’t work very reliable (data gaps), best results I got with the CP2102, but it needs to be configured for use with 2Mb (might not be needed for 1Mb) (
the very best is IMHO the new CP2102N, it has somewhat larger fifo’s, I’m very happy with it.
For “long” transmissions I found DMA better, for “shorter” ISRs, so I’m using a mix of both. My ISRs are well optimized, I didn’t see any issues with the high rate of ISRs. Remind you, I’m at 78Mhz and 2Mb, you at 168MHz and 1Mb, so, should be even better. The “problem” with DMA seems that it takes quite some time to set up and start the transmission, so that it is worth it only for long transmissions (let’s say, more than 25 bytes), and only for more than let’s say 100bytes en bloc I found it to be a real worthy improvement.
Just in case this might help.