ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. kestrelsystemsbp
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 16
    • Best 0
    • Controversial 0
    • Groups 0

    Posts made by kestrelsystemsbp

    • Camera access

      I am trying to implement a program on the Starling 2 Max that is able to use the downwards facing camera to detect objects that I have specified in the code, such as shapes and certain colors, but I am uncertain about how to access the camera within the Python code?

      posted in VOXL 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: Camera calibration

      @Alex-Kushleyev
      We have not really tried any sort of camera calibration before so there are no preferred methods, but I suppose the easier the better.

      We want to calibrate the IMX412 mounted underneath the drone. I believe 4k is not necessary for AprilTag detection, so 1080p is sufficient.

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • Camera calibration

      We want to use AprilTags to perform precise landings on our Starling 2, but from what we have read the cameras need to be calibrated to utilize this functionality. When running "voxl-calibrate-camera tracking_front" is says that we need to use the portal, but the portal is extremely unstable and crashes almost immediately. Therefore we are wondering if it is possible to calibrate the cameras without the portal?

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: Cannot connect with controller after software update

      @tom It's okay, I managed to figure it out. Just had to change the RC protocol in the px4-conf file.

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: Cannot connect with controller after software update

      @tom I am not entirely sure how I check that

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: Cannot connect with controller after software update

      @tom The controller uses LoRa/FLRC

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • Cannot connect with controller after software update

      Recently upgraded from 1.3.5 to 1.4.1 on our Starling 2 Max drones, but now it seems that they cannot connect with their controllers. Are there any updates or configurations that need to be done with the controllers as well?

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: PX4 stops running

      @tom That did the trick, thanks for the help!

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: PX4 stops running

      @Eric-Katzfey How do I do that?

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: PX4 stops running

      @Eric-Katzfey sdk.png

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: PX4 stops running

      @tom
      #!/bin/sh

      PX4 commands need the 'px4-' prefix in bash.

      (px4-alias.sh is expected to be in the PATH)

      . px4-alias.sh

      echo -e "\n*************************"
      echo "AIRFRAME: $AIRFRAME"
      echo "GPS: $GPS"
      echo "RC: $RC"
      echo "ESC: $ESC"
      echo "POWER MANAGER: $POWER_MANAGER"
      echo "AIRSPEED SENSOR: $AIRSPEED_SENSOR"
      echo "DISTANCE SENSOR: $DISTANCE_SENSOR"
      echo "OSD: $OSD"
      echo "ARTIFACT_MODE: $ARTIFACT_MODE"
      echo "EXTRA STEPS:"
      for i in "${EXTRA_STEPS[@]}"
      do
      echo -e "\t$i"
      done
      echo -e "*************************\n"

      In order to just exit after starting the uorb / muorb modules define

      the environment variable MINIMAL_PX4. (e.g. export MINIMAL_PX4=1)

      This is useful for testing / debug where you may want to start drivers

      and modules manually from the px4 command shell

      if [ ! -z $MINIMAL_PX4 ]; then
      /bin/echo "Running minimal script"
      exit 0
      fi

      Figure out what platform we are running on.

      PLATFORM=/usr/bin/voxl-platform 2> /dev/null
      RETURNCODE=$?
      if [ $RETURNCODE -ne 0 ]; then
      # If we couldn't get the platform from the voxl-platform utility then check
      # /etc/version to see if there is an M0052 substring in the version string. If so,
      # then we assume that we are on M0052.
      VERSIONSTRING=$(</etc/version)
      M0052SUBSTRING="M0052"
      if [[ "$VERSIONSTRING" == "$M0052SUBSTRING" ]]; then
      PLATFORM="M0052"
      fi
      fi

      We can only run on M0052, M0054, or M0104 so exit with error if that is not the case

      if [ $PLATFORM = "M0052" ]; then
      /bin/echo "Running on M0052"
      elif [ $PLATFORM = "M0054" ]; then
      /bin/echo "Running on M0054"
      elif [ $PLATFORM = "M0104" ]; then
      /bin/echo "Running on M0104"
      else
      /bin/echo "Error, cannot determine platform!"
      exit 0
      fi

      Sleep a little here. A lot happens when the uorb and muorb start

      and we need to make sure that it all completes successfully to avoid

      any possible race conditions.

      /bin/sleep 1

      param select /data/px4/param/parameters

      Load in all of the parameters that have been saved in the file

      param load

      if [ "$ARTIFACT_MODE" == "ENABLE" ]; then
      # Do not start the logger module if we are in artifact mode. Logging
      # produces a log artifact. If there are currently any saved logs make
      # sure to delete them now.
      # Also remove the data manager file that may have saved GPS waypoint information
      # in it.
      # Use shred to remove all files so that they cannot be recovered.
      # shred should be effective on the /data partition since it has this configuration:
      # /dev/sda8 /data ext4 rw,nosuid,nodev,noatime,discard,noauto_da_alloc,data=ordered 0 0
      /usr/bin/find /data/px4/log -name "*.ulg" -exec /usr/bin/shred -u -n 7 {} ;
      /bin/rm -fR /data/px4/log
      /usr/bin/shred -u -n 7 /data/px4/dataman
      /bin/echo "Artifact mode has been enabled"
      else
      # Start logging and use timestamps for log files when possible.
      # Add the "-e" option to start logging immediately. Default is
      # to log only when armed. Caution must be used with the "-e" option
      # because if power is removed without stopping the logger gracefully then
      # the log file may be corrupted.
      logger start -t
      fi

      IMU (accelerometer / gyroscope)

      if [ "$PLATFORM" == "M0104" ]; then
      /bin/echo "Starting IMU driver with rotation 12"
      qshell icm42688p start -s -R 12
      else
      /bin/echo "Starting IMU driver with no rotation"
      qshell icm42688p start -s
      fi

      Start Invensense ICP 101xx barometer built on to VOXL 2

      qshell icp101xx start -I -b 5

      Auto detect the magnetometer. If one or both of these devices

      are not connected it will fail but not cause any harm.

      /bin/echo "Looking for qmc5883l magnetometer"
      qshell qmc5883l start -R 10 -X -b 1
      /bin/echo "Looking for ist8310 magnetometer"
      qshell ist8310 start -R 10 -X -b 1

      GPS and magnetometer

      if [ "$GPS" != "NONE" ]; then
      # On M0052 the GPS driver runs on the apps processor
      if [ $PLATFORM = "M0052" ]; then
      gps start -d /dev/ttyHS2
      # On M0054 and M0104 the GPS driver runs on SLPI DSP
      else
      qshell gps start
      fi
      fi

      Auto detect an ncp5623c i2c RGB LED. If one isn't connected this will

      fail but not cause any harm.

      /bin/echo "Looking for ncp5623c RGB LED"
      qshell rgbled_ncp5623c start -X -b 1 -f 400 -a 56

      We do not change the following parameters but QGC will complain if they aren't

      being reported as "used" by px4. "Touching" them accomplishes that.

      param touch SYS_AUTOCONFIG
      param touch SDLOG_MODE

      ESC driver

      if [ "$ESC" == "VOXL_ESC" ]; then
      /bin/echo "Starting VOXL ESC driver"
      qshell voxl_esc start
      elif [ "$ESC" == "VOXL2_IO_PWM_ESC" ]; then
      if [ "$RC" == "M0065_SBUS" ]; then
      /bin/echo "Starting VOXL IO for PWM ESC with SBUS RC"
      qshell voxl2_io start
      else
      /bin/echo "Starting VOXL IO for PWM ESC without SBUS RC"
      qshell voxl2_io start -e
      fi
      else
      /bin/echo "No ESC type specified, not starting an ESC driver"
      fi

      RC driver

      if [ "$RC" == "FAKE_RC_INPUT" ]; then
      /bin/echo "Starting fake RC driver"
      qshell rc_controller start
      elif [ "$RC" == "CRSF_RAW" ]; then
      /bin/echo "Starting CRSF RC driver"
      qshell crsf_rc start -d 7
      elif [ "$RC" == "CRSF_MAV" ]; then
      /bin/echo "Starting TBS crossfire RC - MAV Mode"
      qshell mavlink_rc_in start -m -p 7 -b 115200
      elif [ "$RC" == "SPEKTRUM" ]; then
      /bin/echo "Starting Spektrum RC"
      # On M0052 the RC driver runs on the apps processor
      if [ $PLATFORM = "M0052" ]; then
      rc_input start -d /dev/ttyHS1
      # On M0054 and M0104 the RC driver runs on SLPI DSP
      else
      qshell spektrum_rc start
      fi
      elif [ "$RC" == "GHST" ]; then
      /bin/echo "Starting GHST RC driver"
      qshell ghst_rc start -d 7
      elif [ "$RC" == "M0065_SBUS" ]; then
      if [ $PLATFORM = "M0052" ]; then
      apps_sbus start
      elif [ "$ESC" != "VOXL2_IO_PWM_ESC" ]; then
      /bin/echo "Attempting to start M0065 SBUS RC driver for original M0065 FW"
      qshell dsp_sbus start
      retVal=$?
      if [ $retVal -ne 0 ]; then
      /bin/echo "Starting M0065 SBUS RC driver for original M0065 FW failed"
      /bin/echo "Attempting to start M0065 SBUS RC driver for new M0065 FW"
      qshell voxl2_io start -d -p 7
      fi
      else
      /bin/echo "M0065 SBUS RC driver already started with PWM ESC start"
      fi
      fi

      if [ "$DISTANCE_SENSOR" == "LIGHTWARE_SF000" ]; then
      # Make sure to set the parameter SENS_EN_SF0X to 8 for sf000/b sensor
      qshell lightware_laser_serial start -d 7
      fi

      if [ "$POWER_MANAGER" == "VOXLPM" ]; then
      # APM power monitor
      qshell voxlpm start -X -b 2
      fi

      if [ "$AIRSPEED_SENSOR" == "MS4525DO" ]; then
      qshell ms4525do start -X -b 4
      fi

      Optional distance sensor on spare i2c

      qshell vl53l0x start -X -b 4

      qshell vl53l1x start -X -b 4

      Start all of the processing modules on DSP

      qshell sensors start
      qshell ekf2 start

      if [ "$AIRFRAME" == "FIXED_WING" ]; then
      qshell fw_pos_control start
      qshell fw_att_control start
      qshell fw_rate_control start
      qshell airspeed_selector start
      qshell fw_autotune_attitude_control start
      qshell land_detector start fixedwing
      elif [ $AIRFRAME = "MULTICOPTER" ]; then
      qshell mc_pos_control start
      qshell mc_att_control start
      qshell mc_rate_control start
      qshell mc_hover_thrust_estimator start
      qshell mc_autotune_attitude_control start
      qshell land_detector start multicopter
      fi

      qshell manual_control start
      qshell control_allocator start
      qshell load_mon start

      Only start the rc_update module if an actual RC driver

      is publishing input_rc topics. Otherwise for external RC

      over Mavlink this isn't needed.

      if [ "$RC" != "EXTERNAL" ]; then
      qshell rc_update start
      fi

      qshell commander start

      This is needed for altitude and position hold modes

      qshell flight_mode_manager start

      Start all of the processing modules on the applications processor

      dataman start
      navigator start
      load_mon start

      This bridge allows raw data packets to be sent over UART to the ESC

      modal_io_bridge start

      Start microdds_client for ros2 offboard messages from agent over localhost

      microdds_client start -t udp -h 127.0.0.1 -p 8888

      On M0052 there is only one IMU. So, PX4 needs to

      publish IMU samples externally for VIO to use.

      if [ $PLATFORM = "M0052" ]; then
      imu_server start
      fi

      start the onboard fast link to connect to voxl-mavlink-server

      mavlink start -x -u 14556 -o 14557 -r 100000 -n lo -m onboard

      slow down some of the fastest streams

      mavlink stream -u 14556 -s HIGHRES_IMU -r 10
      mavlink stream -u 14556 -s ATTITUDE -r 10
      mavlink stream -u 14556 -s ATTITUDE_QUATERNION -r 10
      mavlink stream -u 14556 -s GLOBAL_POSITION_INT -r 30
      mavlink stream -u 14556 -s SCALED_PRESSURE -r 10

      start the slow normal mode for voxl-mavlink-server to forward to GCS

      mavlink start -x -u 14558 -o 14559 -r 100000 -n lo

      mavlink boot_complete

      Optional MSP OSD driver for DJI or HDZero goggles

      This is only supported on M0054 (with M0125 accessory board)

      if [ "$OSD" == "ENABLE" ] || [ "$OSD" == "DJI" ]; then
      /bin/echo "Starting DJI OSD driver"
      msp_osd start -d /dev/ttyHS1
      elif [ "$PLATFORM" == "M0054" ] && [ "$OSD" == "HDZERO" ] || [ "$OSD" == "DJI_MSP_DP" ]; then
      /bin/echo "Starting $OSD OSD driver for $PLATFORM"
      msp_dp_osd start -d /dev/ttyHS1
      elif [ "$PLATFORM" == "M0104" ] && [ "$OSD" == "HDZERO" ] || [ "$OSD" == "DJI_MSP_DP" ] ; then
      /bin/echo "Starting $OSD OSD driver for $PLATFORM"
      msp_dp_osd start -d /dev/ttyHS0
      fi

      Start optional EXTRA_STEPS

      for i in "${EXTRA_STEPS[@]}"
      do
      $i
      done

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: PX4 stops running

      @Eric-Katzfey Have not done any modifications to the software other than basic setup stuff for QGC.

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: PX4 stops running

      @tom Screenshot 2025-03-24 161036.png Screenshot 2025-03-24 161001.png

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • RE: PX4 stops running

      @Eric-Katzfey px4 output.png
      This is what I get when I try to start PX4 back up again.

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • PX4 stops running

      We are using two starling 2 drones for our project. On the first drone voxl-px4 starts automatically at boot and runs without problems, but on the second drone px4 needs to be manually set to run. This would not be a huge problem in itself, but px4 always end up stopping after a few minutes. I have looked into the logfile of px4 and it shows that on February 27th px4 was stopped, but what was done that day in particular is difficult to remember in hinsight

      stopped px4.png

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp
    • Starling 2 GPS Count

      Are there any procedures one needs to initiate in order to get the GPS working? Because I constantly have a GPS Count of 0, and I have tried looking around on the internet to find any tips about it.

      gps not working.png

      posted in Starling & Starling 2
      kestrelsystemsbpK
      kestrelsystemsbp