# Get vehicle attitude

Source: https://forum.modalai.com/topic/200/get-vehicle-attitude
Category: Flight Core and Legacy VOXL (https://forum.modalai.com/category/9/flight-core-and-legacy-voxl)
Tags: flight-core
Posted: 2021-04-16 18:08:12 UTC by Andrew Keefe
Replies: 8 · Views: 1945

## Andrew Keefe · 2021-04-16 18:08:12 UTC

Is there a parameter I need, or a minimum number of sensors, to produce a vehicle_attitude message?  I'm looking for a clean pitch/roll/yaw but it's not being published.  I don't have a GPS/compass plugged in at the moment, but my gyros and IMU are calibrated.

## Reply by modaltb (ModalAI staff) · 2021-04-16 19:20:01 UTC

Hey @Andrew-Keefe ,

What FW version are you running?  Are you using vision features or just the flight controller?

By default, PX4 (and EKF2 by way of the ECL library) won't initialize without mag data.....

Our 1.10 release (we have a 1.11 release as well in 'beta') provides the ability to allow EKF2 to initialize without mag data.  The 1.10 release needs "EV" data (external vision) but our 1.11 allows initialization even without EV data.

## Reply by Andrew Keefe · 2021-04-16 19:33:14 UTC

I branched off of version 1.0.

Just the flight controller, and honestly not really even that.  Just the sensors.  There is no vision.  I will connect my compass and calibrate it and see if that does the trick.  I'm on the bench so rotating the compass isn't always easy.

## Reply by modaltb (ModalAI staff) · 2021-04-16 20:44:20 UTC

Yes I've had this issue myself.  Here's were we tweak the ECL/EKF2 init:

https://github.com/modalai/ecl/commit/207ad805368141f92211281b607a3a9f76a868e6#diff-a002684e5addc90ff5d584ea8d7c0061104b10c15112b3d28f8bf34f0742deb2L186

You could hack at that code on your local branch and ignore mag totally and the estimator should get going (I'm more of a drivers guy and not a flight guy, so the ramifications of this are still in the air (no pun intended!))

## Reply by Andrew Keefe · 2021-05-14 15:37:50 UTC

That worked, and now I'm getting pitch from vehicle_attitude.
With the filter enabled though, PWM is also being enabled by the system, which is interfering with the code I wrote to manually control them.  I'm getting chattering.

## Reply by Andrew Keefe · 2021-05-26 20:53:57 UTC

@modaltb Can you help point me to where PWM is being enabled once EKF2 is initialized?  I can't seem to get rid of this chatter.

## Reply by modaltb (ModalAI staff) · 2021-05-26 22:38:51 UTC

It's been a bit since I was in this area, but I think this is close to where you can debug setting of the PWM outputs:

https://github.com/modalai/px4-firmware/blob/modalai-1.11/platforms/nuttx/src/px4/stm/stm32_common/io_pins/pwm_servo.c#L65

That's not in the 'normal' source tree which can cause break point headaches, but it's called from here: https://github.com/modalai/px4-firmware/blob/modalai-1.11/src/drivers/pwm_out/PWMOut.cpp#L562

I had an issue before in here that was caused by a timer bug and the wrong CCR was being used.  This has been fixed, but for reference the timers are setup here: https://github.com/modalai/px4-firmware/blob/modalai-1.11/boards/modalai/fc-v1/src/timer_config.cpp#L55

Not sure if that will help but that's where I'd start if you haven't alraedy trie

## Reply by Andrew Keefe · 2021-05-27 20:24:16 UTC

I don't have a pwm_out driver. I do have a pwm_servo, and it's being called from PX4FMU, such as from update_pwm_out_state.

What I need to do, I think, is disable the mixer values for PWM so that I can set them manually.  I'm not sure if my 

ret = px4_ioctl(fd, PWM_SERVO_SET(PORT_FIN), pwm_value);

command goes to the mixer, or if I can bypass the mixer in mixer_module.cpp.

I'm basically commenting out things one at a time to see what happens since I'm not set up to step through the code.

## Reply by Andrew Keefe · 2021-05-27 20:45:59 UTC

Ah, when I run the PWM program there is no chatter on the PWM signals, so I'm going to review that code again and compare it to mine.
