One ROS topic disapear !?

Hello , since 2 day , i lost one topic : /fmu/out/vehicle_global_position and only this one !

I have tried to put stable version, master version , i have rebuild px4 with differents yalm file (the original one, another with more topics) But the topic /fmu/out/vehicule_global_position don’t want to reapear !! Really stange !!

Here is my ros2 topic list :

zit@rpi:~$ ros2 topic list
/fmu/in/actuator_outputs
/fmu/in/actuator_servos
/fmu/in/actuator_servos_trim
/fmu/in/led_control
/fmu/in/obstacle_distance
/fmu/in/offboard_control_mode
/fmu/in/onboard_computer_status
/fmu/in/sensor_optical_flow
/fmu/in/telemetry_status
/fmu/in/trajectory_setpoint
/fmu/in/vehicle_attitude_setpoint
/fmu/in/vehicle_command
/fmu/in/vehicle_global_position
/fmu/in/vehicle_local_position
/fmu/in/vehicle_mocap_odometry
/fmu/in/vehicle_rates_setpoint
/fmu/in/vehicle_thrust_setpoint
/fmu/in/vehicle_torque_setpoint
/fmu/in/vehicle_trajectory_bezier
/fmu/in/vehicle_trajectory_waypoint
/fmu/in/vehicle_visual_odometry
/fmu/out/actuator_outputs
/fmu/out/actuator_servos
/fmu/out/actuator_servos_trim
/fmu/out/failsafe_flags
/fmu/out/failure_detector_status
/fmu/out/manual_control_setpoint
/fmu/out/sensor_accel
/fmu/out/sensor_baro
/fmu/out/sensor_combined
/fmu/out/sensor_gps
/fmu/out/sensor_gyro
/fmu/out/sensor_mag
/fmu/out/timesync_status
/fmu/out/vehicle_acceleration
/fmu/out/vehicle_air_data
/fmu/out/vehicle_angular_velocity
/fmu/out/vehicle_attitude
/fmu/out/vehicle_control_mode
/fmu/out/vehicle_gps_position
/fmu/out/vehicle_imu
/fmu/out/vehicle_land_detected
/fmu/out/vehicle_local_position
/fmu/out/vehicle_odometry
/fmu/out/vehicle_status
/fmu/out/vehicle_thrust_setpoint
/fmu/out/vehicle_torque_setpoint
/parameter_events
/rosout
zit@rpi:

Why just one topic disapear !!??
Is also absent when i put the original firmaware from qgroundcontrol.

It was présent last week and all was working perfectly ! And now impossible to have /fmu/out/vehicle/global_position come back !! It’s so stange !!

here is my dds_topic.yalm file :

#####
#
# This file maps all the topics that are to be used on the micro DDS client.
#
#####
publications:

 

  - topic: /fmu/out/collision_constraints
    type: px4_msgs::msg::CollisionConstraints
    
  - topic: /fmu/out/actuator_outputs
    type: px4_msgs::msg::ActuatorOutputs

  - topic: /fmu/out/actuator_servos
    type: px4_msgs::msg::ActuatorServos
   
  - topic: /fmu/out/actuator_servos_trim
    type: px4_msgs::msg::ActuatorServosTrim
    
  - topic: /fmu/out/airspeed
    type: px4_msgs::msg::Airspeed
    
  - topic: /fmu/out/cellular_status
    type: px4_msgs::msg::CellularStatus
      
  - topic: /fmu/out/collision_report
    type: px4_msgs::msg::CollisionReport
      
  - topic: /fmu/out/differential_pressure
    type: px4_msgs::msg::DifferentialPressure
    
  - topic: /fmu/out/distance_sensor
    type: px4_msgs::msg::DistanceSensor
    
  - topic: /fmu/out/failure_detector_status
    type: px4_msgs::msg::FailureDetectorStatus
    
  - topic: /fmu/out/follow_target
    type: px4_msgs::msg::FollowTarget

  - topic: /fmu/out/follow_target_estimator
    type: px4_msgs::msg::FollowTargetEstimator
    
  - topic: /fmu/out/follow_target_status
    type: px4_msgs::msg::FollowTargetStatus
    
  - topic: /fmu/out/position_controller_status
    type: px4_msgs::msg::PositionControllerStatus
    
  - topic: /fmu/out/position_controller_landing_status
    type: px4_msgs::msg::PositionControllerLandingStatus
    
  - topic: /fmu/out/position_setpoint
    type: px4_msgs::msg::PositionSetpoint
  
  - topic: /fmu/out/sensor_accel
    type: px4_msgs::msg::SensorAccel
    
  - topic: /fmu/out/sensor_baro
    type: px4_msgs::msg::SensorBaro
    
  - topic: /fmu/out/sensor_gps
    type: px4_msgs::msg::SensorGps
    
  - topic: /fmu/out/sensor_gyro
    type: px4_msgs::msg::SensorGyro

  - topic: /fmu/out/sensor_hygrometer
    type: px4_msgs::msg::SensorHygrometer
  
  - topic: /fmu/out/wind
    type: px4_msgs::msg::Wind  
    
  - topic: /fmu/out/sensor_mag
    type: px4_msgs::msg::SensorMag
    
  - topic: /fmu/out/sensor_optical_flow
    type: px4_msgs::msg::SensorOpticalFlow
    
  - topic: /fmu/out/tecs_status
    type: px4_msgs::msg::TecsStatus
    
  - topic: /fmu/out/yaw_estimator_status
    type: px4_msgs::msg::YawEstimatorStatus
    
  - topic: /fmu/out/landing_target_pose
    type: px4_msgs::msg::LandingTargetPose
    
  - topic: /fmu/out/launch_detection_status
    type: px4_msgs::msg::LaunchDetectionStatus
    
  - topic: /fmu/out/manual_control_setpoint
    type: px4_msgs::msg::ManualControlSetpoint
    
  - topic: /fmu/out/manual_control_switches
    type: px4_msgs::msg::ManualControlSwitches
    
  - topic: /fmu/out/obstacle_distance
    type: px4_msgs::msg::ObstacleDistance
    
  - topic: /fmu/out/onboard_computer_status
    type: px4_msgs::msg::OnboardComputerStatus
    
  - topic: /fmu/out/vehicle_air_data
    type: px4_msgs::msg::VehicleAirData
    
  - topic: /fmu/out/vehicle_acceleration
    type: px4_msgs::msg::VehicleAcceleration
  
  - topic: /fmu/out/vehicle_imu
    type: px4_msgs::msg::VehicleImu
    
  - topic: /fmu/out/vehicle_land_detected
    type: px4_msgs::msg::VehicleLandDetected
    
  - topic: /fmu/out/vehicle_optical_flow_vel
    type: px4_msgs::msg::VehicleOpticalFlow

  - topic: /fmu/out/vehicle_optical_flow
    type: px4_msgs::msg::VehicleOpticalFlowVel
 
  - topic: /fmu/out/vehicle_roi
    type: px4_msgs::msg::VehicleRoi
 
  - topic: /fmu/out/failsafe_flags
    type: px4_msgs::msg::FailsafeFlags

  - topic: /fmu/out/sensor_combined
    type: px4_msgs::msg::SensorCombined

  - topic: /fmu/out/timesync_status
    type: px4_msgs::msg::TimesyncStatus

  - topic: /fmu/out/vehicle_angular_velocity
    type: px4_msgs::msg::VehicleAngularVelocity

  - topic: /fmu/out/vehicle_attitude
    type: px4_msgs::msg::vehicleAttitude

  - topic: /fmu/out/vehicle_control_mode
    type: px4_msgs::msg::VehicleControlMode

  - topic: /fmu/out/vehicle_gps_position
    type: px4_msgs::msg::SensorGps

  - topic: /fmu/in/vehicle_global_position
    type: px4_msgs::msg::VehicleGlobalPosition

  - topic: /fmu/out/vehicle_local_position
    type: px4_msgs::msg::VehicleLocalPosition

  - topic: /fmu/out/vehicle_odometry
    type: px4_msgs::msg::VehicleOdometry

  - topic: /fmu/out/vehicle_status
    type: px4_msgs::msg::VehicleStatus

  - topic: /fmu/out/vehicle_trajectory_waypoint_desired
    type: px4_msgs::msg::VehicleTrajectoryWaypoint

 



subscriptions:

  - topic: /fmu/in/offboard_control_mode
    type: px4_msgs::msg::OffboardControlMode

  - topic: /fmu/in/onboard_computer_status
    type: px4_msgs::msg::OnboardComputerStatus

  - topic: /fmu/in/obstacle_distance
    type: px4_msgs::msg::ObstacleDistance

  - topic: /fmu/in/sensor_optical_flow
    type: px4_msgs::msg::SensorOpticalFlow

  - topic: /fmu/in/telemetry_status
    type: px4_msgs::msg::TelemetryStatus

  - topic: /fmu/in/trajectory_setpoint
    type: px4_msgs::msg::TrajectorySetpoint

  - topic: /fmu/in/vehicle_attitude_setpoint
    type: px4_msgs::msg::VehicleAttitudeSetpoint

  - topic: /fmu/in/vehicle_mocap_odometry
    type: px4_msgs::msg::VehicleOdometry

  - topic: /fmu/in/vehicle_rates_setpoint
    type: px4_msgs::msg::VehicleRatesSetpoint

  - topic: /fmu/in/vehicle_visual_odometry
    type: px4_msgs::msg::VehicleOdometry

  - topic: /fmu/in/vehicle_command
    type: px4_msgs::msg::VehicleCommand

  - topic: /fmu/in/vehicle_trajectory_bezier
    type: px4_msgs::msg::VehicleTrajectoryBezier

  - topic: /fmu/in/vehicle_trajectory_waypoint
    type: px4_msgs::msg::VehicleTrajectoryWaypoint

  - topic: /fmu/in/actuator_outputs
    type: px4_msgs::msg::ActuatorOutputs

  - topic: /fmu/in/actuator_servos
    type: px4_msgs::msg::ActuatorServos
   
  - topic: /fmu/in/actuator_servos_trim
    type: px4_msgs::msg::ActuatorServosTrim
    
  - topic: /fmu/in/vehicle_global_position
    type: px4_msgs::msg::VehicleGlobalPosition
  
  - topic: /fmu/in/vehicle_local_position
    type: px4_msgs::msg::VehicleLocalPosition
    
  - topic: /fmu/in/led_control
    type: px4_msgs::msg::LedControl
    
  - topic: /fmu/in/vehicle_thrust_setpoint
    type: px4_msgs::msg::VehicleThrustSetpoint
  
  - topic: /fmu/in/vehicle_torque_setpoint
    type: px4_msgs::msg::VehicleTorqueSetpoint
    
    
    
    


        
        

I not understand how is can be possible !! thanks for any help to understand this mystery !!

There is a typo, it should be /fmu/out/vehicle_global_position. As it it right now it is colliding with the subscriber.

Do you really need to publish and to subscribe to all these topics?

Hello Benja, thanks for reply !

Since yesterday the topic /fmu/out/vehicle_torque_setpoint disapear also !!

In my dds_topics.yalm file I have also /fmu/in/vehicle_local_position and /fmu/out/vehicle_local_position and I can see the 2 topics when i do ros2 topic list…

No, i think i don’t need all this topics, but i have to do a hitl simulator so ROS publish the command on the “in” topic and the simulator subscribe to the “out” command topic to calculate the new position off the drone depending off the command, and i was thinking the simulator send the new position off the drone to /fmu/in/vehicle_local_position and /fmu/in/vehicle_global_poition, then ros compute the new command and send to the simulator, ect…

Is not the good way to do this ?

Also the topic wind never appear , is it impossible px4 send the wind estimation to ros ?

Now the problem is when i put the stable firmware or if i build px4 with the original dds_topics.yalm file , the topics don’t come back ??!!
How this can be possible ?!

Thank for your help

Maybe I was not clear. Let me repeat. I’m considering this dds_topics.yaml that you shared:

There you have an entry under publications:

 - topic: /fmu/in/vehicle_global_position
    type: px4_msgs::msg::VehicleGlobalPosition

And then you have another under subscriptions

- topic: /fmu/in/vehicle_global_position
    type: px4_msgs::msg::VehicleGlobalPosition

This is wrong, the publisher should use out, not in. You cannot be surprised that you don’t see any /fmu/out/vehicle_global_position if you don’t have it in the yaml file…


Now, regarding your idea of HITL simulator, that is not the right approach: PX4 uses sensors and algorithms (EKF2) to compute values like vehicle local position and vehicle global position. You cannot inject other values and hope that everything work. The simulator should simulate and provide the raw sensor data so that PX4 thinks that those values come from the real sensors.
Please take a look at the specific HITL docs Hardware in the Loop Simulation (HITL) | PX4 User Guide (main)
and the general simulation doc page Simulation | PX4 User Guide (main)


Finally, why your topics are disappearing… my guess is that you are overloading the PX4 with too many publishers and subscribers. But again, this is just a guess.

Yes but the topic is no more present with the original firmware from qgroundcontrol also !
I have corrected the dds_topics.yalm

#####
#
# This file maps all the topics that are to be used on the micro DDS client.
#
#####
publications:

 

  - topic: /fmu/out/collision_constraints
    type: px4_msgs::msg::CollisionConstraints
    
  - topic: /fmu/out/actuator_outputs
    type: px4_msgs::msg::ActuatorOutputs

  - topic: /fmu/out/actuator_servos
    type: px4_msgs::msg::ActuatorServos
   
  - topic: /fmu/out/actuator_servos_trim
    type: px4_msgs::msg::ActuatorServosTrim
    
  - topic: /fmu/out/airspeed
    type: px4_msgs::msg::Airspeed

  - topic: /fmu/out/collision_report
    type: px4_msgs::msg::CollisionReport
      
  - topic: /fmu/out/differential_pressure
    type: px4_msgs::msg::DifferentialPressure
    
  - topic: /fmu/out/distance_sensor
    type: px4_msgs::msg::DistanceSensor
    
  - topic: /fmu/out/failure_detector_status
    type: px4_msgs::msg::FailureDetectorStatus
    
  - topic: /fmu/out/follow_target
    type: px4_msgs::msg::FollowTarget

  - topic: /fmu/out/follow_target_estimator
    type: px4_msgs::msg::FollowTargetEstimator
    
  - topic: /fmu/out/follow_target_status
    type: px4_msgs::msg::FollowTargetStatus
    
  - topic: /fmu/out/position_controller_status
    type: px4_msgs::msg::PositionControllerStatus
    
  - topic: /fmu/out/position_controller_landing_status
    type: px4_msgs::msg::PositionControllerLandingStatus
    
  - topic: /fmu/out/position_setpoint
    type: px4_msgs::msg::PositionSetpoint
  
  - topic: /fmu/out/sensor_accel
    type: px4_msgs::msg::SensorAccel
    
  - topic: /fmu/out/sensor_baro
    type: px4_msgs::msg::SensorBaro
    
  - topic: /fmu/out/sensor_gps
    type: px4_msgs::msg::SensorGps
    
  - topic: /fmu/out/sensor_gyro
    type: px4_msgs::msg::SensorGyro

  - topic: /fmu/out/sensor_hygrometer
    type: px4_msgs::msg::SensorHygrometer
  
  - topic: /fmu/out/wind
    type: px4_msgs::msg::Wind  
    
  - topic: /fmu/out/sensor_mag
    type: px4_msgs::msg::SensorMag
    
  - topic: /fmu/out/sensor_optical_flow
    type: px4_msgs::msg::SensorOpticalFlow
    
  - topic: /fmu/out/tecs_status
    type: px4_msgs::msg::TecsStatus
    
  - topic: /fmu/out/yaw_estimator_status
    type: px4_msgs::msg::YawEstimatorStatus
    
  - topic: /fmu/out/landing_target_pose
    type: px4_msgs::msg::LandingTargetPose
    
  - topic: /fmu/out/launch_detection_status
    type: px4_msgs::msg::LaunchDetectionStatus
    
  - topic: /fmu/out/manual_control_setpoint
    type: px4_msgs::msg::ManualControlSetpoint
    
  - topic: /fmu/out/manual_control_switches
    type: px4_msgs::msg::ManualControlSwitches
    
  - topic: /fmu/out/obstacle_distance
    type: px4_msgs::msg::ObstacleDistance
    
  - topic: /fmu/out/onboard_computer_status
    type: px4_msgs::msg::OnboardComputerStatus
    
  - topic: /fmu/out/vehicle_air_data
    type: px4_msgs::msg::VehicleAirData
    
  - topic: /fmu/out/vehicle_acceleration
    type: px4_msgs::msg::VehicleAcceleration
  
  - topic: /fmu/out/vehicle_imu
    type: px4_msgs::msg::VehicleImu
    
  - topic: /fmu/out/vehicle_land_detected
    type: px4_msgs::msg::VehicleLandDetected
    
  - topic: /fmu/out/vehicle_optical_flow_vel
    type: px4_msgs::msg::VehicleOpticalFlow

  - topic: /fmu/out/vehicle_optical_flow
    type: px4_msgs::msg::VehicleOpticalFlowVel
 
  - topic: /fmu/out/vehicle_roi
    type: px4_msgs::msg::VehicleRoi
    
  - topic: /fmu/out/failsafe_flags
    type: px4_msgs::msg::FailsafeFlags

  - topic: /fmu/out/sensor_combined
    type: px4_msgs::msg::SensorCombined

  - topic: /fmu/out/timesync_status
    type: px4_msgs::msg::TimesyncStatus

  - topic: /fmu/out/vehicle_angular_velocity
    type: px4_msgs::msg::VehicleAngularVelocity

  - topic: /fmu/out/vehicle_attitude
    type: px4_msgs::msg::vehicleAttitude

  - topic: /fmu/out/vehicle_control_mode
    type: px4_msgs::msg::VehicleControlMode

  - topic: /fmu/out/vehicle_gps_position
    type: px4_msgs::msg::SensorGps

  - topic: /fmu/out/vehicle_global_position
    type: px4_msgs::msg::VehicleGlobalPosition

  - topic: /fmu/out/vehicle_local_position
    type: px4_msgs::msg::VehicleLocalPosition

  - topic: /fmu/out/vehicle_odometry
    type: px4_msgs::msg::VehicleOdometry

  - topic: /fmu/out/vehicle_status
    type: px4_msgs::msg::VehicleStatus

  - topic: /fmu/out/vehicle_trajectory_waypoint_desired
    type: px4_msgs::msg::VehicleTrajectoryWaypoint
    
  - topic: /fmu/out/vehicle_torque_setpoint
    type: px4_msgs::msg::VehicleTorqueSetpoint
    

 



subscriptions:

  - topic: /fmu/in/offboard_control_mode
    type: px4_msgs::msg::OffboardControlMode


  - topic: /fmu/in/obstacle_distance
    type: px4_msgs::msg::ObstacleDistance

  - topic: /fmu/in/sensor_optical_flow
    type: px4_msgs::msg::SensorOpticalFlow

  - topic: /fmu/in/telemetry_status
    type: px4_msgs::msg::TelemetryStatus

  - topic: /fmu/in/trajectory_setpoint
    type: px4_msgs::msg::TrajectorySetpoint

  - topic: /fmu/in/vehicle_attitude_setpoint
    type: px4_msgs::msg::VehicleAttitudeSetpoint

  - topic: /fmu/in/vehicle_mocap_odometry
    type: px4_msgs::msg::VehicleOdometry

  - topic: /fmu/in/vehicle_rates_setpoint
    type: px4_msgs::msg::VehicleRatesSetpoint

  - topic: /fmu/in/vehicle_visual_odometry
    type: px4_msgs::msg::VehicleOdometry

  - topic: /fmu/in/vehicle_command
    type: px4_msgs::msg::VehicleCommand

  - topic: /fmu/in/vehicle_trajectory_bezier
    type: px4_msgs::msg::VehicleTrajectoryBezier

  - topic: /fmu/in/vehicle_trajectory_waypoint
    type: px4_msgs::msg::VehicleTrajectoryWaypoint

  - topic: /fmu/in/actuator_outputs
    type: px4_msgs::msg::ActuatorOutputs

  - topic: /fmu/in/actuator_servos
    type: px4_msgs::msg::ActuatorServos
   
  - topic: /fmu/in/actuator_servos_trim
    type: px4_msgs::msg::ActuatorServosTrim
    
    
  - topic: /fmu/in/vehicle_thrust_setpoint
    type: px4_msgs::msg::VehicleThrustSetpoint
  
  - topic: /fmu/in/vehicle_torque_setpoint
    type: px4_msgs::msg::VehicleTorqueSetpoint
    
    
    
    


                

So the topic /fmu/out/vehicle_global_position is present , i just build the firmware and here is my ros2 topic list :

zit@rpi:~$ ros2 topic list
/fmu/in/actuator_outputs
/fmu/in/actuator_servos
/fmu/in/actuator_servos_trim
/fmu/in/obstacle_distance
/fmu/in/offboard_control_mode
/fmu/in/sensor_optical_flow
/fmu/in/telemetry_status
/fmu/in/trajectory_setpoint
/fmu/in/vehicle_attitude_setpoint
/fmu/in/vehicle_command
/fmu/in/vehicle_mocap_odometry
/fmu/in/vehicle_rates_setpoint
/fmu/in/vehicle_thrust_setpoint
/fmu/in/vehicle_torque_setpoint
/fmu/in/vehicle_trajectory_bezier
/fmu/in/vehicle_trajectory_waypoint
/fmu/in/vehicle_visual_odometry
/fmu/out/actuator_outputs
/fmu/out/actuator_servos
/fmu/out/actuator_servos_trim
/fmu/out/failsafe_flags
/fmu/out/failure_detector_status
/fmu/out/manual_control_setpoint
/fmu/out/sensor_accel
/fmu/out/sensor_baro
/fmu/out/sensor_combined
/fmu/out/sensor_gps
/fmu/out/sensor_gyro
/fmu/out/sensor_mag
/fmu/out/timesync_status
/fmu/out/vehicle_acceleration
/fmu/out/vehicle_air_data
/fmu/out/vehicle_angular_velocity
/fmu/out/vehicle_attitude
/fmu/out/vehicle_control_mode
/fmu/out/vehicle_gps_position
/fmu/out/vehicle_imu
/fmu/out/vehicle_land_detected
/fmu/out/vehicle_local_position
/fmu/out/vehicle_odometry
/fmu/out/vehicle_status
/fmu/out/vehicle_torque_setpoint
/parameter_events
/rosout
zit@rpi:~$ 

As you can see, vhehicle_global_position is present on the dds_topics.yalm file but not in topic list.
I have also tried to put firmwares from qground control ( stable version, dev version et beta version) this topic never come back !! How this can be possible ???
Normaly if i put the standard firmware , i should have the standard topics no ? why vehicle_global_position don’t want come back !!!

are you sure that vehicle_global_position is present in PX4?
if the topic is never published (say, you don’t have GPS fix) as uORB, the bridge will not create /fmu/out/vehicle_global_position

The topic was not published because i don’t have fix !! i change the gps and the new one fix more rapidly , the old one loose the fix outside.
Thank you very much for you help.
And i’m sory for my stupid question !

I have now another problem , i loose the connexion between client and agent, i have to stop the agent manually and restart it manually to recover my topics…
I will open another post with more detail.

1 Like