Commit Graph

58 Commits

Author SHA1 Message Date
muramura
10b2f17594 AP_DDS: Change the comparison of float value zero to IS_XXXX 2024-11-08 10:49:19 +11:00
Ryan Friedman
bd067f9615 AP_DDS: Set GPS instance ID in the GPS frame ID
Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com>
2024-11-01 11:11:41 +09:00
Ryan Friedman
380e9aa36b AP_DDS: Wrap services in defines
Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com>
2024-10-27 11:59:08 +11:00
Ryan Friedman
72f0ecc18f AP_DDS: Support compile-time configurable rates for each publisher
Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com>
2024-10-24 20:58:24 +11:00
Tiziano Fiorenzani
969979cd17 AP_DDS: battery topic to report all the available batteries 2024-10-11 09:53:51 +11:00
Tiziano Fiorenzani
57157d470f AP_DDS: Airspeed topic 2024-10-09 10:00:32 +11:00
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
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
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
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
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
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
astik
24de88f85c AP_DDS: Add IMU publisher
* Using NED frame
2024-03-03 07:04:59 +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
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
Tom Pittenger
6cd24bb87b AP_DDS: Add user-selectable UDP IP 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
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
arshPratap
8c2627ca40 AP_DDS: Added Mode Switch Service 2023-09-11 09:50:14 +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
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
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
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
arshPratap
5168f39463 AP_DDS: Add Subscriber support with Joy
* 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>
2023-06-01 11:37:59 +10:00
Rhys Mainwaring
56ed76f479 AP_DDS: add publisher for rosgraph_msgs/msg/Clock
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2023-05-14 06:20:12 +10:00
pedro-fuoco
c044ba67cc AP_DDS: Support single precision hw 2023-05-09 11:06:59 +10:00
pedro-fuoco
57c2753bdd AP_DDS: Add GeoPose support
* Add GeoPoint.idl
* Add GeoPose.idl
* Add GeoPoseStamped.idl
* Update geopose topic name to follow #23603
* Add GeoPose topic support

Co-authored-by: Pedro Fuoco <pedrofuoco6@gmail.com>
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-05 12:02:31 +10:00
arshPratap
fbc7a6dd9b AP_DDS: support UDP transport
and switch serial transport to use custom transport
2023-05-03 15:22:42 +10:00
pedro-fuoco
2298048079 AP_DDS: Add local velocity publisher 2023-04-28 07:36:00 +10:00
pedro-fuoco
171e09d28c AP_DDS: Add local pose publisher 2023-04-25 14:18:54 +10:00
Ryan Friedman
bb6c872138 AP_DDS: Publish NavSatFix as soon as its available
* 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>
2023-04-22 11:04:49 +10:00
pedro-fuoco
e1b06a1b99 AP_DDS: Integrate AP_BattMonitor to work with AP_DDS
* 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
2023-04-15 09:40:33 +10:00
Ryan Friedman
9e9d487442 AP_DDS: Consume covariance implementation in AP_DDS
* Use float precision as long as possible

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