voxl-microdds-agent not publishing all topics
-
Hi,
I have the weird problem where the running agent is not publishing on all topics specified in the clients dds_topics.yaml. E.g. on the topic /fmu/out/senor_baro and /fmu/out/vehicle_odometry everything works fine but nothing is published on /fmu/out/vehicle_status and /fmu/out/vehicle_gps_position even though everything is specified in the .yaml with the corresponding px4_msgs. The vehicle status msg is published by uorb (at least "listener vehicle_status" in the px4 shell gives me a msg) and the microdds agent created a publisher, datawriter and topic. I've rebuild voxl-px4 and the microdds agent to no avail. I honestly dont know what to do next so any advice would be great!
-
Hi @K-Stute - I will try to recreate on my end as I have not come across this issue before. Just to confirm - what SDK are you on? and also what repository were you looking at for the dds_topics.yaml?
Zach
-
@Zachary-Lowell-0 I'm using a newly flashed sdk 1.2.
voxl2:~$ voxl-version -------------------------------------------------------------------------------- system-image: 1.7.6-M0054-14.1a-perf kernel: #1 SMP PREEMPT Wed Mar 20 19:48:52 UTC 2024 4.19.125 -------------------------------------------------------------------------------- hw platform: M0054 mach.var: 1.0 -------------------------------------------------------------------------------- voxl-suite: 1.2.0 --------------------------------------------------------------------------------
And I'm using the repo you've send me in another post (https://github.com/modalai/px4-firmware/blob/voxl-dev/src/modules/microdds_client/dds_topics.yaml) and with that i followed your instructions from your github(https://gitlab.com/voxl-public/voxl-sdk/services/voxl-px4).
For ros i use ros2 humble in a docker container running the arm64v8/ros:humble-ros-base image with the px4_msgs from this repo https://github.com/PX4/px4_msgs.git.I'm investigating a possible problem with the px4_msgs version in your px4-firmware fork and the repo i mentioned above. Maybe this rings a bell.
Is there anything else i can provide you with?
-
Nope! Appreciate the info @K-Stute will be back with a solution soon I hope!
-
Ok @K-Stute I am unable to recreate your issue:
voxl2:~$ ros2 topic echo /fmu/out/vehicle_status timestamp: 1714152702737855 armed_time: 0 takeoff_time: 0 arming_state: 1 latest_arming_reason: 0 latest_disarming_reason: 0 nav_state_timestamp: 15311461 nav_state_user_intention: 0 nav_state: 0 failure_detector_status: 0 hil_state: 0 vehicle_type: 1 failsafe: false failsafe_and_user_took_over: false gcs_connection_lost: true gcs_connection_lost_counter: 0 high_latency_data_link_lost: false is_vtol: false is_vtol_tailsitter: false in_transition_mode: false in_transition_to_fw: false system_type: 2 system_id: 1 component_id: 1 safety_button_available: true safety_off: true power_input_valid: true usb_connected: false open_drone_id_system_present: false open_drone_id_system_healthy: false parachute_system_present: false parachute_system_healthy: false avoidance_system_required: false avoidance_system_valid: true rc_calibration_in_progress: false calibration_enabled: false pre_flight_checks_pass: false --- timestamp: 1714152702778985 armed_time: 0 takeoff_time: 0 arming_state: 1 latest_arming_reason: 0 latest_disarming_reason: 0 nav_state_timestamp: 15311461 nav_state_user_intention: 0 nav_state: 0 failure_detector_status: 0 hil_state: 0 vehicle_type: 1 failsafe: false failsafe_and_user_took_over: false gcs_connection_lost: true gcs_connection_lost_counter: 0 high_latency_data_link_lost: false is_vtol: false is_vtol_tailsitter: false in_transition_mode: false in_transition_to_fw: false system_type: 2 system_id: 1 component_id: 1 safety_button_available: true safety_off: true power_input_valid: true usb_connected: false open_drone_id_system_present: false open_drone_id_system_healthy: false parachute_system_present: false parachute_system_healthy: false avoidance_system_required: false avoidance_system_valid: true rc_calibration_in_progress: false calibration_enabled: false pre_flight_checks_pass: false ---
The steps I did to do this on a 1.2.0 Voxl-suite -->
Enable/start voxl-px4
sudo apt-get install voxl-ros2-foxy
sudo apt-get install voxl-microdds-agent
sudo apt-get install voxl-mpa-to-ros2
Ensure that microdds-agent service has been started: systemctl start voxl-microdds-agent
voxl-configure-mpa-to-ros2
source /opt/ros/foxy/mpa_to_ros2/install/setup.bash
ros2 topic echo /fmu/out/vehicle_status
I had to wait about a second for vehicle_status to being publishing as well.
-
@Zachary-Lowell-0 Okay maybe this seems to work with foxy but as i mentioned I'm using humble and it seems like there is a mismatch between the version of the px4_msgs. I can provide a docker image to recreate the problem (at least with my voxl-px4 build).
To recreate use this docker image:
run withdocker run -it --network=host learningsql/voxl-px4-hector:tagname
Do:
cd ros2_ws colcon build source install/setup.bash ros2 topic echo /fmu/out/vehicle_status
There should appear no msgs (at least on my system)
Fix this with:
rm -rf src/px4_msgs/msg unzip /px4_firmware_msgs/msg_voxl_px4.zip colcon build source install/setup.bash ros2 topic echo /fmu/out/vehicle_status
Now there should be msgs on the screen.
Idk if this is relevant for your px4_msgs fork but at least i found a solution and maybe this thread can help other people.
Thanks for you help!