Commit Graph

94 Commits

Author SHA1 Message Date
Ryan Friedman
88c06e07d7 AP_DDS: Wrap all topics in ifdefs
* Give ability to enable/disable any topic in DDS through compile
  options

Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com>
2024-10-08 10:18:38 +11:00
Ryan Friedman
1bdc635ba8 AP_DDS: Implement joystick support
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
Co-Authored-by: Tiziano Fiorenzani
2024-10-01 10:46:35 +10:00
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