After multiple tries, the fastboot start to flash system images. But it got stuck. We then power cycle again, this time everything worked. We got the new nightly build flashed.
Thanks!
After multiple tries, the fastboot start to flash system images. But it got stuck. We then power cycle again, this time everything worked. We got the new nightly build flashed.
Thanks!
Looks like we need to press some physical button. I'll ask my coworker to open the heat sink again
The system is just recovered by using qdl, voxl-version shows
root@qrb5165-rb5:/# voxl-version
--------------------------------------------------------------------------------
system-image: 1.1.2-M0054-14.1a-FLAT-V3
kernel: #1 SMP PREEMPT Wed Feb 9 22:21:24 UTC 2022 4.19.125
--------------------------------------------------------------------------------
hw version: 865
--------------------------------------------------------------------------------
voxl-suite:
--------------------------------------------------------------------------------
I tried to flash it with voxl2_platform_nightly_20230521
Thanks!
@Dong-Liu Even I power on the voxl2 with usb cable connected, I get the same error.
Re: Can't Flash VOXL2 (Battery Capacity is Very Low)
The same issue with the reference post.
I followed the instruction that power on the voxl2, wait for 10 seconds, connect the USB cable. But I got
[WARNING] Failed to reboot to fastboot
Try power cycling VOXL while holding the fastboot button
We're running the voxl2 with a power adapter, no battery is used.
Just tried to calibrated the stereo camera using ROS camera calibrator. Had to run the fixed voxl-mpa-to-ros. Because the ROS calibrator expects left and right to be exactly synchronized.
Here is the code,
imgL.header.stamp = (_clock_monotonic_to_ros_time(meta.timestamp_ns));
imgL.width = meta.width;
imgL.height = meta.height;
imgL.step = meta.width;
imgL.encoding = GetRosFormat(meta.format);
imgR.header.stamp = (_clock_monotonic_to_ros_time(meta.timestamp_ns));
imgR.width = meta.width;
imgR.height = meta.height;
imgR.step = meta.width;
imgR.encoding = GetRosFormat(meta.format);
They are all from meta.timestamp_ns, but _clock_monotonic_to_ros is using the current time, so the final times are slight different.
I think it should be
imgR.header.stamp = imgL.header.stamp
I extract the findJpegSize function, add to voxl-camera-server. Now it will produce the correct size snapshot.
Found the problem
The voxl-docker script mount host /data to the container /data. But voxl-cross image has its own /data folder where /data/offline_ipk_packages/apq8096-proprietary_0.0.4.ipk is stored.
Remove the -v /data:/data from voxl-docker script, start the docker again. This it works!
I followed the README from here https://gitlab.com/voxl-public/voxl-sdk/services/voxl-camera-server. But I got,
/root/yoctohome/src/hal3/buffer_impl_apq8096.cpp:10:21: fatal error: log/log.h: No such file or directory
#include <log/log.h>
^
compilation terminated.
In file included from /root/yoctohome/src/hal3/buffer_manager.cpp:7:0:
/root/yoctohome/include/hal3/buffer_manager.h:11:30: fatal error: hardware/camera3.h: No such file or directory
#include "hardware/camera3.h"
Seems ./install_build_deps.sh doesn't install everything needed to build voxl-camera-server.
I found out this https://android.googlesource.com/platform/frameworks/av/+/master/services/camera/libcameraservice/device3/Camera3OutputStream.cpp#1337
Is function android::camera2::JpegProcessor::findJpegSize() available on voxl?
Thanks!
I tried to use hires' snapshot to capture 4K images. But because the size of the image produced is huge, the disk filled up very quickly.
The size of jpeg file is around 48M. If I use imagemagic to convert it to png, the size reduced to 3.7M. I then use imagemagic again to convert it to jpeg, the size is only 740K.
Browsing through the code of hal3_camera_mgr.cpp, in WriteSnapshot() just writes the whole allocated buffer to file. Is there any variable indicates the real size of data produced by the camera module?
Thanks!
@Chad-Sweet I also added skip n frame feature in the camera interfaces, It is quite useful to reduce the network traffic. Do you think should submit one full request with bother features or two pull requests?
When we start t voxl-mpa-to-ros, the system usage becomes very high, the CPU is overheat very quickly. I found out it is because it constantly executing shell script voxl-list-pipes. Although it is doing it at 1 second interval, but that script is quite complicated, it invokes a lot other shell commands, such as cat, grep, tr, sort ... I disabled this repeating invoking voxl-list-pipes, the system usage went down. The CPU was not overhead.
The purpose for repeating invoking voxl-list-pipes is for handle pipe added after voxl-mpa-to-ros started. But in most case we start voxl-map-to-ros after the services are started. I think at least it should make this function configurable.
@Eric-Katzfey I tried grep OMX.qcom from header files, could not find any.
But, string libOmxCore.so only displayed video and audio codec. There is no image codec.
voxl:/usr/include$ strings /usr/lib/libOmxCore.so |grep OMX.qcom
OMX.qcom.video.decoder.avc
OMX.qcom.video.decoder.avc.dsmode
OMX.qcom.video.decoder.mpeg4
OMX.qcom.video.decoder.vc1
OMX.qcom.video.decoder.wmv
OMX.qcom.file.muxer
OMX.qcom.video.decoder.divx4
OMX.qcom.video.decoder.divx
OMX.qcom.video.decoder.divx311
OMX.qcom.video.decoder.h263
OMX.qcom.video.decoder.hevc
OMX.qcom.video.decoder.vp8
OMX.qcom.video.decoder.vp9
OMX.qcom.video.encoder.mpeg4
OMX.qcom.video.encoder.h263
OMX.qcom.video.encoder.avc
OMX.qcom.video.encoder.vp8
OMX.qcom.video.encoder.hevc
OMX.qcom.audio.decoder.Qcelp13
OMX.qcom.audio.decoder.evrc
OMX.qcom.audio.decoder.wma
OMX.qcom.audio.decoder.wma10Pro
OMX.qcom.audio.decoder.alac
OMX.qcom.audio.decoder.ape
OMX.qcom.audio.encoder.aac
OMX.qcom.audio.encoder.qcelp13
OMX.qcom.audio.encoder.evrc
OMX.qcom.audio.encoder.amrnb
OMX.qcom.audio.encoder.g711mlaw
OMX.qcom.audio.encoder.g711alaw
OMX.qcom.audio.encoder.amrwb
OMX.qcom.audio.decoder.g711mlaw
OMX.qcom.audio.decoder.g711alaw
OMX.qcom.audio.decoder.amrwb
OMX.qcom.audio.decoder.amrnb
OMX.qcom.audio.decoder.aac
OMX.qcom.audio.decoder.multiaac
1
@Eric-Katzfey Hi Eric. I tried use openMAX based on this code https://github.com/tjormola/rpi-openmax-demos/blob/master/rpi-encode-yuv.c
It compiled correctly. But which openMAX component to use? That code is for rPI, so the component is "OMX.broadcom.image_encode". I changed to "OMX.qcom.image_encode" but I got no such component error.
Could you tell me which omx component to use for the jpeg encoding?
Thank you!
Hi,
Can the vslam map of voxl qvio be exported and imported? And if it can import a previously exported map, will the qvio drift be reduced?
Thanks!
Dong
@Eric-Katzfey Hi Eric. The jpeg compression imposes a lot of load on the CPU, especially we're using the hires camera. Is there any way you can make the HW jpeg encoding available for us to test it?
Thanks!