Commit Graph

83 Commits

Author SHA1 Message Date
Ryan Friedman 513938b0ff AP_DDS: Use common quaternion initialization function
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-05-30 16:57:28 +10:00
Rhys Mainwaring 88926a38cf AP_DDS: make all subscriber QoS best effort reliability
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-05-29 17:47:52 +10:00
Rhys Mainwaring 840f4b142d AP_DDS: fix type string for navsat msg
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-05-29 17:47:52 +10:00
Rhys Mainwaring c71ef23657 AP_DDS: create entities by binary
- 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>
2024-05-29 17:47:52 +10:00
Rhys Mainwaring 33d51d52ad AP_DDS: ensure zero rotation quaternions are normalised
- 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>
2024-05-26 09:46:48 +10:00
Ryan Friedman bd518dc140 AP_DDS: Fix incorrect port param name
* We want to support TCP and UDP in the future, so make sure we call it
  UDP here

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-24 11:27:22 +11:00
Rhys Mainwaring c173b3f186 AP_DDS: add missing config include in client and type_conversions
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-03-13 17:06:03 +11:00
Rhys Mainwaring 7c50b34ad2 AP_DDS: update topics in README
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-03-13 17:05:15 +11:00
Rhys Mainwaring 88a4d6848a AP_DDS: publish gps global origin
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-03-13 17:05:15 +11:00
Rhys Mainwaring 5dc9366cea AP_DDS: add GeoPointStamped.idl
- Required for publishing the global position origin.

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-03-13 17:05:15 +11:00
Rhys Mainwaring dac291c762 AP_DDS: use msg_prefix in GCS_SEND_TEXT
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-03-13 10:32:31 +11:00
Rhys Mainwaring 84e4a94ae7 AP_DDS: use microxrcedds_gen default-container-prealloc-size
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-03-13 10:32:31 +11:00
Rhys Mainwaring 3cb81b2e81 AP_DDS: remove unused TFMessage variable
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-03-13 10:32:31 +11:00
astik 24de88f85c AP_DDS: Add IMU publisher
* Using NED frame
2024-03-03 07:04:59 +11:00
Peter Barker c0a57cb447 AP_DDS: add missing include in externalcontrol 2024-02-29 12:12:00 +11:00
Randy Mackay 6c5425cd68 AP_DDS: send quality of zero to AP_VisualOdom 2024-02-28 18:52:37 +11:00
Ryan Friedman da976300d1 AP_DDS: add REP-147 Global Position Control
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-20 02:37:01 +00:00
Thomas Watson f0a92889fa AP_DDS: remove references to legacy UART order 2023-12-19 06:53:15 +11:00
Ryan Friedman 14aeb831fb AP_DDS: Add instructions for running HW test
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-11-22 21:44:35 -08:00
Rhys Mainwaring 0d735ffb01 AP_DDS: increase the timeout when creating participants and entities
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-11-21 13:20:23 +11:00
Ryan Friedman 2d465a5b20 AP_DDS: Fix typos and out of date info
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-11-20 08:40:06 +09:00
Tom Pittenger d189730b9f AP_DDS: fix defines to make astyle happy 2023-11-15 12:43:41 -08:00
Tom Pittenger 6cd24bb87b AP_DDS: Add user-selectable UDP IP 2023-11-15 12:43:41 -08:00
Tom Pittenger 4c70670445 AP_DDS: use AP_NETWORKING_BACKEND_ANY 2023-11-15 12:43:41 -08:00
Rhys Mainwaring 125c8fa1fa AP_DDS: support automatic reconnect to micro-ROS agent
- 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>
2023-11-10 17:13:36 +11:00
Rhys Mainwaring 33f122146e AP_DDS: revert change that removed namespace for TF subscriber topic
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-10-28 10:31:46 +11:00
Rhys Mainwaring d82f3e9591 AP_DDS: use TopicIndex enum to index topics table
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-10-25 10:04:14 +11:00
muramura dc95121b15 AP_DDS: Aggregate message 2023-10-25 09:49:49 +11:00
Rhys Mainwaring fddea2558c AP_DDS: standardise GCS_SEND_TEXT message prefix
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-10-20 07:06:13 +11:00
Rhys Mainwaring fbdd4d65c5 AP_DDS: use generated types for service serialisation
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-10-19 09:33:59 +11:00
Mykhailo Kuznietsov 9030c5b0de AP_DDS: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Rhys Mainwaring 3bf8b4f1bf AP_DDS: use ROS convention for node name
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-10-11 18:00:24 +11:00
arshPratap 8c2627ca40 AP_DDS: Added Mode Switch Service 2023-09-11 09:50:14 +10:00
Rhys Mainwaring eeb5227228 AP_DDS: update dds profile, eliminate need for integration service
- Use type and topic name mapping rules in the arm_motors service profile.
- Remove the integration service configuration file.
- Update the service section in the README and document the topic and service mapping rules.

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-09-07 08:46:05 +10:00
Rhys Mainwaring 7897f7bfe7 AP_DDS: add IDL for ArmMotors and ModeSwitch services
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-09-07 08:45:32 +10:00
pedro-fuoco 62b15a8af0 AP_DDS: Accept body-frame velocity inputs 2023-09-06 20:31:19 +10:00
pedro-fuoco 15702c46b0 AP_DDS: subscribe to /tf instead of /ap/tf
README update cointains the new topic name
2023-09-05 12:30:40 +10:00
Ryan Friedman d31896a545 AP_DDS: Stub out external odom
* 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>
2023-08-24 07:46:06 +10:00
Andrew Tridgell 847c7980c7 AP_DDS: use AP_ExternalControl for velocity control
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Co-authored-by: Andrew Tridgell <tridge60@gmail.com>
2023-08-22 18:21:23 +10:00
Ryan Friedman e14afa6f2b AP_DDS: Add AP_DDS_config.h for feature defines
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-18 08:35:24 +10:00
Ryan Friedman 2c5f90adca AP_DDS: Enable the DDS parameter by default
* 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>
2023-08-15 18:32:39 +10:00
arshPratap 47efaf9c62 AP_DDS: Added ROS 2 service support 2023-08-11 13:35:49 +10:00
Ryan Friedman be5d846af0 AP_DDS: Switch topic to cmd_vel
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-08 15:35:43 +10:00
Ryan Friedman 9b0f485fee AP_DDS: Add velocity control DDS subscriber
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-08 15:35:43 +10:00
Ryan Friedman 01c5f44556 AP_DDS: Add dynamic TF subscriber support
* 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>
2023-07-31 13:28:10 +10:00
Rhys Mainwaring 3bb6fb460e AP_DDS: fix reliable stream buffer size
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-07-19 16:59:38 +09:00
Ryan Friedman f3a6c71c6b AP_DDS: Update docs for supported topics
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-06-16 22:39:26 +10:00
Ryan Friedman 2b906bc714 AP_DDS: Fix typo with pts serial port when in UDP
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-06-08 20:20:21 +10:00
Ryan Friedman da2beb1ec1 AP_DDS: Improve subscriber safety
* 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>
2023-06-08 09:47:50 +10:00
Ryan Friedman 8cf855970d AP_DDS: Fix unitialized memory
* Found under valgrind

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-06-06 10:42:02 +10:00