63
edits
Changes
Day 11
,→LOG
= LOG =
# Discovered that PX4 does not implement <code>SET_POSITION_TARGET_GLOBAL_INT</code> and mavros mess up converting from global setpoint to local one => Our approach is now:#* <code>trajectory_generator</code> node now publish local setpoints in Trajectory message. This has been done referring all the points (UTM) to home position (UTM) (we have just needed to subtract easter and northen of the home position).#* Send the obtained trajectory with <code>flight_controller</code> node publishing on mavros <code>setpoint_raw/local</code> topic. The "raw" version has been chosen because it allows to send position, velocity and acceleration all in the same message. The mavros plugin then send <code>SET_POSITION_TARGET_LOCAL_NED</code> mavlink messages.#* N.B Mavros itself handle the conversion from ENU (East North UP) to NED (North East Down) so the setpoint we send are in ENU coordinate system.
# <code>mc_pos_control_main.cpp:540</code> uses the paramter <code>MPC_ALT_MODE</code>, to forward the rangefinder senser velocity to the internal z_v state, to enable terrain following
# We need to ensure in FlightController, by subscribing the altitude topic and eventually doing some calculations, that the information in the setpoint, which INTERALLY we treat it as RELATIVE TO GROUND, in the trajectory with the list of setpoints, is CONVERTED IN TO A PX4 compatible ALTITUDE