ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    voxl-microdds-agent not publishing all topics

    ROS
    3
    7
    556
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      K.Stute
      last edited by

      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!

      1 Reply Last reply Reply Quote 0
      • Zachary Lowell 0Z
        Zachary Lowell 0 ModalAI Team
        last edited by

        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

        K 1 Reply Last reply Reply Quote 0
        • K
          K.Stute @Zachary Lowell 0
          last edited by

          @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?

          1 Reply Last reply Reply Quote 0
          • Zachary Lowell 0Z
            Zachary Lowell 0 ModalAI Team
            last edited by

            Nope! Appreciate the info @K-Stute will be back with a solution soon I hope!

            1 Reply Last reply Reply Quote 0
            • Zachary Lowell 0Z
              Zachary Lowell 0 ModalAI Team
              last edited by Zachary Lowell 0

              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 -->

              1. Enable/start voxl-px4
              2. sudo apt-get install voxl-ros2-foxy
              3. sudo apt-get install voxl-microdds-agent
              4. sudo apt-get install voxl-mpa-to-ros2
              5. Ensure that microdds-agent service has been started: systemctl start voxl-microdds-agent
              6. voxl-configure-mpa-to-ros2
              7. source /opt/ros/foxy/mpa_to_ros2/install/setup.bash
              8. ros2 topic echo /fmu/out/vehicle_status

              I had to wait about a second for vehicle_status to being publishing as well.

              K 1 Reply Last reply Reply Quote 0
              • K
                K.Stute @Zachary Lowell 0
                last edited by K.Stute

                @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 with

                docker 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!

                Darshit DesaiD 1 Reply Last reply Reply Quote 0
                • Darshit DesaiD
                  Darshit Desai @K.Stute
                  last edited by

                  @Zachary-Lowell-0 @Moderator A really important question here is what if there are two drones publishing the same name FMU topics and you haven't set the domain id different for those drones for data sharing through your custom interfaces. PX4 ROS2 docs provide a way to change the namespace of the FMU topics to be published but MODAL AI docs mention no such thing? Is there a way to do that? As most of the starling systems are being used as a swarm platform this thing is really critical

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post
                  Powered by NodeBB | Contributors