Commit Graph

92 Commits

Author SHA1 Message Date
Rhys Mainwaring a75b8a9269 AP_DDS: add params for ping timeout and max retries
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-09-24 22:49:49 +10:00
Ryan Friedman aecb3268c7 AP_DDS: Correct compilation of tests without external odom
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-09-19 11:45:15 +10:00
Ryan Friedman dcfbf0ab69 AP_DDS: Add defines for experimental topics such as IMU
* 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>
2024-09-17 10:40:59 +10:00
Peter Barker c05441b959 AP_DDS: remove instance check for DDS Client
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.
2024-09-06 08:52:20 +10:00
Peter Barker 99dc2d1b39 AP_DDS: remove use of AP_AHRS from most headers
don't need to know the details, just that it is a class
2024-09-03 10:35:54 +10:00
Ryan Friedman 02d01ce392 AP_DDS: Remove duplicate instructions
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-09-02 12:24:31 +10:00
Rhys Mainwaring 5919ef69cb AP_DDS: add param DDS_DOMAIN_ID
- Require reboot.
- Set DDS_DOMAIN_ID range: 0 to 232..

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-07-20 19:13:53 +10:00
Andrew Tridgell 4d5095cea1 AP_DDS: fixed cell voltages
the std:copy was copying from uint16_t to float
2024-07-11 07:25:33 +10:00
Andrew Tridgell d5a90af9ba AP_DDS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
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