ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. greg_s
    3. Posts
    G
    • Profile
    • Following 0
    • Followers 0
    • Topics 7
    • Posts 23
    • Best 0
    • Controversial 0
    • Groups 0

    Posts made by greg_s

    • RE: Starling 2 flying into ceiling

      Hello @Cliff-Wong,

      Yes, I flew the drone around the room in position mode until the map was generated. I then flipped the remote to offboard with 'trajectory' set. Here are the files below:

      /**

      • VOXL Vision PX4 Configuration File
      • version: don't touch this, used to keep track of changing config file formats
      • ##############################################################################
      • MAVROS MAVSDK

      • ##############################################################################
      • en_localhost_mavlink_udp:
      •     If you are running MAVROS/MAVSDK onboard VOXL and wish to open access to
        
      •     PX4 through a localhost UDP port simply ensure the follow feature is
        
      •     enabled. This is set to true by default. This will allow one local process
        
      •     to communicate with PX4 via port 14551 by default, NOT 14550 which is
        
      •     reserved for connections outside the board. These separation prevents
        
      •     conflicts between the two sockets. Both MAVROS and MAVSDK can be
        
      •     configured to use this port.
        
      • localhost_udp_port_number:
      •     Port number for localhost UDP socket, default 14551
        
      • ##############################################################################
      • VIO

      • ##############################################################################
      • en_vio:
      •     Enable processing of VIO data from MPA to be sent to PX4 as mavlink
        
      •     odometry messages. Enabled by default.
        
      • vio_pipe:
      •     Primary pipe to subscribe to for VIO data. Must be a standard libmodal-pipe
        
      •     vio_data_t type. Default is qvio. If no data is available on this pipe
        
      •     then voxl-vision-hub will subscribe to secondary_vio_pipe instead.
        
      • secondary_vio_pipe:
      •     Secondary pipe to subscribe to for VIO data. Must be a standard libmodal-pipe
        
      •     vio_data_t type. Default is ov for openvins. If no data is available on this
        
      •     pipe then voxl-vision-hub will subscribe to the primary vio_pipe instead.
        
      •     Set to an empty string to disable. Default: ov
        
      • en_reset_vio_if_initialized_inverted:
      •     For VIO algorithms like qVIO that can initialize in any orientation
        
      •     and output their estimate of the gravity vector, we suggest leaving
        
      •     this enabled to allow vvpx4 to automatically send the reset signal
        
      •     back to the VIO pipe if VIO was initialized upside-down or sufficiently
        
      •     off-level. Helpful if the user powers on a drone while carrying it to
        
      •     the flight area and VIO starts too early.
        
      • vio_warmup_s:
      •     Wait this for this amount of time of having good VIO data before
        
      •     actually starting to send to PX4. This helps stop EKF2 getting
        
      •     confused if VIO flickers in and out while struggling to init.
        
      •     Set to 0 to disable the feature.
        
      • send_odom_while_failed:
      •     On by default. Send Odometry messages to PX4 with a quality of -1 when
        
      •     VIO indicates a failure so EKF2 can start dead reckoning.
        
      •     This MAY need to be turned off with PX4 versions older than 1.14
        
      •     since the quality metric was no implemented prior to PX4 1.14
        
      • ##############################################################################
      • APQ8096-only Features

      • ##############################################################################
      • en_set_clock_from_gps:
      •     Enable setting the VOXL system time to GPS time if no NTP server can be
        
      •     reached via network to set the time.
        
      • en_force_onboard_mav1_mode:
      •     Force PX4 to use onboard mode for mavlink 1 channel which is the channel
        
      •     apq8096 (VOXL1) uses to communicate UART Mavlink with PX4. Not applicable
        
      •     to qrb5165-based platforms. Sets the MAV1_MODE PX4 param.
        
      • en_reset_px4_on_error:
      •     Trigger a reboot of PX4 one some of PX4's unrecoverable errors,
        
      •     Not applicable to qrb5165
        
      •     Yaw estimate error & High Accelerometer Bias and both detected
        
      • ##############################################################################
      • Misc Features

      • ##############################################################################
      • horizon_cal_tolerance:
      •     Allowable standard deviation in roll/pitch values to consider the drone
        
      •     stable enough in flight to do a PX4 horizon calibration. Default is 0.45,
        
      •     you can increase this slightly if flying in a small indoor area or with
        
      •     a drone that does not hold still very well.
        
      •     See https://docs.modalai.com/calibrate-px4-horizon/
        
      • en_hitl:
      •     Enable Hardware In The Loop (HITL) testing extensions. Disabled by default.
        
      • ##############################################################################
      • offboard mode config

      • ##############################################################################
      • offboard_mode: The following are valid strings
      • off: VVPX4 will not send any offboard commands to PX4
        
      • figure_eight: Default value, VVPX4 commands PX4 to fly a figure 8 path
        
      • follow_tag: Drone will follow an apriltag around. Very dangerous, not
        
      •             recommended for customer use, for ModalAI R&D only.
        
      • trajectory: VVPX4 receives polynomial trajectories by pipe and commands
        
      •             PX4 to follow the trajectory path. Still in development.
        
      • backtrack:  Drone will replay, in reverse order, the last few seconds of it's
        
      •             position including yaw. This is useful when the drone loses
        
      •             the communication link and needs to get back to a place where
        
      •             it is able to regain the link. This mode will notice when the
        
      •             RC link goes away and sends a command to px4 to enter offboard mode.
        
      • wps:        read waypoints in local coordinate system
        
      • follow_tag_id:
      •     Apriltag ID to follow in follow_tag mode
        
      • figure_eight_move_home:
      •     Enable by default, resets the center of the figure 8 path to wherever
        
      •     the drone is when flipped into offboard mode. When disabled, the drone
        
      •     will quickly fly back to the XYZ point 0,0,-1.5 in VIO frame before
        
      •     starting the figure 8. Disabling this feature can be dangerous if VIO
        
      •     has drifted significantly.
        
      • wps_move_home:
      •     Enable by default, resets the center of the wps path to wherever
        
      •     the drone is when flipped into offboard mode. When disabled, the drone
        
      •     will quickly fly back to the XYZ point 0,0,-1.5 in VIO frame before
        
      •     starting the figure 8. Disabling this feature can be dangerous if VIO
        
      •     has drifted significantly.
        
      • robot_radius:
      •     Robot radius to use when checking collisions within the trajectory monitor.
        
      •     The trajectory monitor is only active when in trajectory mode
        
      • collision_sampling_dt:
      •     The time step to sample along the polynomials by when checking for collisions
        
      •     in the collision monitor.
        
      • max_lookahead_distance:
      •     Maximum distance to look along the trajectory. Sensor data further out can be
        
      •     unrealiable so keeping this value small reduces false positives
        
      • backtrack_seconds:
      •     Number of seconds worth of position data to store for replay in backtrack mode.
        
      • backtrack_rc_chan:
      •     RC channel to monitor for transitions into and out of backtrack mode.
        
      • backtrack_rc_thresh:
      •     Value above which backtrack is considered enabled on the configured RC channel.
        
      • ##############################################################################
      • Fixed Frame Tag Relocalization

      • ##############################################################################
      • en_tag_fixed_frame:
      •     Enable fixed frame relocalization via voa_inputs.
        
      •     See: https://docs.modalai.com/voxl-vision-px4-apriltag-relocalization/
        
      • fixed_frame_filter_len:
      •     Length of the moving average filter to use for smooth relocalization
        
      •     when a tag is detected. Default is 5, a longer filter will result in
        
      •     smoother behavior when a new tag comes into view. Set to 1 to do no
        
      •     filtering at all and assume every tag detection is accurate.
        
      • en_transform_mavlink_pos_setpoints_from_fixed_frame:
      •     When enabled, mavlink position_target_local_ned_t commands received on
        
      •     via UDP will be assumed to be in fixed frame and are then transformed
        
      •     to local frame before being sent to PX4. This allows offboard mode
        
      •     position commands from MAVROS/MAVSDK to be in fixed frame relative to
        
      •     voa_inputs even though PX4/EKF2 operates in local frame relative to where
        
      •     VIO initialized.
        
      • ##############################################################################
      • Collision Prevention (VOA)

      • Settings for configuring Mavlink data sent to Autopilot for VOA

      • ##############################################################################
      • en_voa:
      •     Enable processing of DFS and TOF data to be sent to PX4 as mavlink
        
      •     obstacle_distance messages for collision prevention in position mode.
        
      • voa_lower_bound_m & voa_upper_bound_m:
      •     VOA ignores obstacles above and below the upper and lower bounds.
        
      •     Remember, Z points downwards in body and NED frames, so the lower bound
        
      •     is a positive number, and the upper bound is a negative number.
        
      •     Defaults are lower: 0.15  upper: -0.15 Units are in meters.
        
      • voa_memory_s:
      •     number of seconds to keep track of sensor readings for VOA
        
      •     default: 1.0
        
      • voa_max_pc_per_fusion:
      •     maximum number of sensor samples (points clouds) to fuse for every
        
      •     mavlink transmision. Default is 100 so that voa_memory_s determines
        
      •     when to discard old data instead. set this to 1 if you only want to use
        
      •     the most recent sensor sample for example. If you start severly limiting
        
      •     the number of point clouds used per fusion, you will also need to lower
        
      •     voa_pie_threshold.
        
      • voa_pie_min_dist_m:
      •     minimum distance from the drone's center of mass to consider a sensor
        
      •     sample a valid point for mavlink transmission.
        
      • voa_pie_max_dist_m:
      •     minimum distance from the drone's center of mass to consider a sensor
        
      •     sample a valid point for mavlink transmission. Note this is and can be
        
      •     different from the individual sensor limits.
        
      • voa_pie_under_trim_m:
      •     VOA discards points in a bubble under the drone with this radius.
        
      •     default 1.0. This helps the drone approach an obstacle, stop
        
      •     ascend, and continue forward smoothly over the top.
        
      • voa_pie_threshold:
      •     Minimum number of points that must appear in and adjacent to a pie
        
      •     segment to consider it populated. Default 3
        
      • voa_send_rate_hz:
      •     Rate to send VOA mavlink data to autopilot. Independent from the
        
      •     sensor input rates. Default 20
        
      • voa_pie_slices:
      •     number of slices to divide the 360 degree span around the drone into.
        
      •     default 36 (10 degree slices)
        
      • voa_pie_bin_depth_m:
      •     Radial depth of each bin during the pie binning step. Default 0.15
        
      • ##############################################################################
      • Collision Prevention (VOA) Input Configuration

      • Settings for configuring pipe data sources for VOA

      • ##############################################################################
      • voa_inputs:
      •     Array of pipes to subscribe to for use with VOA, up to 10 supported
        
      •     Each entry has 4 fields:
        
      • Fields:
      • enabled: true or false, it's safe to leave this enabled when the pipe is missing
      • type: can be point_cloud, tof, or rangefinder
      • input_pipe: pipe name, e.g. stereo_front_pc, rangefinders, tof, etc
      • frame: frame of reference, should be listed in /etc/modalai/extrinsics/conf
      • max_depth: trim away points with z greater than this
      • min_depth: trim away points with z less than this
      • cell_size: size of 3d voxel grid cells, increase for more downsampling
      • threshold: num points that must exist in or adjacent to a cell to consider it
      •                  populated, set to 1 to disable threasholding
        
      • x_fov_deg: FOV of the sensor in the x direction, typically width
      • y_fov_deg: FOV of the sensor in the y direction, typically height
      • conf_cutoff: discard points below this confidence, only applicable to TOF

      */
      {
      "config_file_version": 1,
      "en_localhost_mavlink_udp": false,
      "localhost_udp_port_number": 14551,
      "en_vio": true,
      "vio_pipe": "qvio",
      "secondary_vio_pipe": "ov",
      "vfc_vio_pipe": "ov",
      "en_reset_vio_if_initialized_inverted": true,
      "vio_warmup_s": 3,
      "send_odom_while_failed": true,
      "horizon_cal_tolerance": 0.5,
      "en_hitl": false,
      "offboard_mode": "trajectory",
      "follow_tag_id": 0,
      "figure_eight_move_home": true,
      "robot_radius": 0.300000011920929,
      "collision_sampling_dt": 0.1,
      "max_lookahead_distance": 1,
      "backtrack_seconds": 60,
      "backtrack_rc_chan": 8,
      "backtrack_rc_thresh": 1500,
      "wps_move_home": true,
      "wps_stride": 0,
      "wps_timeout": 0,
      "wps_damp": 1,
      "wps_vfc_mission": true,
      "wps_vfc_mission_loop": false,
      "wps_vfc_mission_to_ramp": 25,
      "wps_vfc_mission_to_kp": 0.10000000149011612,
      "wps_vfc_mission_cruise_speed": 1,
      "en_tag_fixed_frame": false,
      "fixed_frame_filter_len": 5,
      "en_transform_mavlink_pos_setpoints_from_fixed_frame": false,
      "vfc_rate": 100,
      "vfc_rc_chan_min": 980,
      "vfc_rc_chan_max": 2020,
      "vfc_thrust_ch": 3,
      "vfc_roll_ch": 1,
      "vfc_pitch_ch": 2,
      "vfc_yaw_ch": 4,
      "vfc_submode_ch": 6,
      "vfc_alt_mode_rc_min": 0,
      "vfc_alt_mode_rc_max": 0,
      "vfc_flow_mode_rc_min": 0,
      "vfc_flow_mode_rc_max": 0,
      "vfc_hybrid_flow_mode_rc_min": 0,
      "vfc_hybrid_flow_mode_rc_max": 0,
      "vfc_position_mode_rc_min": 0,
      "vfc_position_mode_rc_max": 2100,
      "vfc_traj_mode_rc_min": 0,
      "vfc_traj_mode_rc_max": 0,
      "vfc_yaw_deadband": 30,
      "vfc_vxy_deadband": 50,
      "vfc_vz_deadband": 150,
      "vfc_min_thrust": 0,
      "vfc_max_thrust": 0.800000011920929,
      "vfc_tilt_max": 0.43599998950958252,
      "vfc_yaw_rate_max": 3,
      "vfc_thrust_hover": 0.5,
      "vfc_vz_max": 1,
      "vfc_kp_z": 5.2899999618530273,
      "vfc_kd_z": 5.9800000190734863,
      "vfc_vxy_max": 3,
      "vfc_kp_xy": 0.63999998569488525,
      "vfc_kd_xy": 2.559999942779541,
      "vfc_kp_z_vio": 5.2899999618530273,
      "vfc_kd_z_vio": 5.9800000190734863,
      "vfc_kp_xy_vio": 3.2400000095367432,
      "vfc_kd_xy_vio": 3.9600000381469727,
      "vfc_w_filt_xy_vio": 10,
      "vfc_w_filt_xy_flow": 3,
      "vfc_vel_ff_factor_vio": 0.899999976158142,
      "vfc_xy_acc_limit_vio": 2.5,
      "vfc_max_z_delta": 3,
      "vfc_att_transition_time": 0.5,
      "vfc_stick_move_threshold": 30,
      "vfc_flow_transition_time": 1,
      "vfc_q_min": 10,
      "vfc_points_min": 7,
      "vfc_en_submode_announcement": 1,
      "vfc_disable_fallback": false,
      "vfc_traj_csv": "/data/voxl-vision-hub/traj.csv",
      "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
      }]
      }


      /**

      • This file contains configuration that's specific to voxl-open-vins-server.

      • NOTE: all time variables are measured in seconds

      • OpenVins param breakdown:

      • do_fej: whether or not to do first estimate Jacobians

      • imu_avg: whether or not use imu message averaging

      • use_rk4_integration: if we should use Rk4 imu integration.

      • cam_to_imu_refinement: whether or not to refine the imu-to-camera pose

      • cam_intrins_refinement: whether or not to refine camera intrinsics

      • cam_imu_ts_refinement: whether or not to calibrate cam to IMU time offset

      • max_clone_size: max clone size of sliding window

      • max_slam_features: max number of estimated SLAM features

      • max_slam_in_update: max number of SLAM features in a single EKF update

      • max_msckf_in_update: max number of MSCKF features used at an image timestep

      • Feature Reps can be any of the following:

      • 0 - GLOBAL_3D

      • 1 - GLOBAL_FULL_INVERSE_DEPTH

      • 2 - ANCHORED_3D

      • 3 - ANCHORED_FULL_INVERSE_DEPTH

      • 4 - ANCHORED_MSCKF_INVERSE_DEPTH

      • 5 - ANCHORED_INVERSE_DEPTH_SINGLE

      • feat_rep_msckf: (int) what representation our msckf features are in

      • feat_rep_slam: (int) what representation our slam features are in

      • cam_imu_time_offset: time offset between camera and IMU

      • slam_delay: delay that we should wait from init before estimating SLAM features

      • gravity_mag: gravity magnitude in the global frame

      • init_window_time: amount of time to initialize over

      • init_imu_thresh: variance threshold on our accel to be classified as moving

      • imu_sigma_w: gyroscope white noise (rad/s/sqrt(hz))

      • imu_sigma_wb: gyroscope random walk (rad/s^2/sqrt(hz))

      • imu_sigma_a: accelerometer white noise (m/s^2/sqrt(hz))

      • imu_sigma_ab: accelerometer random walk (m/s^3/sqrt(hz))

      • imu_sigma_w_2: gyroscope white noise covariance

      • imu_sigma_wb_2: gyroscope random walk covariance

      • imu_sigma_a_2: accelerometer white noise covariance

      • imu_sigma_ab_2: accelerometer random walk covariance

      • ****_chi2_multiplier: what chi-squared multipler we should apply

      • ****_sigma_px: noise sigma for our raw pixel measurements

      • ****_sigma_px_sq: covariance for our raw pixel measurements

      • use_stereo: if feed_measurement_camera is called with more than one

      • image, this determines behavior. if true, they are treated as a stereo

      • pair, otherwise treated as binocular system

      • if you enable a camera with stereo in the name, this will be set to true

      • automatically

      • try_zupt: if we should try to use zero velocity update

      • zupt_max_velocity: max velocity we will consider to try to do a zupt

      • zupt_only_at_beginning: if we should only use the zupt at the very beginning

      • zupt_noise_multiplier: multiplier of our zupt measurement IMU noise matrix

      • zupt_max_disparity: max disparity we will consider to try to do a zupt

      • NOTE: set zupt_max_disparity to 0 for only imu based zupt, and

      • zupt_chi2_multipler to 0 for only display based zupt

      • num_pts: number of points we should extract and track in each image frame

      • fast_threshold: fast extraction threshold

      • grid_x: number of column-wise grids to do feature extraction in

      • grid_y: number of row-wise grids to do feature extraction in

      • min_px_dist: after doing KLT track will remove any features closer than this

      • knn_ratio: KNN ration between top two descriptor matchers for good match

      • downsample_cams: will half image resolution

      • use_nultithreading: if we should use multi-threading for stereo matching

      • use_mask: if we should load a mask and use it to reject invalid features
        */
        {
        "en_auto_reset": true,
        "auto_reset_max_velocity": 20,
        "auto_reset_max_v_cov_instant": 0.10000000149011612,
        "auto_reset_max_v_cov": 0.10000000149011612,
        "auto_reset_max_v_cov_timeout_s": 0.5,
        "auto_reset_min_features": 1,
        "auto_reset_min_feature_timeout_s": 3,
        "auto_fallback_timeout_s": 3,
        "auto_fallback_min_v": 0.600000023841858,
        "en_cont_yaw_checks": false,
        "fast_yaw_thresh": 5,
        "fast_yaw_timeout_s": 1.75,
        "do_fej": true,
        "imu_avg": true,
        "use_rk4_integration": true,
        "cam_to_imu_refinement": true,
        "cam_intrins_refinement": true,
        "cam_imu_ts_refinement": true,
        "max_clone_size": 8,
        "max_slam_features": 35,
        "max_slam_in_update": 10,
        "max_msckf_in_update": 10,
        "feat_rep_msckf": 4,
        "feat_rep_slam": 4,
        "cam_imu_time_offset": 0,
        "slam_delay": 1,
        "gravity_mag": 9.80665,
        "init_window_time": 1,
        "init_imu_thresh": 1,
        "imu_sigma_w": 0.00013990944749616306,
        "imu_sigma_wb": 4.1189724174615527e-07,
        "imu_sigma_a": 0.0038947538150776763,
        "imu_sigma_ab": 5.538346201712153e-05,
        "msckf_chi2_multiplier": 1,
        "slam_chi2_multiplier": 40,
        "zupt_chi2_multiplier": 1,
        "refine_features": true,
        "pyr_levels": 6,
        "grid_x": 5,
        "grid_y": 5,
        "msckf_sigma_px": 1,
        "slam_sigma_px": 1.8,
        "zupt_sigma_px": 1,
        "try_zupt": true,
        "zupt_max_velocity": 0.03,
        "zupt_only_at_beginning": true,
        "zupt_noise_multiplier": 1,
        "zupt_max_disparity": 8,
        "init_dyn_use": false,
        "triangulate_1d": false,
        "max_runs": 5,
        "init_lamda": 0.001,
        "max_lamda": 10000000000,
        "min_dx": 1e-06,
        "min_dcost": 1e-06,
        "lam_mult": 10,
        "min_dist": 0.1,
        "max_dist": 60,
        "max_baseline": 40,
        "max_cond_number": 600000,
        "use_mask": false,
        "use_stereo": false,
        "use_baro": false,
        "num_opencv_threads": 4,
        "fast_threshold": 15,
        "histogram_method": 1,
        "knn_ratio": 0.7,
        "takeoff_accel_threshold": 0.5,
        "takeoff_threshold": -0.1,
        "use_stats": false,
        "max_allowable_cep": 1,
        "en_force_init": false,
        "en_force_ned_2_flu": false,
        "en_imu_frame_output": false,
        "track_frequency": 15,
        "publish_frequency": 5,
        "en_vio_always_on": true,
        "en_ext_feature_tracker": false,
        "en_gpu_for_tracking": true,
        "num_features_to_track": 20,
        "raansac_gn": false,
        "raansac_tri": true,
        "en_thermal_enhance": false,
        "en_overlay_landscape": false,
        "thermal_brightness": 1,
        "thermal_brightness_bos": 1
        }

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Starling 2 flying into ceiling

      Hello. Checking in again if assistance can be provided and/or if more information is needed.

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Starling 2 flying into ceiling

      Hello. Just checking to see if there is any more data I can provide to help determine the issue. Is there some configuration that allows the drone to fly in the figure-8 without issue but not navigate within the map that has been generated?

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Starling 2 flying into ceiling

      @tom Thank you for the assistance on the previous topic. Is there a best way to diagnosis the navigation? The path appears fine, but the drone few straight upward into the ceiling before falling and breaking one of main battery clips next to the LED board.

      posted in Ask your questions right here!
      G
      greg_s
    • Starling 2 flying into ceiling

      Hello ModalAI Team,

      I have a Starling 2 drone:

      system-image: 1.8.02-M0054-14.1a-perf
      kernel: #1 SMP PREEMPT Mon Mar 24 22:31:58 UTC 2025 4.19.125
      hw platform: M0054
      mach.var: 1.0.1
      SKU: MRB-D0014-4-V1-C27-T8-M22-X0
      voxl-suite: 1.4.5

      Services:

      services.jpg

      When using the navigation of the Mapper, after plotting a location like this short route with no obstacles:
      navigation.jpg

      The drone flies up into the ceiling. The position mode works well though it can drift upwards some. The drone can run the figure 8 without any issue. So far, I am not sure what the issue with the navigation once the Mapper create the route. It am afraid the drone with break itself or something else in the room. I can attempt to send videos of the fly if they would be helpful.

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Calibrate Tracking Cameras Starling 2

      @tom It was a PX 4 Dev Kit. But, thanks for the help. I was able to get the cameras calibrated. I will testing the manual and hold position fly-modes before trying any cv-based flight/navigation. I'll start a new thread for any future questions.

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Calibrate Tracking Cameras Starling 2

      @tom Thanks. I ran the check calibration:

      voxl-check-calibration
      Calibration File Status:
      Present /data/modalai/voxl-imu-server.cal
      Missing /data/modalai/opencv_tracking_front_intrinsics.yml
      Missing /data/modalai/opencv_tracking_down_intrinsics.yml
      Missing /data/modalai/opencv_tracking_rear_intrinsics.yml
      Present /data/px4/param/parameters_gyro.cal
      Present /data/px4/param/parameters_acc.cal
      Present /data/px4/param/parameters_level.cal
      Present /data/px4/param/parameters_baro_tc.cal
      Present /data/px4/param/parameters_mag.cal

      I assume I should calibrate the tracking cameras still.

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Calibrate Tracking Cameras Starling 2

      @tom Thanks for the help. I followed your instructions and rebooted. When I inspect the services, I get the output:

      voxl2:~$ voxl-inspect-services
      Scanning services...

      Service Name | Enabled | Running | CPU Usage

      docker-autorun | Disabled | Not Running |
      modallink-relink | Disabled | Not Running |
      voxl-camera-server | Enabled | Running | 66.7%
      voxl-cpu-monitor | Enabled | Running | 0.0%
      voxl-dfs-server | Disabled | Not Running |
      voxl-elrs-startup | Disabled | Not Running |
      voxl-feature-tracker | Disabled | Not Running |
      voxl-flow-server | Disabled | Not Running |
      voxl-imu-server | Enabled | Running | 3.5%
      voxl-io-server | Disabled | Not Running |
      voxl-lepton-server | Disabled | Not Running |
      voxl-lepton-tracker | Disabled | Not Running |
      voxl-logger | Disabled | Not Running |
      voxl-mapper | Enabled | Running | 1.8%
      voxl-mavcam-manager | Enabled | Running | 0.0%
      voxl-mavlink-server | Enabled | Running | 3.5%
      voxl-modem | Disabled | Not Running |
      voxl-open-vins-server | Enabled | Not Running |
      voxl-osd | Disabled | Not Running |
      voxl-portal | Enabled | Running | 0.0%
      voxl-px4-imu-server | Disabled | Not Running |
      voxl-px4 | Enabled | Running | 24.6%
      voxl-qvio-server | Disabled | Not Running |
      voxl-rangefinder-server | Enabled | Not Running |
      voxl-remote-id | Disabled | Not Running |
      voxl-seek-server | Disabled | Not Running |
      voxl-softap | Disabled | Not Running |
      voxl-state-estimator | Disabled | Not Running |
      voxl-static-ip | 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.5%
      voxl-vrx | Disabled | Not Running |
      voxl-vtx | Disabled | Not Running |
      voxl-wait-for-fs | Enabled | Completed |

      Is there anything else I should check/configure before attempting to fly and use the mapper service?

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Calibrate Tracking Cameras Starling 2

      @tom The output is as follows:

      **voxl2:~$ voxl-configure-cameras

      Available camera config IDs are as follows:

      01 - ov7251 tracking ov7251 stereo
      02 - ov7251 tracking
      03 - ov7251 tracking ov7251 stereo imx214 hires
      04 - ov7251 tracking imx214 hires
      05 - pmd-tof ov7251 tracking
      06 - D0005 Starling pmd-tof imx214 hires ov7251 tracking
      08 - imx214
      09 - pmd-tof
      10 - ov7251 stereo
      11 - D0006 Sentinel
      12 - ov9782 stereo
      13 - ov9782 stereo imx214 hires
      14 - ov9782 stereo pmd-tof ov7251 tracking (copy)
      15 - D0008 dual 9782 tracking
      16 - pmd-tof ov7251 dual tracking imx214 hires
      17 - D0010 pmd-tof imx412 hires ov7251 tracking ov9782 stereo
      18 - D0008 triple ov9782
      19 - D0005 without tof imx214 hires ov7251 tracking
      20 - D0011 imx412 hires ar0144 tracking
      21 - old C6
      23 - D0010 without stereo
      24 - pmd-tof LIOW2 (new TOF)
      25 - dual ar0144
      31 - D0013 Prototype M0135 dual ar0144
      32 - D0008 triple ov9782 rotated
      C - use user-defined custom camera config in
      (/data/modalai/custom_camera_config.txt)
      q - Quit The Wizard**

      I don't see the option that I saw when using the sku wizard:

      **Available camera config IDs are as follows:

              Welcome to the voxl-configure-sku Wizard!
      

      VOXL currently thinks it is in the following hardware:

      family code: MRB-D0011 (px4-autonomy-dev-kit)
      compute board: 4 (voxl2)
      hw version: 1
      cam config: 20
      modem config: 0 (none)
      tx config: 7 (elrs_beta_fpv)
      extras config: 0 (none)
      SKU: MRB-D0011-4-V1-C20-T7-M0-X0

      If this is what you want, select 1 (accept and continue) to
      leave it as-is. Otherwise, select the desired product family:

      1. accept and continue 14) voxlcam
      2. starling-2 15) seeker-legacy
      3. starling-2-max 16) rb5-flight
      4. seeker-vision 17) flight-deck
      5. stinger 18) voxl-deck
      6. sparrow 19) voxl2-flight-deck
      7. seeker-max 20) voxl2-test-fixture
      8. starling-1-discontinued 21) voxl2-mini-test-fixture
      9. px4-autonomy-dev-kit 22) voxl2-board-only
      10. sentinel 23) voxl2-mini-board-only
      11. D0010 24) MVX-T0001
      12. D0015 25) MVX-R0001
      13. m500 26) quit
        #? 2
        selected starling-2

      If you would like to select a special camera config that differs
      from the default for your product family, please select an option.
      Simply hit ENTER to use the default

      01 - ov7251 tracking ov7251 stereo
      02 - ov7251 tracking
      03 - ov7251 tracking ov7251 stereo imx214 hires
      04 - ov7251 tracking imx214 hires
      05 - pmd-tof ov7251 tracking
      06 - D0005 Starling pmd-tof imx214 hires ov7251 tracking
      08 - imx214
      09 - pmd-tof
      10 - ov7251 stereo
      11 - D0006 Sentinel
      12 - ov9782 stereo
      13 - ov9782 stereo imx214 hires
      14 - ov9782 stereo pmd-tof ov7251 tracking (copy)
      15 - D0008 dual 9782 tracking
      16 - pmd-tof ov7251 dual tracking imx214 hires
      17 - D0010 pmd-tof imx412 hires ov7251 tracking ov9782 stereo
      18 - D0008 triple ov9782
      19 - D0005 without tof imx214 hires ov7251 tracking
      20 - D0011 imx412 hires ar0144 tracking
      21 - old C6
      23 - D0010 without stereo
      24 - pmd-tof LIOW2 (new TOF)
      25 - dual ar0144
      31 - D0013 Prototype M0135 dual ar0144
      32 - D0008 triple ov9782 rotated
      C - use user-defined custom camera config in
      (/data/modalai/custom_camera_config.txt)
      q - Quit The Wizard

      The default camera configs for Starling 2 are
      26 (imx412 hires, dual ar0144 tracking)
      27 (imx412 hires, triple ar0144 tracking)

      Simply hit ENTER to use the default

      selection: 27
      Selected numerical camera config

      For VOXL 2 and VOXL 2 Mini based drones, there are several transmitter options.
      Please select the appropriate one.

      Select a numeric option:
      0) none

      1. Spektrum
      2. TBS Crossfire
      3. ELRS (Beta FPV Default)
      4. ELRS (ModalAI M0184)
      5. Ghost
      6. ELRS (ModalAI M0193)
        #? 8

      For Starling 2 and Starling 2 Max drones, there is an optional lepton sensor.
      Is a lepton sensor installed on your drone? (-X8).

      1. yes
      2. no
        #? 2

      Select the modem hardware.
      Simply hit ENTER if none

      0 - none
      1 - unknown
      3 - Microhard v2, No Radio (M0048-3)
      4 - LTE v2, 7610 NA (M0030)
      5 - LTE v2, 7607 EMEA EOL (M0030)
      6 - LTE v2, No Modem (M0030)
      7 - VOXL 2 5G Quectel (M0067/M0090-3-01)
      8 - LTE v2, 7611 NA (M0030)
      9 - VOXL 2 5G Telit (M0090-1-03)
      10 - Microhard v2, pMDDL2350 (M0048)
      11 - Microhard v2, pMDDL2450(M0048)
      12 - LTE v2, 7620 EMEA (M0030)
      13 - M0078-2 w/ Alpha WiFi Dongle, AC600
      14 - VOXL 5G Telit (M0090-1-03)
      15 - VOXL 2 5G Quectel (M0090-3-01)
      16 - M0078-2 w/ Alfa Networks WiFi Dongle, AC1200
      17 - M0078-2 w/ Alfa Networks WiFi Dongle, AC600 (modified)
      18 - Doodle RM-2450, 2.4GHz
      19 - Doodle RM-2025, Hex Band
      20 - M0130 RC7611 (Americas)
      21 - M0130 RC7620 (EMEA)
      22 - M0141 w/ Alfa Networks WiFi Dongle AWUS036EACS
      23 - Doodle Mini-OEM, RM-1700-22M3 (915MHz, 2.4GHz)
      24 - M0090-3-2 Sierra EM9291)
      25 - VTX (M0176 + M0175)
      26 - VTX (M0185)
      27 - Microhard, pMDDL1621 (M0059-1)
      28 - M0151 w/ Alfa Networks WiFi Dongle AWUS036EACS
      29 - Microhard v2, pMDDL 1800 (M0048)
      30 - VRX (M0206, Mini Pini)
      31 - VRX (M0206, SparkLAN)
      32 - WaveMux
      2026 - M0130 RC7611 (Americas) + VTX (M0185)
      2126 - M0130 RC7620 (EMEA) + VTX (M0185)

      q - Quit The Wizard

      Simply hit ENTER if none

      selection: 22
      Selected numerical modem config

      Your answers would construct the following SKU:

      family code: MRB-D0014 (starling-2)
      compute board: 4 (voxl2)
      hw version: 1
      cam config: 27
      modem config: 22 (M0141 w/ Alfa Networks WiFi Dongle AWUS036EACS)
      tx config: 8 (elrs_m0184)
      extras config: 0 (none)
      SKU: MRB-D0014-4-V1-C27-T8-M22-X0

      This sku will be saved to persistent memory so VOXL
      will remember what it is installed in, even between
      system image flashes.

      Press enter to accept and continue.**

      The SKU wizard did throw an error for configuration 27

      available camera configurations are as follows:
      01 - ov7251 tracking ov7251 stereo
      02 - ov7251 tracking
      03 - ov7251 tracking ov7251 stereo imx214 hires
      04 - ov7251 tracking imx214 hires
      05 - pmd-tof ov7251 tracking
      06 - D0005 Starling pmd-tof imx214 hires ov7251 tracking
      08 - imx214
      09 - pmd-tof
      10 - ov7251 stereo
      11 - D0006 Sentinel
      12 - ov9782 stereo
      13 - ov9782 stereo imx214 hires
      14 - ov9782 stereo pmd-tof ov7251 tracking (copy)
      15 - D0008 dual 9782 tracking
      16 - pmd-tof ov7251 dual tracking imx214 hires
      17 - D0010 pmd-tof imx412 hires ov7251 tracking ov9782 stereo
      18 - D0008 triple ov9782
      19 - D0005 without tof imx214 hires ov7251 tracking
      20 - D0011 imx412 hires ar0144 tracking
      21 - old C6
      23 - D0010 without stereo
      24 - pmd-tof LIOW2 (new TOF)
      25 - dual ar0144
      31 - D0013 Prototype M0135 dual ar0144
      32 - D0008 triple ov9782 rotated
      FAILED TO EXECUTE: voxl-configure-cameras 27

      The serial number is M23000003CZ.

      The drone was originally a PX4 Dev Kit. But, it has been upgraded with the parts for a Starling 2 with 3 tracking sensors. Support helped provide the necessary parts and brackets. The main addition is the:

      MDK-M0187-1-01 Dev Kit, VOXL 2 Lepton Plus TOF V2 Adapter Board & MCBL-00105-2

      The Lepton adapter board isn't connect as there currently isn't a sensor attached. I have attached pictures of the drone fully assembled.

      IMG_3199.jpg
      IMG_3200.jpg

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Calibrate Tracking Cameras Starling 2

      @tom

      I don't really get any options when I try the configure camera command:

      voxl2:~$ voxl-calibrate-camera tracking -f
      Waiting for valid pipe...

      It just says waiting for valid pipe.

      I will double check the stickers and provide the serial number once I find it.

      posted in Ask your questions right here!
      G
      greg_s
    • Calibrate Tracking Cameras Starling 2

      Hello,

      I am trying to calibrate the tracking cameras on my Starling 2. After running voxl-configure-mpa it seems that the calibration files for the tracking cameras is missing.

      Here is the current configuration:

      system-image: 1.8.02-M0054-14.1a-perf
      kernel: #1 SMP PREEMPT Mon Nov 11 22:08:01 UTC 2024 4.19.125
      hw platform: M0054
      mach.var: 1.0.0
      SKU: MRB-D0014-4-V1-C27-T8-M22-X0
      voxl-suite: 1.4.5

      It has the three tracking cameras, hi-res camera, and ToF sensor.

      I follow the configuration wizard (voxl-configure-sku --wizard) with these options:
      camera configuration: 27
      transmitter options: 8
      lepton: 2 / no
      modem hardware: 22

      I then ran voxl-configure-mpa after the configuration. I got the following output:

           FAILED TO EXECUTE the following steps:
      

      voxl-configure-cameras 27

        Encountered Problems Configuring MPA Services :-/
          Some Services may not start up on next reboot
      

      Calibration File Status:
      Present /data/modalai/voxl-imu-server.cal
      Missing /data/modalai/opencv_tracking_front_intrinsics.yml
      Missing /data/modalai/opencv_tracking_down_intrinsics.yml
      Missing /data/modalai/opencv_tracking_rear_intrinsics.yml
      Present /data/px4/param/parameters_gyro.cal
      Present /data/px4/param/parameters_acc.cal
      Present /data/px4/param/parameters_level.cal
      Present /data/px4/param/parameters_baro_tc.cal
      Present /data/px4/param/parameters_mag.cal

      Detected Missing Calibration Files
      please run the required cals
      https://docs.modalai.com/calibration/

                  PLEASE POWER CYCLE YOUR VOXL
      

      Following the documentation on calibration, I tried to calibrate the cameras. I tried the following commands:
      voxl-calibrate-camera "tracking front" -f
      voxl-calibrate-camera tracking -f
      voxl-calibrate-camera "tracking down" -f

      I opened the VOXL portal and was not able to see the camera feed for the calibration. I included a screen shot of the camera_calibrator_overlay section of the VOXL portal.

      portal_overlay.jpg

      posted in Ask your questions right here!
      G
      greg_s
    • RE: Upgrade PX4 Developer Kit Drone

      Thanks @tom. Is there any other avenue I can try? I've sent a couple of email with no response.

      posted in Ask your questions right here!
      G
      greg_s