- ROS expects quaternions to be normalised and the default message constructor does not enforce this.
- Fix normalisation for pose stamped.
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Add ping test and attempt reconnect if connection dropped.
- Retry ping test max_attempts before exiting.
- Move `uxr_init_session` from transport init to session init for reconnect
- Tidy handling of transport.comm
- Fix codestyle
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
AP_DDS: use PONG_IN_SESSION_STATUS in status check
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
AP_DDS: add local variables to clarify arguments to uxr_ping_agent_session
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
* Implement frame ID checking and test it
* Implement the visual odom function that does narrowing to floats
* Normalize quaternions from ROS
* Supply 0 error to EKF
* Handle external odomo only if HAL_VISUALODOM_ENABLED is defined
* Implement odom timestamping and improve docs
* Add unit tests
* Add a CONFIG file for DDS
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
* DDS is still disabled by default in all builds for the library level compile flag
* This parameter was blocking running ROS 2 automated testing in CI
* This can be changed once ENABLE_DDS compiler flag is enabled in SITL or for the 4.5 release
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
* This is the first step for GSOC Cartographer external odometry input
* Moved subscriber data members to class member variables
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
* Remove unused void* functions
* Switch subscriber handling based on ID
* Use enums instead of relying on manual alignment of indices in code
* Pass topic by reference using local stack
* Relates to #23964
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
* Register subscriber and deserialize sensor_msgs/Joy
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Co-authored-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
* Removes the hard coded timing, now it's driven by the GPS update times
* Changed the function signature to return true if the data topic has been changed
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
* Edit BatteryState.idl
* Add BatteryState to AP_DDS_Topic_table.h
* Add BatteryState to the DDS Client
* Add voltage
* Add temperature
* Add current
* Add charge
* Add capacity with NAN value
* Add design_capacity
* Add percentage
* Add power_supply_status
* Add power_supply_health
* Add power_supply_technology with 0 value
* Add present
* Cell_voltage and Serial_number need to be implemented in the future
* Did not add cell_temperature as AP_BattMonitor doesn't support it
* Did not add location as this is a generic implementation
* Parameterize battery instance number
* Remove ALL local changes in IDL (it mirrors upstream)
* Convert to pathlib for more robust manipulation
* Added EOF newlines for all the other missing IDL files
Co-authored-by: Arsh Pratap <arshpratapofficial@gmail.com>
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
* Implement NavSatFix message
* Support covariance
* Set frame ID to WGS-84
* Closes#23284
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
* Use clang to verify no unused files
* Add a topic table to prepare for code generating interfaces
* Generated IDL's to to a generated directory in build
* Use black to format python files
* Populate a ROS time maessage with Linux epoch time for ROS time
* Add workarounds for PoseStamped and TwistStamped with manual mods to IDL
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Co-authored-by: Arsh Pratap <arshpratapofficial@gmail.com>
Co-authored-by: Andrew Tridgell <andrew@tridgell.net>
Co-authored-by: Russ Webber <russ@rw.id.au>
Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>