Hello,
I was wondering if there is any way to improve the video latency with the Seeker on VOXL1.
I am currently using RVIZ to stream the stereo or tracking camera video to my host PC (where I am sitting and flying the Seeker), but there is about a 3 second delay in the video. This makes it very difficult to fly the Seeker out of my line of sight.
I have purchased a new Wi-Fi router to use as an extender/relay hoping to improve the video delay, but that did not work.
Has there been improvements in this area with the new VOXL1 SDK's?
Posts made by Kris
-
Video streaming latency/delay
-
RE: Streaming Stereo Camera
voxl-inspect-mavlink mavlink_sys_status
| ID | Mavlink MSG Name |Counter| Hz | |-------|-----------------------------|-------|------| | 1 | sys_status | 92 | 5.0 |
-
RE: Streaming Stereo Camera
voxl:~$ voxl-inspect-sku family code: MRB-D0003 (seeker) compute board: 1 (voxl1) hw version: 7 cam config: 7 SKU: MRB-D0003-1-V7-C7
-
RE: Streaming Stereo Camera
voxl:~$ systemctl status voxl-mavcam-manager -l ● voxl-mavcam-manager.service - voxl-mavcam-manager Loaded: loaded (/usr/bin/voxl-mavcam-manager; enabled; vendor preset: enabled) Active: failed (Result: signal) since Tue 2024-03-05 01:18:39 UTC; 20min ago Process: 17657 ExecStart=/bin/bash -c /usr/bin/voxl-mavcam-manager (code=killed, signal=ABRT) Main PID: 17657 (code=killed, signal=ABRT) Mar 05 01:18:39 apq8096 bash[17657]: snapshot_pipe_name: tracking Mar 05 01:18:39 apq8096 bash[17657]: video_record_pipe_name: tracking Mar 05 01:18:39 apq8096 bash[17657]: default_uri: rtsp://192.168.110.152:8900/live Mar 05 01:18:39 apq8096 bash[17657]: enable_auto_ip: 0 Mar 05 01:18:39 apq8096 bash[17657]: ================================================================= Mar 05 01:18:39 apq8096 bash[17657]: Camera name for qgc: Camera 0 Mar 05 01:18:39 apq8096 bash[17657]: Mavlink server Connected Mar 05 01:18:39 apq8096 systemd[1]: voxl-mavcam-manager.service: Main process exited, code=killed, status=6/ABRT Mar 05 01:18:39 apq8096 systemd[1]: voxl-mavcam-manager.service: Unit entered failed state. Mar 05 01:18:39 apq8096 systemd[1]: voxl-mavcam-manager.service: Failed with result 'signal'.
-
RE: Streaming Stereo Camera
@tom This is what I see.
voxl:~$ systemctl status voxl-streamer ● voxl-streamer.service - voxl-streamer Loaded: loaded (/usr/bin/voxl-streamer; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-03-05 01:18:42 UTC; 13min ago Process: 17793 ExecStartPre=/bin/sleep 5 (code=exited, status=0/SUCCESS) Main PID: 17800 (voxl-streamer) CGroup: /system.slice/voxl-streamer.service └─17800 /usr/bin/voxl-streamer Mar 05 01:31:34 apq8096 voxl-streamer[17800]: A new client rtsp://192.168.11...1 Mar 05 01:31:34 apq8096 voxl-streamer[17800]: Camera server Connected Mar 05 01:31:34 apq8096 voxl-streamer[17800]: rtsp client disconnected, tota...0 Mar 05 01:31:34 apq8096 voxl-streamer[17800]: no more rtsp clients, closing ...y Mar 05 01:31:34 apq8096 voxl-streamer[17800]: A new client rtsp://192.168.11...1 Mar 05 01:31:34 apq8096 voxl-streamer[17800]: Camera server Connected Mar 05 01:31:34 apq8096 voxl-streamer[17800]: rtsp client disconnected, tota...0 Mar 05 01:31:34 apq8096 voxl-streamer[17800]: no more rtsp clients, closing ...y Mar 05 01:31:34 apq8096 voxl-streamer[17800]: A new client rtsp://192.168.11...1 Mar 05 01:31:34 apq8096 voxl-streamer[17800]: Camera server Connected Hint: Some lines were ellipsized, use -l to show in full.
voxl:~$ systemctl status voxl-streamer -l ● voxl-streamer.service - voxl-streamer Loaded: loaded (/usr/bin/voxl-streamer; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-03-05 01:18:42 UTC; 14min ago Process: 17793 ExecStartPre=/bin/sleep 5 (code=exited, status=0/SUCCESS) Main PID: 17800 (voxl-streamer) CGroup: /system.slice/voxl-streamer.service └─17800 /usr/bin/voxl-streamer Mar 05 01:33:33 apq8096 voxl-streamer[17800]: no more rtsp clients, closing source pipe intentionally Mar 05 01:33:33 apq8096 voxl-streamer[17800]: A new client rtsp://192.168.110.159:48596(null) has connected, total clients: 1 Mar 05 01:33:33 apq8096 voxl-streamer[17800]: Camera server Connected Mar 05 01:33:33 apq8096 voxl-streamer[17800]: rtsp client disconnected, total clients: 0 Mar 05 01:33:33 apq8096 voxl-streamer[17800]: no more rtsp clients, closing source pipe intentionally Mar 05 01:33:33 apq8096 voxl-streamer[17800]: A new client rtsp://192.168.110.159:48604(null) has connected, total clients: 1 Mar 05 01:33:33 apq8096 voxl-streamer[17800]: Camera server Connected Mar 05 01:33:33 apq8096 voxl-streamer[17800]: rtsp client disconnected, total clients: 0 Mar 05 01:33:33 apq8096 voxl-streamer[17800]: no more rtsp clients, closing source pipe intentionally Mar 05 01:33:33 apq8096 voxl-streamer[17800]: A new client rtsp://192.168.110.159:48606(null) has connected, total clients: 1
-
RE: Streaming Stereo Camera
@tom
I am sorry, it is still not working.... -
RE: Streaming Stereo Camera
@tom Thank you so much, I just found it and I will try it.
-
RE: Streaming Stereo Camera
@tom
Yes, I have ran through thevoxl-configure-sku
and thevoxl-configure-mpa
.
This is what my video stream seetings look like in QGC, if its the correct location. -
RE: Streaming Stereo Camera
I am not able to view any video when executing the voxl-mavcam-manager either.
voxl:~$ voxl-mavcam-manager ================================================================= Parameters as loaded from config file: snapshot_pipe_name: tracking video_record_pipe_name: tracking default_uri: rtsp://192.168.110.152:8900/live enable_auto_ip: 1 ================================================================= Camera name for qgc: Camera 0 Mavlink server Connected Got camera information request auto-detected RTSP URI: rtsp://192.168.110.152:8900/live Got camera information request auto-detected RTSP URI: rtsp://192.168.110.152:8900/live Got camera information request auto-detected RTSP URI: rtsp://192.168.110.152:8900/live
-
RE: Streaming Stereo Camera
@tom Thank you.
I tried it again without manually running voxl-streamer.
First I made sure it was on by inspecting my services.
When I confirmed that it was on, I tried to input the rtsp:// in the Open Network Stream in VLC, but it failed.
Here is the error message in VLCConnection failed: VLC could not connect to "192.168.110.152:8900". Your input can't be opened: VLC is unable to open the MRL 'rtsp://192.168.110.152:8900/live'. Check the log for details. Connection failed: VLC could not connect to "127.0.0.1:8900". Your input can't be opened: VLC is unable to open the MRL 'rtsp://127.0.0.1:8900/live'. Check the log for details. Connection failed: VLC could not connect to "192.168.110.159:8900". Your input can't be opened: VLC is unable to open the MRL 'rtsp://192.168.110.159:8900/live'. Check the log for details.
Can you confirm that I should be using the rtsp://192.168.110.152:8900/live for the VLC network stream?
Or should it be rtsp://127.0.0.1:8900/live ?voxl:~$ voxl-streamer -i tracking Waiting for pipe tracking to appear Found Pipe detected following stats from pipe: w: 640 h: 480 fps: 30 format: RAW8 Stream available at rtsp://127.0.0.1:8900/live
Here is my settings in voxl-mavcam-manager
{ "snapshot_pipe_name": "tracking", "video_record_pipe_name": "tracking", "default_uri": "rtsp://192.168.110.152:8900/live", "enable_auto_ip": true }
-
RE: Streaming Stereo Camera
@tom Thank you for your reply.
This is what I have setup in my voxl-streamer.conf{ "input-pipe": "tracking", "bitrate": 1000000, "rotation": 0, "decimator": 1, "port": 8900 }
The services that are running are;
voxl:~$ voxl-inspect-services Scanning services... Service Name | Enabled | Running | CPU Usage ------------------------------------------------------------------- docker-autorun | Disabled | Not Running | docker-daemon | Disabled | Not Running | modallink-relink | Disabled | Not Running | voxl-camera-server | Enabled | Running | 5.1% voxl-cpu-monitor | Enabled | Running | 1.7% voxl-dfs-server | Disabled | Not Running | voxl-imu-server | Enabled | Running | 0.0% voxl-lepton-server | Disabled | Not Running | voxl-mavcam-manager | Enabled | Running | 1.7% voxl-mavlink-server | Enabled | Running | 5.1% voxl-modem | Disabled | Not Running | voxl-portal | Enabled | Running | 0.0% voxl-qvio-server | Enabled | Running | 6.8% voxl-rangefinder-server | Disabled | Not Running | voxl-remote-id | Disabled | Not Running | voxl-streamer | Enabled | Running | 0.0% voxl-tag-detector | Disabled | Not Running | voxl-tflite-server | Disabled | Not Running | voxl-time-sync | Disabled | Not Running | voxl-uvc-server | Disabled | Not Running | voxl-vision-hub | Enabled | Running | 3.4% voxl-wait-for-fs | Enabled | Completed |
My vision-hub.conf
{ "config_file_version": 1, "en_localhost_mavlink_udp": false, "localhost_udp_port_number": 14551, "en_vio": true, "vio_pipe": "qvio", "secondary_vio_pipe": "ov", "en_reset_vio_if_initialized_inverted": true, "vio_warmup_s": 3, "send_odom_while_failed": true, "en_set_clock_from_gps": true, "en_force_onboard_mav1_mode": true, "en_reset_px4_on_error": true, "horizon_cal_tolerance": 0.5, "offboard_mode": "trajectory", "follow_tag_id": 0, "figure_eight_move_home": false, "robot_radius": 0.300000011920929, "collision_sampling_dt": 0.1, "max_lookahead_distance": 1, "en_tag_fixed_frame": false, "fixed_frame_filter_len": 5, "en_transform_mavlink_pos_setpoints_from_fixed_frame": false, "en_voa": true, "voa_upper_bound_m": -0.15000000596046448, "voa_lower_bound_m": 0.15000000596046448, "voa_voa_memory_s": 1, "voa_max_pc_per_fusion": 100, "voa_pie_max_dist_m": 20, "voa_pie_min_dist_m": 0.25, "voa_pie_under_trim_m": 1, "voa_pie_threshold": 3, "voa_send_rate_hz": 20, "voa_pie_slices": 36, "voa_pie_bin_depth_m": 0.15000000596046448, "voa_inputs": [{ "enabled": true, "type": "point_cloud", "input_pipe": "dfs_point_cloud", "frame": "stereo_l", "max_depth": 8, "min_depth": 0.300000011920929, "cell_size": 0.079999998211860657, "threshold": 4, "x_fov_deg": 68, "y_fov_deg": 56, "conf_cutoff": 0 }, { "enabled": true, "type": "point_cloud", "input_pipe": "stereo_front_pc", "frame": "stereo_front_l", "max_depth": 8, "min_depth": 0.300000011920929, "cell_size": 0.079999998211860657, "threshold": 4, "x_fov_deg": 68, "y_fov_deg": 56, "conf_cutoff": 0 }, { "enabled": true, "type": "point_cloud", "input_pipe": "stereo_rear_pc", "frame": "stereo_rear_l", "max_depth": 8, "min_depth": 0.300000011920929, "cell_size": 0.079999998211860657, "threshold": 4, "x_fov_deg": 68, "y_fov_deg": 56, "conf_cutoff": 0 }, { "enabled": true, "type": "tof", "input_pipe": "tof", "frame": "tof", "max_depth": 6, "min_depth": 0.15000000596046448, "cell_size": 0.079999998211860657, "threshold": 3, "x_fov_deg": 106.5, "y_fov_deg": 85.0999984741211, "conf_cutoff": 125 }, { "enabled": true, "type": "rangefinder", "input_pipe": "rangefinders", "frame": "body", "max_depth": 8, "min_depth": 0.300000011920929, "cell_size": 0.079999998211860657, "threshold": 4, "x_fov_deg": 68, "y_fov_deg": 56, "conf_cutoff": 0 }] }
Then when I go to run voxl-streamer, it works at first but when I open VLC it does not work.
voxl:~$ voxl-streamer -i tracking existing instance of voxl-streamer found, attempting to stop it Waiting for pipe tracking to appear Found Pipe detected following stats from pipe: w: 640 h: 480 fps: 30 format: RAW8 Stream available at rtsp://127.0.0.1:8900/live A new client rtsp://192.168.110.159:40472(null) has connected, total clients: 1 Camera server Connected ERROR: New frame rejected, status = -2 rtsp client disconnected, total clients: 0 no more rtsp clients, closing source pipe intentionally (voxl-streamer:3746): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer (voxl-streamer:3746): GLib-GObject-CRITICAL **: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed ERROR: New frame rejected, status = -2 A new client rtsp://192.168.110.159:40484(null) has connected, total clients: 1 WARNING, _stop_helper_and_remove_pipe timed out joining read thread rtsp client disconnected, total clients: 0 no more rtsp clients, closing source pipe intentionally A new client rtsp://192.168.110.159:60720(null) has connected, total clients: 1 Camera server Connected rtsp client disconnected, total clients: 0 no more rtsp clients, closing source pipe intentionally
I am not sure why I am not able to do this.
192.168.110.152 is my current Seeker IP.
192.168.110.159 is my current host PC IP.What I would really like to do is connect my stereo stream with QGroundControl instead of VLC. But I haven't even gotten VLC to stream it yet....
-
Streaming Stereo Camera
Is it possible to stream a stereo/tracking camera on the Seeker (SDK 1.1.2) with voxl-streamer?
-
RE: voxl-vision-px4 not showing up
@tom
Thank you for your response
It was a great answer.So, whenever I inspect the services on the Seeker with SDK 1.1.2, is it normal not to see voxl-px4 and voxl-px4-imu-server services?
Should'nt px4 services automatically download if I install the 1.1.2 SDK? -
RE: voxl-vision-px4 not showing up
I was able to connect to QGroundControl on SDK 1.1.2 using these application settings on QGroundControl v4.2.4
However I did not feel like px4 was communicating with QGroundControl.
In voxl-vision-hub.conf
I enabled VIO and VOA.
I was able to fly the Seeker in Position mode, but VOA was not working.I was not able to connect voxl mpa to ros using the command
despite having the correct IP for my Seeker and Host PC setup in the my_ros_env.sh
I was getting this error message;
voxl:~$ roslaunch voxl_mpa_to_ros voxl_mpa_to_ros.launch ... logging to /home/root/.ros/log/7ec53908-d6c2-11ee-b3ea-18473db1c389/roslaunch-apq8096-3584.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. Unable to contact my own server at [http://192.168.8.1:56009/]. This usually means that the network is not configured properly. A common cause is that the machine cannot ping itself. Please check for errors by running: ping 192.168.8.1 For more tips, please see http://www.ros.org/wiki/ROS/NetworkSetup The traceback for the exception was written to the log file
I am not sure why ROS is trying to connect to 192.168.8.1 when I have my
export ROS_MASTER_IP=192.168.105.180 (Seeker IP)
and my
export ROS_IP=192.168.105.189 (Host PC IP)How am I supposed to tell the Seeker what my host pc IP is if there is no option to do so in voxl-vision-hub.conf and there is no px4/voxl-vision-px4.conf
-
RE: voxl-vision-px4 not showing up
voxl:~$ cat /etc/opkg/opkg.conf ################################################################ ## This file has been automatically generated. ## Please use voxl-configure-opkg to modify it. ################################################################ dest root / option lists_dir /var/lib/opkg/lists arch all 1 arch arm64 7 src/gz modalai http://voxl-packages.modalai.com/dists/apq8096/sdk-1.1/binary-arm64/ voxl:~$ opkg info voxl-vision-px4 voxl:~$ opkg info voxl-qvio-server Package: voxl-qvio-server Version: 1.0.0 Depends: libmodal-pipe (>= 2.7.2), libmodal-json (>= 0.4.0), voxl-mpa-tools (>= 0.7.0) Status: install ok installed Architecture: arm64 Installed-Time: 1709167790
-
voxl-vision-px4 not showing up
I upgraded from voxl-suite 0.9.5 to 1.1.2 on the Seeker.
Then I suddenly cannot connect to QGroundControl.
I checked my services and did not see any px4 there.
Then I checked my version and noticed that px4 was no longer there.There is no location for me to enter the Seeker's IP in order to communicate with QGroundControl.
voxl:~$ voxl-version -------------------------------------------------------------------------------- system-image: 4.0.0 kernel: #1 SMP PREEMPT Thu Oct 13 17:57:05 UTC 2022 3.18.71-perf -------------------------------------------------------------------------------- hw version: VOXL -------------------------------------------------------------------------------- voxl-suite: 1.1.2 -------------------------------------------------------------------------------- Packages: Repo: http://voxl-packages.modalai.com/dists/apq8096/sdk-1.1/binary-arm64/ Last Updated: Never List: apq8096-dfs-server 0.3.1 apq8096-imu-server 1.1.0 apq8096-libpng 1.6.38-1 apq8096-rangefinder-server 0.1.3 apq8096-system-tweaks 0.2.3 apq8096-tflite 2.8.3-1 libapq8096-io 0.6.0 libmodal-cv 0.4.0 libmodal-exposure 0.1.0 libmodal-journal 0.2.2 libmodal-json 0.4.3 libmodal-pipe 2.9.2 libvoxl-cci-direct 0.2.1 libvoxl-cutils 0.1.1 voxl-camera-calibration 0.5.3 voxl-camera-server 1.8.9 voxl-configurator 0.4.8 voxl-cpu-monitor 0.4.7 voxl-docker-support 1.3.0 voxl-gphoto2-server 0.0.10 voxl-jpeg-turbo 2.1.3-5 voxl-lepton-server 1.2.0 voxl-libgphoto2 0.0.4 voxl-libuvc 1.0.7 voxl-logger 0.3.5 voxl-mavcam-manager 0.5.3 voxl-mavlink 0.1.1 voxl-mavlink-server 1.3.2 voxl-modem 1.0.8 voxl-mongoose 7.7.0-1 voxl-mpa-to-ros 0.3.7 voxl-mpa-tools 1.1.3 voxl-opencv 4.5.5-2 voxl-portal 0.6.3 voxl-qvio-server 1.0.0 voxl-remote-id 0.0.9 voxl-streamer 0.7.4 voxl-suite 1.1.2 voxl-system-image 4.0-r0 voxl-tag-detector 0.0.4 voxl-tflite-server 0.3.1 voxl-utils 1.3.3 voxl-uvc-server 0.1.6 voxl-vision-hub 1.7.3 voxl-vpn 0.0.6 --------------------------------------------------------------------------------
voxl:~$ voxl-inspect-services Scanning services... Service Name | Enabled | Running | CPU Usage ------------------------------------------------------------------- docker-autorun | Disabled | Not Running | docker-daemon | Disabled | Not Running | modallink-relink | Disabled | Not Running | voxl-camera-server | Enabled | Running | 12.7% voxl-cpu-monitor | Enabled | Running | 2.1% voxl-dfs-server | Enabled | Running | 2.1% voxl-imu-server | Enabled | Running | 0.0% voxl-lepton-server | Disabled | Not Running | voxl-mavcam-manager | Disabled | Not Running | voxl-mavlink-server | Enabled | Running | 2.1% voxl-modem | Disabled | Not Running | voxl-portal | Enabled | Running | 0.0% voxl-qvio-server | Enabled | Running | 6.3% voxl-rangefinder-server | Disabled | Not Running | voxl-remote-id | Disabled | Not Running | voxl-streamer | Disabled | Not Running | voxl-tag-detector | Disabled | Not Running | voxl-tflite-server | Disabled | Not Running | voxl-time-sync | Disabled | Not Running | voxl-uvc-server | Disabled | Not Running | voxl-vision-hub | Enabled | Running | 0.0% voxl-wait-for-fs | Enabled | Completed |
I have downgraded to previous versions (voxl SDK 1.1.1 and SDK 1.1.0) but neither had px4 in them.
I am only able to get platform 0.9.5 to work (contains px4).Am I missing something or should I manually push px4 into the Seeker?
If so, what folder should I push it into?
Should it be the .ipk or the master px4 folder?