ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. James Strawson
    • Profile
    • Following 1
    • Followers 4
    • Topics 0
    • Posts 89
    • Best 12
    • Controversial 0
    • Groups 3

    James Strawson

    @James Strawson

    ModalAI Team

    12
    Reputation
    80
    Profile views
    89
    Posts
    4
    Followers
    1
    Following
    Joined Last Online

    James Strawson Unfollow Follow
    Qisda Forum ModalAI Team admin

    Best posts made by James Strawson

    • RE: ToF v2 outdoor noise

      That's a typo on the website we've just corrected. The Starling 2 Max does not include a TOF sensor, and this sensor is not intended for outdoor use.

      I spent some time tuning the TOF point cloud processing filter params on Friday to reduce noise. These changes are in the dev branch now: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-camera-server/-/commit/919c24bef21cbea2eb7be33853884f5f606a0763

      These these changes are likely to help in the outdoor use case too so I suggest giving it a go.

      posted in Image Sensors
      James StrawsonJ
      James Strawson
    • RE: VOXL ToF sensor rotated

      Hello Aks,

      I'm afraid there is no clean way in software to rotate the debug images other than copying the image byte-by-byte.

      Typically we only use the tof_depth and tof_confidence image pipes for quick debug. voxl-vision-px4 makes real use of the sensor by subscribing to its full point cloud pipe and then projecting the 3D points into space using the known location and orientation of the TOF sensor as specified in /etc/modalai/extrinsics.conf

      Best,
      James

      posted in VOXL-CAM
      James StrawsonJ
      James Strawson
    • RE: Crash during first flight - Log included

      @peterkrull

      Yes, the yaw estimate will track VIO unless you turn off the Yaw bit in EKF2_EV_CTRL and have EKF2_MAG_TYPE set to 0 (which is it on Starling by default). If you are doing mostly indoor flights you can completely disable the mag by setting EKF2_MAG_TYPE to 5 and SYS_HAS_MAG to 0.

      The default EKF2 setup for starling is focused on indoor flight. It enables the magnetometer for calibration and logging but does not use the data. Every time I power on a starling QGC reports 0 degree yaw unless I rotate it. This ekf2 setup is described by the following file that's loaded during the flashing process

      https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-px4-params/-/blob/master/params/v1.14/EKF2_helpers/indoor_vio.params?ref_type=heads

      Note that we are very close to the tip of px4 development and PX4's integration of EKF2 is undergoing a lot of rework right now, including restructuring the EKF2_AID_MASK param into several other EKF2_XYZ_CTRL params.

      Please put the CAL_MAG0_ROT rotation parameter back to the default of 0. The driver handles rotating the sensor data from the IC into the frame of reference of the GPS/MAG module, the CAL_MAG0_ROT parameter exits for the case where you mount the gps/mag module in an unusual orientation.

      Finally, looking through the logs it seems you experienced a typical vio failure, mostly likely due to lack of visible features on takeoff. Starling is a very small drone with the tracking camera close to the ground, so I recommend trying again by taking off on a feature-rich surface or off of a stand that lets the camera see more of the room during the critical takeoff stage. Once it's up in the air with a good view it will lock in.

      posted in Starling & Starling 2
      James StrawsonJ
      James Strawson
    • RE: voxl-vision-px4 crashing potentially when px4 cpu load too high

      This is a known bug that was fixed in voxl-vision-px4 v0.8.8 which is currently on the development repo, scheduled to be merged into the stable repo in a week or so.

      The bug is not caused by PX4, it was due the the handling of the specific mavlink packet containing console data. It should behave normally when not using the PX4 console.

      posted in VOXL
      James StrawsonJ
      James Strawson
    • RE: MAVLink Odometry X Y value 0

      Yes, It seems your installed voxl-vision-px4 and libmodal_pipe versions are from SDK 0.8 wheras your voxl-qvio-server is from SDK 0.7, that is the source of the mismatch.

      You can upgrade qvio server with opkg install voxl-qvio-server to fix the mismatch quickly but I would recommend just flashing back to the SDK 0.7 platform release since SDK 0.8 does not support TOF on VOXL1. The platform releases are tested as a whole an include a set of packages all known to work together. When individual packages get upgraded instead of the whole SDK together then things tend to break.

      posted in Ask your questions right here!
      James StrawsonJ
      James Strawson
    • RE: How to use voxl-logger to sample hires camera?

      Hi Matthew,

      When you try to run voxl-logger with the hires camera it should have given the following error message:

      voxl:/$ voxl-logger --cam hires --samples 1
      connected to ch 0 cam server: /run/mpa/hires/
      ERROR only support RAW8, RAW16, and FLOAT32 images right now
      got NV21 instead
      

      The reason these are the only formats currently supported is because it uses opencv to save/load images. OpenCV is quick enough for black and white images, but simply too slow to be practical for large color images.

      As an experiment I just made a new branch of voxl-mpa-tools with a slow but functional switch-case for the NV21 images produced by the hires camera. This will work for saving one or two images, but won't be able to keep up with a steady 30fps stream.

      Here is the code if you want to try:
      https://gitlab.com/voxl-public/modal-pipe-architecture/voxl-mpa-tools/-/commit/633adfdaf8162548d5df4218243a32e06d2ea7b1

      Migrating voxl-logger to use a faster image compression library and/or hardware acceleration is in the pipeline but I can't promise a release date for that I'm afraid.

      I hope this helps,
      James

      posted in VOXL m500 Reference Drone
      James StrawsonJ
      James Strawson
    • RE: Depth Information Source Unclear

      Hi Griffin,

      DFS stands for depth-from-stereo and is only used on the M500 and Sentinel platforms that have stereo cameras.

      Starlings use the PMD TOF camera which outputs 3D point points directly from voxl-camera-server. That data is in the reference frame of the camera such that Z points out the lens, X to the right of the image, and Y pointing downwards.

      voxl-vision-hub then consumes that data and rotates it based on the mounting location described in /etc/modalai/extrinsics.conf and the current position/orientation of the drone as reported by VIO.

      voxl-mapper is not installed by default as it's not part of the core SDK, however it is locally available and can be installed with apt install voxl-mapper without needing an internet connection.

      Best,
      James

      posted in Starling & Starling 2
      James StrawsonJ
      James Strawson
    • RE: Starling 2 Inverted Yaw and Pitch

      @Kashish-Garg-0

      Yes, everything in the aerospace industry including PX4 and ardupilot use the standard NED coordinate frame with Z pointing down. A significant portion of the code in MAVROS seems to be flipping the direction of the Y and Z axis back and forth when converting from mavlink to ros topics.

      I suggest using the vvhub_body_wrt_local pipe instead of the qvio pipe as the qvio data is centered around the imu whereas voxl-vision-hub transforms this to be centered around the body (COG) and corrects for gravity alignment.

      You can inspect the local pose on VOXL natively with

      voxl-inspect-pose vvhub_body_wrt_local
      OR
      voxl-inspect-pose --local

      Note this pipe was called vvpx4_body_wrt_local in SDK0.9 and older.

      I don't think ROS libraries like TF2 care which way gravity points. A transform is a transform, you can have it oriented however you prefer when you do your math. You should only need to change coordinate frames for the sake of visualization if RVIS doesn't let you define a default orientation or rotate the ground plane around in the UI.

      posted in Ask your questions right here!
      James StrawsonJ
      James Strawson
    • RE: voxl 2 Failed to appy GPU delegate

      Models must contain only instructions from a limited set and be quantized properly to run on the GPU. Please refer to the TensorFlow docs for details:

      https://www.tensorflow.org/lite/performance/gpu

      posted in VOXL 2
      James StrawsonJ
      James Strawson
    • RE: Apriltag relocalization not relocalizing?

      yes, that's the correct rotation matrix for a tag on the ground.

      For a tag on the wall with a center 1m off the ground you can use:
      "T_tag_wrt_fixed": [0, 0, -1],
      "R_tag_to_fixed": [[0, 0, 1], [1, 0, 0], [0, 1, 0]]

      The second video of this docs page walks you through the voxl-vision-hub command line args to help you debug relocalization.

      posted in AprilTag Relocalization
      James StrawsonJ
      James Strawson

    Latest posts made by James Strawson

    • RE: voxl-open-vins-server???

      voxl-openvins-server is under rapid development at the moment and I expect the entire configuration file to be cleaned up dramatically quite soon. After that point the configuration file contents will stabilize and we will update the documentation to match. Fully documenting the current state would be a wasted effort.

      It should not be necessary to modify the configuration file. When flashing the 1.4.1 SDK a new default config file will have been made. What differs from drone-to-drone is the physical layout of the cameras and IMU which is defined by /etc/modalai/extrinsics.conf as well as the cameras that should be used for vio which is set up in /etc/modalai/vio_cams.conf

      posted in Ask your questions right here!
      James StrawsonJ
      James Strawson
    • RE: Apriltag relocalization not relocalizing?

      yes, that's the correct rotation matrix for a tag on the ground.

      For a tag on the wall with a center 1m off the ground you can use:
      "T_tag_wrt_fixed": [0, 0, -1],
      "R_tag_to_fixed": [[0, 0, 1], [1, 0, 0], [0, 1, 0]]

      The second video of this docs page walks you through the voxl-vision-hub command line args to help you debug relocalization.

      posted in AprilTag Relocalization
      James StrawsonJ
      James Strawson
    • RE: Batteries charging error

      Are the failed batteries the white 3000mah Gaoneng packs or the black 4000mah Upgrade Energy Packs?

      posted in Power Modules
      James StrawsonJ
      James Strawson
    • RE: Starling 2 VIO - how many cameras used?

      @star123 I'll validate the extrinsics and check back with you in a bit. I know the rear camera was moved between starling Max Rev 1&2, I'll double check the little starling too.

      The point inside the lens used is what the lens manufacturer claims is the optical center of the lens, 1.7mm inward from the front of the glass.

      posted in Support Request Format for Best Results
      James StrawsonJ
      James Strawson
    • RE: GPS not working for Starling 2 Max

      @groupo It is not on Sentinel.

      posted in Support Request Format for Best Results
      James StrawsonJ
      James Strawson
    • RE: Problem acquiring GPS satellites (possible voxl2 board EMI?)

      @nuallaino

      On more recent versions of the Starling 2 Max we moved the GPS to the back of the drone. I'll reach out to you via PM regarding updating your Starling Max.

      We just discovered a source of EMI which is the cable running to the optional Lepton sensor socket. For a number of reasons we've not offered Lepton as an option of Starling 2 Max yet so you can safely disconnect the 8-pin JST SH connector on the front left side of your camera breakout board next to the barometer cap. This will improve GPS performance. Please see picture below.

      alt text

      posted in Starling & Starling 2
      James StrawsonJ
      James Strawson
    • RE: GPS not working for Starling 2 Max

      @Bernhard When we released the 5G version of the Starling Max we also moved the GPS to the back of the drone and specified smaller LTE antennas which those landing gear were designed to fit. I'll reach out to you via PM regarding updating your Starling Max.

      We just discovered a source of EMI which is the cable running to the optional Lepton sensor socket. For a number of reasons we've not offered Lepton as an option of Starling 2 Max yet so you can safely disconnect the 8-pin JST SH connector on the front left side of your camera breakout board next to the barometer cap. This will improve GPS performance. Please see picture below.

      alt text

      posted in Support Request Format for Best Results
      James StrawsonJ
      James Strawson
    • RE: Depth Information Source Unclear

      Hi Griffin,

      DFS stands for depth-from-stereo and is only used on the M500 and Sentinel platforms that have stereo cameras.

      Starlings use the PMD TOF camera which outputs 3D point points directly from voxl-camera-server. That data is in the reference frame of the camera such that Z points out the lens, X to the right of the image, and Y pointing downwards.

      voxl-vision-hub then consumes that data and rotates it based on the mounting location described in /etc/modalai/extrinsics.conf and the current position/orientation of the drone as reported by VIO.

      voxl-mapper is not installed by default as it's not part of the core SDK, however it is locally available and can be installed with apt install voxl-mapper without needing an internet connection.

      Best,
      James

      posted in Starling & Starling 2
      James StrawsonJ
      James Strawson
    • RE: CP with custom sensors

      @giladWDS

      it looks like very few services are running. If you run voxl-inspect-services you can see what's enabled. You will want to enable voxl-vision-hub, voxl-mavlink-server and voxl-px4

      What kind of sensors and data are you dealing with? voxl-vision-hub can subscribe to rangefinder, generic points clouds, and tof data. Since all the logic for compensating for roll/pitch to level out the point cloud data then slice the data into pie-slices to send to PX4 is done already in voxl-vision-hub I would suggest leveraging this. I think the most simple solution would be option 2 and then edit the voxl-vision-hub config file to point to your new server's pipe.

      posted in Modal Pipe Architecture (MPA)
      James StrawsonJ
      James Strawson
    • RE: Starling 2 MAX with position flight mode with VOXL

      @TOMPLA

      Starling 2 Max comes out of the box with PX4's EKF2 configured for GPS outdoor flight.

      To fly indoors with VIO only you need to modify PX4's EKF2 parameters in QGC or with the voxl-configure-px4-params utility. In the EKF2_helpers menu, select "indoor_vio.params"

      voxl2:/$ voxl-configure-px4-params -w
      [INFO] Voxl-px4 service found and active.
      Select an option:
      [1] Quit
      [2] Reset ALL PX4 params to default
      [3] experimental_do_not_use
      [4] EKF2_helpers
      [5] battery_helpers
      [6] ci_helpers
      [7] voxl2_io_helpers
      [8] other_helpers
      [9] platforms
      [10] radio_helpers
      [11] voa_helpers
      [12] calibration files
      4
      
      Select a EKF2 helper:
      [1] Quit
      [2] Back
      [3] outdoor_flow.params
      [4] outdoor_gps.params
      [5] outdoor_gps_baro.params
      [6] vio_gps_baro.params
      [7] indoor_vio.params
      [8] indoor_vio_missing_gps.params
      7
      
      [INFO] Loading file: /usr/share/modalai/px4_params/v1.14/EKF2_helpers/indoor_vio.params
      [INFO] Scanning currently loaded parameters...
      The following parameters about to be loaded differ from those currently loaded:
      	NAME    		CURRENT    	NEW
      [1]	EKF2_MAG_TYPE    	0.0		5.0
      [2]	EKF2_EV_CTRL    	0.0		15.0
      [3]	EKF2_HGT_REF    	1.0		3.0
      [4]	EKF2_GPS_CTRL    	7.0		0.0
      [5]	EKF2_EV_QMIN    	0.0		1.0
      
      Would you like to continue with the parameter differences listed above? (y/n)
      y
      
      [INFO] Setting params...
      [INFO] PX4 parameter configuration successful!
      Select an option:
      [1] Quit
      [2] Reset ALL PX4 params to default
      [3] experimental_do_not_use
      [4] EKF2_helpers
      [5] battery_helpers
      [6] ci_helpers
      [7] voxl2_io_helpers
      [8] other_helpers
      [9] platforms
      [10] radio_helpers
      [11] voa_helpers
      [12] calibration files
      1
      voxl2:/$ 
      

      Then reboot the Starling and PX4 should be configured to use the VIO data.

      posted in VOXL Dev Kits
      James StrawsonJ
      James Strawson