-
Notifications
You must be signed in to change notification settings - Fork 17.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AP_DDS: replace ref interface with binary interface in uxr create entity methods #27145
AP_DDS: replace ref interface with binary interface in uxr create entity methods #27145
Conversation
aabf9bc
to
83d8073
Compare
- 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>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
83d8073
to
3b09948
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.type_name = "tf2_msgs::msg::dds_::TFMessage_", | ||
.qos = { | ||
.durability = UXR_DURABILITY_VOLATILE, | ||
.reliability = UXR_RELIABILITY_RELIABLE, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you sure we should use reliable for our high rate TF?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are the subscribers. The XML did not specify a reliability for these topics
- /ap/joy
- /ap/tf
- /ap/cmd_vel
- /ap/cmd_gps_pose
If the default QoS (struct) initialised each of it's fields to 0 we get:
typedef struct uxrQoS_t
{
uxrQoSDurability durability = UXR_DURABILITY_TRANSIENT_LOCAL;
uxrQoSReliability reliability = UXR_RELIABILITY_RELIABLE;
uxrQoSHistory history = UXR_HISTORY_KEEP_LAST;
uint16_t depth = 0;
} uxrQoS_t;
See create_entities_bin.h
. Now I'm not certain that the XML is doing the same. Perhaps we should set reliability to BEST_EFFORT for all subscribers?
Switch to BEST_EFFORT in bf1962d
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For these I think best effort to save resources.
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Update the launch command which has changed in `master`. The `dds-xrce-profile.xml` is not required after version `4.5`. See: ArduPilot/ardupilot#27145
Replace the
uxr_buffer_create_*_ref
methods withuxr_buffer_create_*_bin
. This eliminates the need for adds_xrce_profile.xml
on the agent side and simplifies future work to#ifdef
messages for inclusion as everything is now self contained theAP_DDS
library.Testing
ref:=...
argument.Flash
See Also
--ref
argument to themicro_ros_agent
in launch files is also required: Remove micro_ros_agent launch argument referencing dds_xrce_profile.xml ardupilot_gz#55