voxl-microdds-agent topic list
-
I have a question about the custom version of the microdds client running within voxl-px4. When I run px4's Micro-XRCE agent to connect to a client running in mainline px4, I get a long list of topics & telemetry info:
/fmu/in/actuator_servos /fmu/in/arming_check_reply /fmu/in/aux_global_position /fmu/in/config_control_setpoints /fmu/in/config_overrides_request /fmu/in/distance_sensor /fmu/in/goto_setpoint /fmu/in/manual_control_input /fmu/in/message_format_request /fmu/in/mode_completed /fmu/in/obstacle_distance /fmu/in/offboard_control_mode /fmu/in/onboard_computer_status /fmu/in/register_ext_component_request /fmu/in/sensor_optical_flow /fmu/in/telemetry_status /fmu/in/trajectory_setpoint /fmu/in/unregister_ext_component /fmu/in/vehicle_attitude_setpoint /fmu/in/vehicle_command /fmu/in/vehicle_command_mode_executor /fmu/in/vehicle_mocap_odometry /fmu/in/vehicle_rates_setpoint /fmu/in/vehicle_thrust_setpoint /fmu/in/vehicle_torque_setpoint /fmu/in/vehicle_visual_odometry /fmu/out/battery_status /fmu/out/estimator_status_flags /fmu/out/failsafe_flags /fmu/out/manual_control_setpoint /fmu/out/position_setpoint_triplet /fmu/out/sensor_combined /fmu/out/timesync_status /fmu/out/vehicle_attitude /fmu/out/vehicle_control_mode /fmu/out/vehicle_global_position /fmu/out/vehicle_gps_position /fmu/out/vehicle_land_detected /fmu/out/vehicle_local_position /fmu/out/vehicle_odometry /fmu/out/vehicle_status_v1
However, a lot of those topics seem to be omitted when you run voxl-microdds-agent on an actual VOXL2. I know you can configure which topics are shown by editing a json? file in the voxl-px4 package & recompiling it, but I remember reading somewhere on this forum that the custom branched px4 firmware version may not support/provide some of the data. Is this true?
I am working on a project that will involve a VOXL 2 and may need to do direct actuator control (a topic that is made available by the client in mainline PX4 but not modalai's custom branch), and am debating between using MAVROS and the DDS bridge. I may need access to other topics that are also not provided but I'm not sure yet. There seem to be a lot of advantages to going with the latter, but if it's going to be a major pain / impossible to modify in the way I need, I would like to know.
Thank you!
-
Hi @jonathankampia , yes you can edit
src/modules/microdds_client/dds_topics.yaml
in PX4 and rebuilt it to add or remove topics.I remember reading somewhere on this forum that the custom branched px4 firmware version may not support/provide some of the data
I'm don't know about that, it is easier to know which data from upstream PX4 you want and then check to see if it is available (after adjusting the bridge)
I am working on a project that will involve a VOXL 2 and may need to do direct actuator control
I guess you want
/fmu/in/actuator_motors
then. However, to use complete direct actuator control you will need to bring in some extra changes as direct actuator control is not supported in PX4 voxl version.This is still better than going through the mavlink and mavros route because for direct actuation you probably want the lowest latency.
Actually, do you need to control a motor in direct mode or you need to control an auxiliary output (i.e. payload)? This makes a huge difference w.r.t. the topic and the workflow you need to use.
-
@Beniamino-Pozzan I am still not 100% sure, it's more likely I will be commanding attitude / body rate which are already available. I just wanted to get a clear overview of what the information dds client / agent can give me access to in the modalai version of px4.
How do you know what types of control / input & output data are not directly supported in px4 voxl version, as you said?
Thanks for the help!
-
it's more likely I will be commanding attitude / body rate which are already available
Indeed. I highly suggest you to use those two unless your application stricly requires direct actuation control.
I just wanted to get a clear overview of what the information dds client / agent can give me access to in the modalai version of px4.
By editing
src/modules/microdds_client/dds_topics.yaml
you can access any PX4 uorb message so the limit here is just about what has been implemented on PX4 that is or is not available in the voxl version.How do you know what types of control / input & output data are not directly supported in px4 voxl version, as you said?
the type of offboard control you can achieve is exposed by OffboardControlMode.msg. As you can see in
main
PX4 you havebool position bool velocity bool acceleration bool attitude bool body_rate bool thrust_and_torque bool direct_actuator
I've added
thrust_and_torque
anddirect_actuator
one year ago (more or less). However, latest voxl is still using the old version: this old version let's you control via thrust and torque setpoints but does not let you control the single motor individually.