* Experimental topics, such as IMU, should have an easy way to be
disabled at compile time
* This demonstrates a pattern to add in new topics at compile time
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
this is probably a flow of control problem.
But the code block below this resets some state variables before returning, and will also return false in the same case this removed block does.
Resetting that state might be very important to the caller.
- Add topic name and type to topic table.
- Use binary creation functions for participants and topics.
- Add constant for domain ID.
- Create publishers and datawriters by binary
- Create subscribers, datareaders and services by binary
- Add extra fields to the services table.
- Remove dds_xrce_profile.xml
- Document additional service table fields
- Add QoS struct to topic and service tables
- Replace profile labels with enums.
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- 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>