Commit Graph

11637 Commits

Author SHA1 Message Date
Beat Küng c2f82b5996 logger: disable mission log by default (SDLOG_MISSION=0)
- I enabled it by default mostly for testing purposes
- Disabling it reduces resource usage as most setups don't need it
2019-01-09 08:59:29 -05:00
Dennis Mannhart 5887a2393c PositionControl: skip controller only if adjusted thrust setpoint are not finite
PositionControl: update comment about the order of thrust and position

mc_pos_control: reset setpoints to NAN if required

MulticopterLandDetector: consider to be landed if vehicle is not armed

mc_pos_control: initialize landing struct with landed

mc-pos-ctrl: adjust thrust-setpoint and yaw during ground-contact/maybe-landed without capturing
that information within vehicle-local-position-setpoint topic because that information
does not belong to user intention

PositionControl: set local position/velocity setpoint to NAN if not used in the control pipeline

mc-pos-ctrl: Fill vehicle_local_position_setpoint_s structure as follow:
The message contains setpoints where each type of setpoint is either the input to the PositionController
or was generated by the PositionController and therefore corresponds to the PositioControl internal states (states that were generated by P-PID).
Example:
If the desired setpoint is position-setpoint, _local_pos_sp will contain
position-, velocity- and thrust-setpoint where the velocity- and thrust-setpoint were generated by the PositionControlller.
If the desired setpoint has a velocity-setpoint only, then _local_pos_sp will contain valid velocity- and thrust-setpoint, but the position-setpoint
will remain NAN. Given that the PositionController cannot generate a position-setpoint, this type of setpoint is always equal to the input to the
PositionController.

mc_pos_control: switch to designated initializer for landed

It's less error prone because it produces an error on every discrepancy.
2019-01-08 15:36:30 +01:00
Daniel Agar 60f2a92e3d replace <cfloat> with <float.h>
- <cfloat> isn't available in the NuttX c++ library
2019-01-06 19:20:57 -05:00
Daniel Agar c0b464e9e2 replace <cinttypes> with <inttypes.h>
- <cinttypes> isn't available in the NuttX c++ library
2019-01-06 19:20:57 -05:00
TSC21 3c246ce170 microRTPS: improve verbosity with the usage of px4_log types 2019-01-02 00:14:18 +00:00
Daniel Agar 8c88aa6416 mavlink move simple getters to header and mark const 2019-01-01 22:21:02 +00:00
Daniel Agar f60bfd0020 mavlink add tx loop interval perf counter 2019-01-01 22:21:02 +00:00
Daniel Agar 55e3f80bab mavlink handle MAV_ODOM_LP parameter in main
- fixes #11125
2019-01-01 22:21:02 +00:00
bazooka joe 1560364c04 fix home position timestamp to be the timestamp that the home was set and not when the message was sent 2018-12-27 11:04:24 -05:00
bazooka joe f6cf95cee0 mavlink: fix uninitialized messages fields
zeroed uninitialized fields on home_position, mavlink_rc_channels_override, mavlink_mission_item, mavlink_mission_item_int
2018-12-27 11:04:24 -05:00
Daniel Agar 3cd3856d32 commander set home position timestamp properly 2018-12-27 10:52:01 -05:00
Julian 3e87013936 simulator: fix TCP on Cygwin-Windows
It turns out that `sendto` does not work for TCP on Cygwin-Windows,
instead we need to use `send`. This required some refactoring since we
need to have the internet protocol and the port stored as a member
variable.

This should fix that lockstep SITL simulation was not working on
Windows.
2018-12-27 07:49:12 +01:00
PX4 Build Bot 03c0760e4b Update submodule micro-CDR to latest Sun Dec 23 21:17:02 UTC 2018
- micro-CDR in PX4/Firmware (b043cfac5e8635d9017ad6a13f45795ad6fda6fb): https://github.com/eProsima/micro-CDR/commit/8b3546e8848e4c07c16ec55730d3ad1aa94396ab
    - micro-CDR current upstream: https://github.com/eProsima/micro-CDR/commit/7a76880f90dfe702f4fa1723e22d1dcb491d7b9e
    - Changes: https://github.com/eProsima/micro-CDR/compare/8b3546e8848e4c07c16ec55730d3ad1aa94396ab...7a76880f90dfe702f4fa1723e22d1dcb491d7b9e

    7a76880 2018-12-11 Julián Bermúdez Ortega - Badges (#24)
2018-12-23 21:25:09 +00:00
Julian Oes a1fc44d1f0 simulator: fix noise in airspeed
It turns out the noise of the airspeed depends on the least significant
bit of time which is now always 0 because time is quite regular with
lockstep. Therefore, we need a better source for the randomness. I chose
to use the sign of the y-gyro and it seems to work.
2018-12-22 10:32:18 +01:00
Julian Oes 73578a593f simulator: bring -t argument back
The -t argument had been deleted because I didn't realize that it was
actually being used. Therefore, this brings it back and we now use -c
for TCP.
2018-12-22 10:32:18 +01:00
Julian Oes 1b685de70d simulator: raise timeout
This is not suposed to ever trigger anyway.
2018-12-22 10:32:18 +01:00
Julian Oes 8b2c47523f simulator: set socket options after opening socket 2018-12-22 10:32:18 +01:00
Julian Oes e4af97b11b simulator: fix printf format 2018-12-22 10:32:18 +01:00
Julian Oes 564cae86b5 simulator: remove doubled tcgetattr call 2018-12-22 10:32:18 +01:00
Julian Oes 8a5e0558e4 simulator: improve a couple of error messages 2018-12-22 10:32:18 +01:00
Julian Oes 1165739a56 sensors: check other gyros on timeout
@bkueng reviewed this and found that it is dangerous to continue on
timeout because we don't update other gyro sensors in the timeout case.
2018-12-22 10:32:18 +01:00
Julian Oes f36f85010c simulator: fix casting warning on Windows 2018-12-22 10:32:18 +01:00
Julian Oes 22b584b3b4 simulator: fix TCP connection init on macOS
When `connect()` fails, the state of the socket is unspecified and we
need to close the it and create it again.

It turns out retrying connect worked on Linux but it didn't on macOS.
2018-12-22 10:32:18 +01:00
Julian Oes 107606e757 simulator: set device_ids when publishing directly
Without setting the device_id, the preflight checks fail because the
calibration is not found.
2018-12-22 10:32:18 +01:00
Julian Oes 6d7fb232dd simulator: added TCP, general cleanup, lockstep
This adds the option to connect over UDP or TCP for mavlink to the
SITL simulator.

Also, this includes a bunch of general cleanup and refactoring of the
simulator interface code. For instance sending of mavlink messages was
put into separate functions and unneccessary comments were removed.

Also, this now sets the timestamp sent by the SITL simulator in the
HIL_SENSOR message in order to enable lockstep.
2018-12-22 10:32:18 +01:00
Julian Oes cf39fdd37b simulator: use usual type of timestamp 2018-12-22 10:32:18 +01:00
Julian Oes 9b7857315c sensors: handle timeout 2018-12-22 10:32:18 +01:00
Julian Oes 22bd06e5d5 mc_pos_control: don't do orb_check on polled topic
When we poll on vehicle_local_position we shouldn't do yet another
orb_check but copy it first up.
2018-12-22 10:32:18 +01:00
Julian Oes 0e04d3e9a9 commander: remove lying comment 2018-12-22 10:32:18 +01:00
Julian Oes 4ef0d74ea3 platforms: remove old lockstep functionality
These functions won't be used any longer with the new implementation.
2018-12-22 10:32:18 +01:00
Julian Oes a7e93bc2da simulator: removed leftover (wrong) comment 2018-12-22 10:32:18 +01:00
Julian Oes 09595a1de9 dataman: left FIXME comment
We shouldn't be using module here.
2018-12-22 10:32:18 +01:00
Julian Oes 3e6e1f5c2b POSIX: use lockstep_scheduler to fake time
This integrates the lockstep_scheduler, so that the system time is set
by the mavlink HIL_SENSOR message.

This means that the speed factor is removed and the speed is entirely
given by the simulator.
2018-12-22 10:32:18 +01:00
Julian Oes d70b0f1c8c Replace sleep with px4_sleep
This is another step to isolate time from the system.
2018-12-22 10:32:18 +01:00
Julian Oes 5b9dea5604 Replacing usleep with px4_usleep
This is a step towards isolating time from the system.
2018-12-22 10:32:18 +01:00
Daniel Agar 49be26b6cf load_mon improve cpuload calculation and cleanup (#9852) 2018-12-21 22:27:58 -08:00
Alvar Martti 63651da309 FW bug in checking if landing point has been passed
* the bearing difference between the waypoints and aircraft to landing point should be wrap_pi'ed
2018-12-21 10:03:31 -08:00
Nuno Marques cfd1be584e Feature: VIO: add ODOMETRY stream (#11084)
* mavlink_messages: remove LOCAL_POSITION_NED_COV stream

* mavlink_messages.cpp: add ODOMETRY stream

* add MAV_ODOM_LP parameter to activate odometry loopback

* EKF2: add vehicle_odometry publisher

* Replace VISION_POSITION_ESTIMATE loopback with ODOMETRY

* LPE: add vehicle_odometry publisher

* set vehicle_odometry local_frame field

* mavlink_messages.cpp: ODOMETRY frame_id depends on MAV_ODOM_LP
2018-12-21 12:54:04 -05:00
Christian Rauch b3018646d5 check CONFIG_STACK_COLORATION for print_load_nuttx 2018-12-21 05:43:21 -08:00
Christian Rauch a6adc64569 check CONFIG_TASK_NAME_SIZE for print_load_nuttx 2018-12-21 05:43:21 -08:00
Christian Rauch 8a2e3800d8 check CONFIG_SCHED_INSTRUMENTATION for print_load_nuttx 2018-12-21 05:43:21 -08:00
Matthias Grob f8171f999b mavlink: initialize orbit struct 2018-12-19 18:22:08 +01:00
Matthias Grob d4a40f5d99 px4_custom_mode: add custom sub mode orbit 2018-12-18 14:40:07 +01:00
Matthias Grob e708e82425 mavlink: lower orbit status frequency 5Hz 2018-12-18 14:40:07 +01:00
Matthias Grob 25aa2b9c8c orbit: fix telemetry message content 2018-12-18 14:40:07 +01:00
Matthias Grob 14b83f7bfc mavlink: add orbit to the normal messages
It is only actually sent out when the orbit is running.
2018-12-18 14:40:07 +01:00
Alessandro Simovic 10913a66b4 orbit: sending telem via mavlink 2018-12-18 14:40:07 +01:00
Beat Küng 447ed18ab4 commander: use C API for MC_AIRMODE & RC_MAP_ARM_SW to remove multirotor modules dependency 2018-12-13 09:50:07 +01:00
Beat Küng c665c34d2a MC stabilized: allow yaw control at 0 throttle if yaw-airmode is selected 2018-12-13 09:50:07 +01:00
Beat Küng 24dc316973 commander: enforce yaw-airmode to have an arming switch mapped
Yaw airmode w/o arming switch is most likely not what you want and will
lead to surprising results.
2018-12-13 09:50:07 +01:00