v2.0.0
🎉 Version 2 of MAVSDK is finally out!
📓 Note that v2 means that the API (and ABI) has changed, for details see: https://mavsdk.mavlink.io/v2.0/en/cpp/api_changes.html#v2
High level changelog
- API changes (upgrade guide)
- Multiple callback subscriptions
- Required configuration of Mavsdk instances, consolidated component types
- Easier autopilot discovery
- Better support for server components (camera, companion/onboard computer side)
- New functionality
- New plugins
- Tons of refactoring and bugfixes
- Updated dependencies
All pull requests
- gitmodule: remove mavlink repo by @julianoes in #1771
- Server component and server plugin infrastructure by @julianoes in #1733
- Add version number fallback by @bazfp in #1773
- Fix system discovery by @JonasVautherin in #1774
- workflows: reset CI cache for Windows build by @julianoes in #1775
- Fix FTP test segfault by @julianoes in #1777
- telemetry: fix scope of subscription lock by @julianoes in #1780
- openssl: update to 1.1.1o by @julianoes in #1782
- params: fix double promise call by @julianoes in #1788
- Update ios toolchain by @JonasVautherin in #1781
- Update dependencies by @JonasVautherin in #1784
- Two small improvements of server component by @julianoes in #1790
- core: Add callback list by @julianoes in #1767
- More command result options by @julianoes in #1793
- telemetry: sys_status for position health flags by @julianoes in #1794
- docker/workflows: add PX4 v1.13 beta to CI by @julianoes in #1796
- server: enabled option for default health check service for mavsdk grpc server. by @ykhedar in #1799
- rtk: fix multi part data being sent by @julianoes in #1808
- plugin: corrected support for basic actions for ardupilot by @ykhedar in #1738
- Fix vehicle type detection by @bazfp in #1810
- Add Ubuntu 22.04 to CI by @JonasVautherin in #1801
- workflows: try to fix caching issue by @julianoes in #1814
- cmake: install mavlink headers in correct dir by @JonasVautherin in #1819
- Retry home position until set. by @ykhedar in #1816
- Transponder: expose altitude type by @chep in #1812
- Integration tests: do not continue if flightmode unknown by @JonasVautherin in #1830
- Fix build_and_push_docker_images.sh by @JonasVautherin in #1829
- core: fix some bugs in fs_canonical by @CodeTriangle in #1820
- Add Fedora 36 to CI by @JonasVautherin in #1828
- Unregister to prevent fulfilling promise twice by @JonasVautherin in #1824
- Use a uniform distribution to drop messages in lossy test by @JonasVautherin in #1827
- Subscriptions with multiple subscribers by @julianoes in #1768
- Update Follow me code to match upstream changes by @junwoo091400 in #1770
- core: unistd is not available on Windows by @julianoes in #1832
- Generate grpc_server.h/grpc_server.cpp, support selectively building plugins by @julianoes in #1776
- Set default MAVLINK_DIALECT by @JonasVautherin in #1835
- Use mission_type argument in integration test by @JonasVautherin in #1834
- Update tinyxml2 to 9.0.0 by @JonasVautherin in #1838
- Fix cache by @JonasVautherin in #1844
- Fix unused warnings in filesystem tests by @JonasVautherin in #1841
- Fix warning and improve integration test by @JonasVautherin in #1839
- Fix warnings in mavsdk server by @JonasVautherin in #1840
- Only enable follow-me test if the improved followme' parameter exists by @junwoo091400 in #1847
- Various cleanup towards v2 by @julianoes in #1849
- added optional mavsdk server built with grpc proto reflection. This a… by @ykhedar in #1850
- Local protoc-gen-mavsdk install by @julianoes in #1855
- core: second in flight command fix by @julianoes in #1862
- core: prevent timeout after callback by @julianoes in #1863
- Detect external storage format by @JonasVautherin in #1851
- create ack packet and send it by @julianoes in #1868
- Switch to clang-format-12 by @julianoes in #1859
- examples: fix build of gimbal_device_tester by @julianoes in #1871
- tools: fix clang-format error message by @julianoes in #1887
- mission/mission_raw: more results by @julianoes in #1886
- info: updated the message to obtain flight and autopilot info as per … by @ykhedar in #1787
- core: fix unused-parameter warning by @julianoes in #1895
- mission_raw: Add support for geofence and rally points by @julianoes in #1892
- telemetry: split attitude into Euler + Quaternion by @julianoes in #1878
- core: fix style by @julianoes in #1896
- Add support for pkgconfig by @JonasVautherin in #1889
- mission_raw: add home position at 0 for ArduPilot by @julianoes in #1893
- Update openssl to 3.0.5 by @JonasVautherin in #1811
- New vehicle action by @rligocki in #1628
- Pin ci workers to macos-12 by @JonasVautherin in #1898
- Add ArduPlane flight modes by @bahadirbuber in #1897
- core: remove wrong/confusing warning by @julianoes in #1904
- Remove some noise by @julianoes in #1905
- Add software version type to system info by @YalamareddyChaitanya in #1918
- tools: Refactor changelog generation by @Andreea-L in #1923
- Added altitude to telemetry plugin by @YalamareddyChaitanya in #1920
- Use latest MAVLink definitions by @TSC21 in #1929
- Add bottom_clearance to altitude in telemetry by @YalamareddyChaitanya in #1930
- mavlink: install pymavlink dependencies by @julianoes in #1906
- Move openssl dep to MAVSDK_SERVER only by @JonasVautherin in #1926
- docker: Update README by @antonio-sc66 in #1938
- server_utility: remove leftover warning by @julianoes in #1934
- geofence: Add support for circular geofences by @YalamareddyChaitanya in #1933
- Add multi_mavsdk_server.sh util by @antonio-sc66 in #1937
- fixed log_files proto by @dayjaby in #1942
- Fix CI for iOS by @JonasVautherin in #1949
- mission_raw: add method to import plan from string by @julianoes in #1950
- fix_style.sh: Show correct docs link by @potaito in #1954
- examples: add simple sniffer by @julianoes in #1953
- Add battery status message for v1 by @Katawann in #1939
- Fixed bug with empty mission upload by @weirdgyn in #1963
- core: always send heartbeat on serial connections by @julianoes in #1968
- telemetry: fix distance_sensor unit by @julianoes in #1971
- Distance sensor server by @potaito in #1964
- Winch and Gripper plugins by @potaito in #1958
- mission_raw: bug fix in setting current mission item by @YalamareddyChaitanya in #1976
- core/plugins: fix includes by @julianoes in #1982
- calibration: remove spurious cancel command by @julianoes in #1986
- offboard: two actuator control fixes by @julianoes in #1993
- Enable offboard plugin with Ardupilot Rover by @dvinc in #1995
- plugins/action: fix apm_takeoff by @41Mo in #1997
- Add overrides in impl_h template by @potaito in #2004
- mavsdk_server: fix linking by @julianoes in #2005
- info: wait up to 1.5s for information by @julianoes in #2006
- CI: update checkout action by @JonasVautherin in #2011
- Expose params through mavlink_passthrough by @JonasVautherin in #2010
- Rename _parent to _system_impl by @JonasVautherin in #2012
- CI: Remove deprecated ubuntu-18.04 by @JonasVautherin in #2017
- Build deb package for Ubuntu 22.04 by @JonasVautherin in #2018
- Change dl with CMAKE_DL_LIBS by @JonasVautherin in #2020
- Fix mavlink_passthrough operator<< by @JonasVautherin in #2014
- telemetry: fix set battery rate by @YalamareddyChaitanya in #2021
- Update mavlink by @JonasVautherin in #2024
- core: fix system tests subscription by @julianoes in #2025
- Easier discovery by @julianoes in #2026
- Add .pc file (pkg-config) to deb package by @JonasVautherin in #2032
- tune: fix stack overrun by @julianoes in #2036
- Update mavlink and use its new CMakeLists by @JonasVautherin in #2028
- Add camera client sample code for camera server example by @tbago in #2042
- Refactor MAVLinkParameters into client and server classes by @julianoes in #1772
- core: improve subscription race by @julianoes in #2044
- Minor refactoring in ardupilot flight modes by @JonasVautherin in #2052
- added set_position_velocity_acceleration_ned offboard function by @alireza787b in #2057
- Generate code from protos by @JonasVautherin in #2061
- ci: try to fix fetching tags on macOS by @JonasVautherin in #2055
- CI: disable integration tests by @julianoes in #2062
- Camera definition: accept bool type in xml by @julianoes in #2048
- Update gtest by @JonasVautherin in #2054
- corrected mission item seq check for ardupilot by @ykhedar in #2064
- The bool parameter now automatically creates on/off options. Reopen. by @tlapik123 in #2067
- Tools: change the absolute path for generate_from_protos.sh by @tbago in #2071
- examples: add disconnection example by @julianoes in #2078
- core: remove always connected flag by @julianoes in #2077
- core: add way to remove a connection by @julianoes in #2079
- core: don't create a null system if not required by @julianoes in #2081
- Simplify linking, update dependencies by @julianoes in #2069
- TCP: Allow connecting by hostname by @ThomasDebrunner in #2053
- build: Install MAVLink headers within MAVSDK by @julianoes in #2084
- Build with gcc13 without errors by @tlapik123 in #2087
- log_files: remove hard-coded timeout values by @julianoes in #2092
- core: do not ping ardupilot by @holden-zenith in #2099
- Added new code for MAV_CMD_DO_SET_SERVO ArduPilot by @trolledbypro in #2113
- Fix battery voltage, included extended voltages by @julianoes in #2114
- Mission module: Updated camera action commands (param4) to be compliant with mavlink standard by @trolledbypro in #2118
- Link CMAKE_DL_LIBS when necessary by @JonasVautherin in #2104
- core: send heartbeats to UDP remote by @julianoes in #2097
- telemetry: Be compatible for battery_status by @julianoes in #2123
- Action plugin 'set_actuator_async' switch statement index changed to zero-based by @elbarto1980 in #2122
- Fix: Ardupilot needs to be in offboard/guided mode for goto_location() by @JonasVautherin in #2136
- telemetry: do not interrupt calibration checks too early by @JonasVautherin in #2140
- camera: fix conflict between subscribe_status and subscribe_information by @JonasVautherin in #2141
- docker/CI: remove Fedora images by @julianoes in #2148
- Fix storage type translation (STORAGE_TYPE_OTHER) by @JonasVautherin in #2151
- offboard: fix typo, update proto by @julianoes in #2154
- Preserve symlinks in zip file by @tthbalazs in #2157
- Threading fixes, MAVLink sequence number cleanup by @julianoes in #2155
- Mavsdk server default to autopilot by @JonasVautherin in #2164
- Request mode change for action MAV_CMD_DO_REPOSITION by @Jaeyoung-Lim in #2170
- Split Ftp plugin into Ftp and FtpServer by @julianoes in #2060
- Split mission transfer into client and server by @julianoes in #2160
- gimbal device test fixes by @julianoes in #2171
- core: fix burst implementation by @julianoes in #2174
- core: fix mission transfer by @julianoes in #2175
- CI: downgrade to Python 3.11 for macOS by @julianoes in #2179
- mavsdk_server: fix dl-lib linking by @JonasVautherin in #2181
- Include header in connection.h to avoid compiler erros with msvc2019 16.4 by @chehrlic in #2185
- Use DEBUG_POSTFIX cmake property to distinguish between debug and release dll by @chehrlic in #2186
- Update to MavlinkPassthrough unsubscribe_message by @c-devine in #2189
- core: fix component ID check by @julianoes in #2193
- core: fix incoming messages by sysid by @julianoes in #2192
- Add option to build without cURL by @julianoes in #1955
- camera: remove cached camera definition files by @julianoes in #2195
- tools: remove unused script by @julianoes in #2196
- tools: Update iOS toolchain by @julianoes in #2184
- Consolidate components by @julianoes in #2169
- Customizing distance sensor to add orientation for multiple sensor support by @prokas-nikos in #2093
- Require configuration for Mavsdk ctor by @julianoes in #2197
- More camera server functionality by @tbago in #2088
- Update readme and license by @julianoes in #2198
New Contributors
- @chep made their first contribution in #1812
- @CodeTriangle made their first contribution in #1820
- @junwoo091400 made their first contribution in #1770
- @rligocki made their first contribution in #1628
- @bahadirbuber made their first contribution in #1897
- @YalamareddyChaitanya made their first contribution in #1918
- @Andreea-L made their first contribution in #1923
- @antonio-sc66 made their first contribution in #1938
- @weirdgyn made their first contribution in #1963
- @dvinc made their first contribution in #1995
- @41Mo made their first contribution in #1997
- @tbago made their first contribution in #2042
- @alireza787b made their first contribution in #2057
- @tlapik123 made their first contribution in #2067
- @holden-zenith made their first contribution in #2099
- @trolledbypro made their first contribution in #2113
- @tthbalazs made their first contribution in #2157
- @chehrlic made their first contribution in #2185
- @c-devine made their first contribution in #2189
- @prokas-nikos made their first contribution in #2093
Full Changelog: v1.4.0...v2.0.0