Problems with camera on Typhoon H480

I have some problems with the camera on gazebo_typhoon_h480.

For some reason, QGroundControl does not detect the video camera (it says: 1.03 waiting for video), but the photos are being taken successfully (the message is visible in the console: “1 image files updated”). If I launch the view through gst-launch-1.0, then I see the first frame, and then only a gray screen.

Could you tell me what is wrong?

Additional info
make log

$ make px4_sitl gazebo_typhoon_h480
[0/4] Performing build step for ‘sitl_gazebo’
ninja: no work to do.
[3/4] cd /home/aliar/Diploma/Firmware/build/px4_sitl_defau…rmware /home/aliar/Diploma/Firmware/build/px4_sitl_default
SITL ARGS
sitl_bin: /home/aliar/Diploma/Firmware/build/px4_sitl_default/bin/px4
debugger: none
program: gazebo
model: typhoon_h480
world: none
src_path: /home/aliar/Diploma/Firmware
build_path: /home/aliar/Diploma/Firmware/build/px4_sitl_default
GAZEBO_PLUGIN_PATH :/home/aliar/Diploma/Firmware/build/px4_sitl_default/build_gazebo
GAZEBO_MODEL_PATH :/home/aliar/Diploma/Firmware/Tools/sitl_gazebo/models
LD_LIBRARY_PATH :/home/aliar/Diploma/Firmware/build/px4_sitl_default/build_gazebo
empty world, default world typhoon_h480.world for model found
Using: /home/aliar/Diploma/Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf
10.80
SITL COMMAND: “/home/aliar/Diploma/Firmware/build/px4_sitl_default/bin/px4” “/home/aliar/Diploma/Firmware/build/px4_sitl_default”/etc -s etc/init.d-posix/rcS -t “/home/aliar/Diploma/Firmware”/test_data
INFO [px4] Creating symlink /home/aliar/Diploma/Firmware/build/px4_sitl_default/etc -> /home/aliar/Diploma/Firmware/build/px4_sitl_default/tmp/rootfs/etc


| ___ \ \ \ / / / |
| |/ / \ V / / /| |
| __/ / \ / /
| |
| | / /^\ \ ___ |
_| / / |_/

px4 starting.

INFO [px4] Calling startup script: /bin/sh etc/init.d-posix/rcS 0
Info: found model autostart file as SYS_AUTOSTART=6011
Gazebo multi-robot simulator, version 9.16.0
Copyright © 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 10.0.2.15
INFO [param] selected parameter default file eeprom/parameters_6011
[param] Loaded: eeprom/parameters_6011
INFO [dataman] Unknown restart, data manager file ‘./dataman’ size is 11798680 bytes
INFO [simulator] Waiting for simulator to accept connection on TCP port 4560
INFO [simulator] Simulator connected on TCP port 4560.
INFO [commander] LED: open /dev/led0 failed (22)
INFO [init] Mixer: etc/mixers/hexa_x.main.mix on /dev/pwm_output0
INFO [ekf2] starting instance 0, IMU:0 (1310988), MAG:0 (197388)
INFO [ekf2] starting instance 1, IMU:1 (1310996), MAG:0 (197388)
INFO [ekf2] starting instance 2, IMU:2 (1311004), MAG:0 (197388)
INFO [ekf2] starting instance 3, IMU:0 (1310988), MAG:1 (197644)
INFO [ekf2] starting instance 4, IMU:1 (1310996), MAG:1 (197644)
INFO [ekf2] starting instance 5, IMU:2 (1311004), MAG:1 (197644)
INFO [mavlink] mode: Normal, data rate: 4000000 B/s on udp port 18570 remote port 14550
INFO [mavlink] mode: Onboard, data rate: 4000000 B/s on udp port 14580 remote port 14540
INFO [mavlink] mode: Onboard, data rate: 4000 B/s on udp port 14280 remote port 14030
INFO [mavlink] mode: Onboard, data rate: 4000 B/s on udp port 14558 remote port 14530
INFO [logger] logger started (mode=all)
INFO [mavlink] MAVLink only on localhost (set param MAV_BROADCAST = 1 to enable network)
INFO [px4] Startup script returned successfully
pxh> INFO [logger] Start file log (type: full)
INFO [logger] [logger] ./log/2021-02-19/09_13_21.ulg
INFO [logger] Opened full log file: ./log/2021-02-19/09_13_21.ulg
INFO [ecl/EKF] 736000: reset position to last known positionINFO [ecl/EKF] 736000: reset position to last known position
INFO [ecl/EKF] 736000: reset velocity to zero

INFO [ecl/EKF] 736000: reset velocity to zero
INFO [ecl/EKF] 736000: reset position to last known position
INFO [ecl/EKF] 736000: reset velocity to zero
INFO [ecl/EKF] 736000: reset position to last known position
INFO [ecl/EKF] 736000: reset velocity to zero
INFO [ecl/EKF] 736000: reset position to last known position
INFO [ecl/EKF] 736000: reset velocity to zero
INFO [ecl/EKF] 736000: reset position to last known position
INFO [ecl/EKF] 736000: reset velocity to zero
INFO [ecl/EKF] 736000: GPS checks passed
INFO [ecl/EKF] 736000: GPS checks passed
INFO [ecl/EKF] 736000: GPS checks passed
INFO [ecl/EKF] 736000: GPS checks passed
INFO [ecl/EKF] 736000: GPS checks passed
INFO [ecl/EKF] 736000: GPS checks passed
[Wrn] [gazebo_video_stream_widget.cpp:103] Enable Video Streaming
INFO [ecl/EKF] 7060000: EKF aligned, (baro hgt, IMU buf: 12, OBS buf: 9)
INFO [ecl/EKF] 7060000: EKF aligned, (baro hgt, IMU buf: 12, OBS buf: 9)
INFO [ecl/EKF] 7060000: EKF aligned, (baro hgt, IMU buf: 12, OBS buf: 9)
INFO [ecl/EKF] 7060000: EKF aligned, (baro hgt, IMU buf: 12, OBS buf: 9)
INFO [ecl/EKF] 7060000: EKF aligned, (baro hgt, IMU buf: 12, OBS buf: 9)
INFO [ecl/EKF] 7060000: EKF aligned, (baro hgt, IMU buf: 12, OBS buf: 9)
INFO [ecl/EKF] 7172000: reset position to GPS
INFO [ecl/EKF] 7172000: reset velocity to GPS
INFO [ecl/EKF] 7172000: starting GPS fusion
INFO [ecl/EKF] 7172000: reset position to GPS
INFO [ecl/EKF] 7172000: reset velocity to GPS
INFO [ecl/EKF] 7172000: starting GPS fusion
INFO [ecl/EKF] 7172000: reset position to GPS
INFO [ecl/EKF] 7172000: reset velocity to GPS
INFO [ecl/EKF] 7172000: starting GPS fusion
INFO [ecl/EKF] 7172000: reset position to GPS
INFO [ecl/EKF] 7172000: reset velocity to GPS
INFO [ecl/EKF] 7172000: starting GPS fusion
INFO [ecl/EKF] 7172000: reset position to GPS
INFO [ecl/EKF] 7172000: reset velocity to GPS
INFO [ecl/EKF] 7172000: starting GPS fusion
INFO [ecl/EKF] 7172000: reset position to GPS
INFO [ecl/EKF] 7172000: reset velocity to GPS
INFO [ecl/EKF] 7172000: starting GPS fusion
INFO [tone_alarm] home set
INFO [tone_alarm] notify negative
INFO [mavlink] partner IP: 127.0.0.1
INFO [commander] Armed by external command
INFO [commander] Takeoff detected

gst-launch-1.0 log

$ gst-launch-1.0 -v udpsrc port=5600 caps=‘application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264’ ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink fps-update-interval=1000 sync=false
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Got context from element ‘autovideosink0’: gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"(GstGLDisplayX11)\ gldisplayx11-0";
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0164001fffe1001e6764001facd940a02ff97016a0c020b4a0000003002000000f11e30632c001000468efbcb0, level=(string)3.1, profile=(string)high
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0164001fffe1001e6764001facd940a02ff97016a0c020b4a0000003002000000f11e30632c001000468efbcb0, level=(string)3.1, profile=(string)high
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage.GstGhostPad:sink.GstProxyPad:proxypad1: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage/GstGLUploadElement:gluploadelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage/GstGLColorConvertElement:glcolorconvertelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)60/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage/GstGLColorBalance:glcolorbalance0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)60/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage/GstGLImageSink:sink.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)60/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage/GstGLColorBalance:glcolorbalance0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)60/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage/GstGLColorConvertElement:glcolorconvertelement0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage/GstGLUploadElement:gluploadelement0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstGLImageSinkBin:autovideosink0-actual-sink-glimage.GstGhostPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)360, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)60/1
Redistribute latency…

QGroundControl info

Video Settings before connecting to the drone:
Source: UDP h.264 Video Stream
UDP Port: 5600
Aspect Ratio: 1.777777
File Format: mkv
Vedeo decode priority: Default
[ ] Disable When Disarmed
[ ] Low Latency Mode
[ ] Auto-Delete Saved Recordings

Video Settings after connecting to the drone:
File Format: mkv
Vedeo decode priority: Default
[ ] Auto-Delete Saved Recordings

Hi, I found the same problem here, have you solved this?

I try to offboard control.
When I run roslaunch px4 mavros_posix_sitl.launch,
There is an image on the gazebo,

but when trying to rostopic echo /mavros/camera/image_captured.
There is no message published.
Thank you very much for the help : )

Hi, @Aliar @Andromache did any of you guys solve this problem, as I’m also facing this problem and would very much appreciate your help