Skip to content

Modal Pipe Architecture (MPA)

45 Topics 249 Posts

Questions about developing software on the products

  • Using more than 64 tags in the tag_locations.conf

    3
    0 Votes
    3 Posts
    2k Views
    T
    @Eric-Katzfey Yes that worked. Thanks!
  • Fixed pose via /run/mpa/vvhub_fixed_pose_input in addion to Open Vins

    2
    0 Votes
    2 Posts
    1k Views
    Cliff WongC
    Hi there, I would highly recommend upgrading to the latest SDK 1.6.2. Q1: For voxl-vision-hub, openvins is just another [abstracted] VIO client, using the same MPA interface as QVIO. Thus, should work the same as QVIO. Q2: There are no outstanding buffer conflicts between the 2 inputs in that SDK version. Though best to update to 1.6.2 as there have been numerous MPA improvements. Q3: MAYBE ON GROUND, POSITION LOCK? is reporting that the barometer is reporting <1m and OVINS > 1m (-1 in NED space). It appears OVINS had a blow up, has recovered with a new origin in the local frame. Your output says it must have reseted in the ai/flying and hence the new local origin is above your landing point (fixed frame). Depending how you have PX4's EKF setup could lead to issues like the landing detector not working, or position error when running missions, hence why it's reported as a warning. Your output says it's at 0,0,-15 indicating OVINS restarted at ~15m up, but the PX4 baro says it's at 0. If outdoors, I recommend setting EKF2_HGT_REF = baro, if indoors, you'll need to reconcile a origin offset if VIO resets midair (qvio would require this as well) if using vio data directly waypoint manager (i.e. offboard waypoint mode or custom nav code) Going forward if staying with 1.4.x, edit /etc/modalai/voxl-open-vins-server.conf and change: "en_vio_always_on": true, ssh into the drone and run voxl-vision-hub --debug_fixed_frame --debug_tag_cam --debug_odometry to compare values and see if there is a error in calculation possibly causing vision-hub to restart. move the drone around by hand, point it at a tag as needed and monitor the output from vision-hub. Should tell you where a possible conflict arises.
  • Python MPA image

    9
    0 Votes
    9 Posts
    3k Views
    Alex KushleyevA
    @l05 , when in doubt, you can add a print statement in your app as a sanity check to make sure you are running the correct version of the application. Then check your print statement at run time. If you are modifying an existing app in voxl-mpa-tools, you just need to use the voxl-cross docker image to build the source code build the package (deb) deploy the package (either manually pushing and dpkg -i <package.deb> on target) or using a convenience script deploy_to_voxl.sh which is typically present in most voxl projects -- this script will push the deb to voxl2 and install the deb. run your new application on voxl and confirm functionality If you are adding a new app to voxl-mpa-tools project, you will need to modify the CMakeLists.txt file in the tools folder, it should be self explanatory how to add a simple app. Once you build and deploy, your new app will be installed into /usr/bin on voxl2. If you have any other questions, let me know. Alex
  • Be careful building voxl-cross on older SDKS (Other than V1.50.0)

    3
    2
    0 Votes
    3 Posts
    2k Views
    monkescriptsM
    Thank you @Alex-Kushleyev for the clarification. Currently I just redefined the magic numbers on my own and voxl-inspect-pose works as usual. I am hoping that this breaking change only affects a small number of use cases. If anyone else faces the same issue with magic numbers theres at least the discussion that might help them as well
  • Send ESDF/TSDF information from voxl-mapper to ROS2

    4
    0 Votes
    4 Posts
    3k Views
    Roya SalehzadehR
    @Jeffrey-Mao Hello Jeffery, We are currently working on implementing SLAM for the Starling 2 platform. Our initial approach involved using the available ROS 2 topics provided by voxl_mpa_to_ros2, installing standard SLAM packages, and using RViz for visualization. However, we've encountered a major issue: most of the topics do not have a frame_id defined, and there is no existing transform (TF) tree that can be used with RViz. So far, we've only been able to visualize the tof_pc (Time-of-Flight point cloud) data. To do this, we had to manually publish a static transform between the TOF frame (which is named world) and map. However, in this setup, the drone's location does not update dynamically. To address this, we're considering writing a transformation node to define the relationships between coordinate frames (e.g., map, odom, base_link, tof, etc.). However, developing this from scratch is proving to be time-consuming and error-prone. I also noticed that you were able to generate a map using voxl-mapper and et the map in ROS2 with the mpa_ros2 interface. This could be a much more efficient path for us to pursue. Could you please explain in detail: What exact steps you followed to export the map using voxl-mapper? Is it possible to regenerate or update the map in real-time in RViz, or export it to another visualization tool? Thanks
  • Using MPA within voxl-docker-mavsdk-cpp

    5
    0 Votes
    5 Posts
    3k Views
    T
    Hi @Ege-Yüceel, We usually create a volume to those headers when doing something like this but you can install the libmodal pipe package inside the docker container like this if you want. wget http://voxl-packages.modalai.com/dists/qrb5165/sdk-1.5/binary-arm64/libmodal-pipe_2.13.1_arm64.deb dpkg -i libmodal-pipe_2.13.1_arm64.deb **Note change sdk-1.5 to whatever sdk version you're on
  • 0 Votes
    1 Posts
    828 Views
    No one has replied
  • (VOXL2 PX4 ROS2) MPA to ROS2 Tag Detection

    15
    0 Votes
    15 Posts
    6k Views
    G
    @tom @Zachary-Lowell-0 Looks like I got it to work, I was just running the wrong command. Is there an existing topic called "tag_detections" that should be appearing or is there another repository I need to download in order to obtain that? Thank you. [image: 1747414782060-ca188661-3943-4bac-beb5-16765bb7f96b-image.png] [image: 1747414856393-05a2c723-dd2b-4f8d-a243-3f6e61a9c56d-image.png]
  • ( VOXL2 PX4 ROS2) MPA to ROS2 for Battery Voltage & Problems

    12
    0 Votes
    12 Posts
    5k Views
    G
    @Eric-Katzfey Sure!
  • voxl-tflite and voxl-mapper

    1
    0 Votes
    1 Posts
    811 Views
    No one has replied
  • Python MPA image example

    8
    0 Votes
    8 Posts
    4k Views
    Meytal LempelM
    @Alex-Kushleyev Thank you, it works!
  • Custom Server in VOXL MPA

    13
    0 Votes
    13 Posts
    5k Views
    Jetson NanoJ
    @Alex-Kushleyev @Eric-Katzfey can you check it out and help with the code. I am also interested what kind of signal is send to the neopixel LEDs to turn it ON. And with addition to that what is the command to turn ON only blue lights.
  • QVIO-server issues

    6
    1
    0 Votes
    6 Posts
    3k Views
    Jetson NanoJ
    @tom thank you for reverting , I sorted out the issue, the file name in the voxl-qvio-server was opencv_tracking_front_intrinsics.yml instead of opencv_tracking_intrinsics.yml and in the voxl-vision-hub the name was tracking_front which i renamed in tracking. After the above mentioned changed the voxl-qvio-server is working fine. thank you for the support.
  • Create a new pipe to publish barometer data for VOXL 2

    9
    0 Votes
    9 Posts
    4k Views
    S
    @Alex-Kushleyev Got it. Thank you your help and for taking the time to answer my questions! Sashank
  • Mavlink server configuration of ports wont work

    4
    0 Votes
    4 Posts
    2k Views
    Zachary Lowell 0Z
    @jacob-yaacubov said in Mavlink server configuration of ports wont work: branches @jacob-yaacubov said in Mavlink server configuration of ports wont work: both ros master run on 127.0.01 so its local ros communication looks more like mavlink issue not sure though Reply @jacob-yaacubov yes you need to change the mav sys id for both otherwise they will overlap and create the problem you stated before when connecting to qgc and having overlapping px4 instances. As for ROS you need to change the ROS_DOMAIN_ID (an external terminal environment variable) otherwise all the ros topics will also overlap and create multiple publishers and subscribers on the same drone when you have multiple on. Zach
  • px4 params flow to autopilot

    2
    0 Votes
    2 Posts
    1k Views
    Zachary Lowell 0Z
    @jacob-yaacubov said in px4 params flow to autopilot: sometimes at bootup the QGC says all parameters lost Hi Jacob - Unsure if I am fully following but this is the explanation for how parameters work on the voxl2: Every boot of the voxl2 kick off the px4 instance if you have that service enabled - it will then grab the parameters from /data/px4/param (if a parameter file already exists) - if you save a file from QGC of edit a parameter, from their, it will update in this file as well. As for why the parameters are lost - I am assuming what you mean is the parameter file isnt fully loaded (AKA the green bar at the top of qgc never finishes because of a timeout) - if that is the case I would recommend trying another qgc instance on a different device like a phone or different os (mac vs linux vs windows) - and see if the problem persists. Zach
  • CP with custom sensors

    3
    0 Votes
    3 Posts
    2k Views
    G
    @James-Strawson Thank you for the response. we want to use an array of 4 vl53l5cx sensors to capture data around the drone. I know that there is existing support for vl53l1cx sensors. since it is crucial to know of possible obstacles from multiple angles we need the 4x4 version. in this case, I have a point cloud of 64 points around the drone. so should I send those on the pointcloud pipe? for the few services: this is the service inspect output: Service Name | Enabled | Running | CPU Usage ------------------------------------------------------------------- docker-autorun | Enabled | Not Running | modallink-relink | Disabled | Not Running | voxl-camera-server | Enabled | Running | 2.2% voxl-cpu-monitor | Enabled | Running | 0.6% voxl-dfs-server | Disabled | Not Running | voxl-feature-tracker | Disabled | Not Running | voxl-flow-server | Disabled | Not Running | voxl-imu-server | Enabled | Running | 0.1% voxl-lepton-server | Disabled | Not Running | voxl-mavcam-manager | Disabled | Not Running | voxl-mavlink-server | Enabled | Running | 2.9% voxl-modem | Disabled | Not Running | voxl-neopixel-manager | Disabled | Not Running | voxl-open-vins-server | Disabled | Not Running | voxl-portal | Enabled | Running | 0.1% voxl-px4-imu-server | Disabled | Not Running | voxl-px4 | Enabled | Running | 30.5% voxl-qvio-server | Disabled | Not Running | voxl-rangefinder-server | Disabled | Not Running | voxl-remote-id | Disabled | Not Running | voxl-softap | Disabled | Not Running | voxl-static-ip | 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 | 1.7% voxl-wait-for-fs | Enabled | Completed |
  • Accessing the service data inside MAVSDK

    5
    0 Votes
    5 Posts
    2k Views
    Jetson NanoJ
    Thank you @Eric-Katzfey , I'll check it out and will get back to you.
  • Pipe Overflow Error

    6
    0 Votes
    6 Posts
    3k Views
    Alex KushleyevA
    @Jeffrey-Mao , no worries, thanks for the update!
  • Voxl2 Stereo Camera Depth to PC transfromation

    3
    0 Votes
    3 Posts
    2k Views
    Jeffrey MaoJ
    @Alex-Kushleyev Thanks for the information. I think I understand what is going on my end then.