Skip to content

Software Development

509 Topics 2.5k Posts

Questions about developing software on the products

Subcategories


  • General questions regarding the VOXL SDK that do not fit into other categories

    132 595
    132 Topics
    595 Posts
    wilkinsafW
    Hey @arvind_g3aero So, it does look like you were able to get this working with the dev release of voxl-camera-server which is great to hear. The natural progression of a software package is through dev-> staging -> release. So, this version of voxl-camera-server will be released in a future SDK. There will most likely not be a backport onto the 1.6.2 SDK
  • General questions regarding the VOXL SDK that do not fit into other categories

    46 339
    46 Topics
    339 Posts
    ישראל בן שלמהי
    Hi ModalAI team, I’m developing a sub-250 g UAV and am trying to determine the lightest practical VOXL 2 / VOXL 2 Mini camera and sensor architecture for the aircraft. The target payload functions are: Daylight RGB video / imaging FLIR Boson+ 320 thermal video Camera input required for reliable VIO / navigation Lowest possible total camera, adapter, cabling, and interposer mass I am specifically trying to avoid carrying unnecessary stereo, ToF, or additional cameras if they are not required. Could you recommend the exact minimum hardware stack you would use for this application? In particular: For reliable VIO, can we use a single tracking camera, or is a stereo pair required/recommended? Which current ModalAI tracking camera/module would give the lowest installed mass? For RGB imaging, what is the lightest currently supported color camera/module that can provide useful daylight video? For a Boson+ 320, is the current recommended connection still: Boson → M0201 → coax → M0181 → VOXL 2 J8? Can the Boson, RGB camera, and minimum VIO camera configuration operate simultaneously on one VOXL 2 / VOXL 2 Mini? If yes, could you provide the exact ModalAI part numbers/interposers/cables required and, if available, approximate individual masses? Is there a supported camera configuration close to this, or would it require a custom voxl-camera-server configuration? The aircraft has a very tight mass budget, so I am trying to establish the absolute minimum viable sensor stack rather than starting from one of the larger development-kit camera configurations. Thanks, Yisrael
  • Questions about developing software on the products

    74 356
    74 Topics
    356 Posts
    zauberflote1Z
    Please update your VINS to our master branch here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-open-vins-server For epoch-synced cams, tracking AR0144, please use: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-open-vins-server/-/tree/synced-timestamp?ref_type=heads
  • Questions about developing software on the products

    45 249
    45 Topics
    249 Posts
    T
    @Eric-Katzfey Yes that worked. Thanks!
  • Questions about developing software on the products

    13 64
    13 Topics
    64 Posts
    Zachary Lowell 0Z
    @Nitin-Varma-Vegesna said in Apriltag relocalization not relocalizing?: @Nitin-Varma-Vegesna Is there any release that is known to work for April Tag Detection? https://gitlab.com/voxl-public/voxl-sdk/services/voxl-tag-detector The dev branch is the most recent - I have to check with the engineering team on this as I am unsure the priority of april tag detection and positioning based off it. Will relay back
  • 68 336
    68 Topics
    336 Posts
    AniruddhaA
    @ApoorvThapliyal Thank you for your help. also I was able to work with jazzy by only subscribing and printing with node. since error only occurred when I tried to echo the topic and not when another node is subscribing it. but using docker seems like most viable option to me since I m using ubuntu 24.04. Thank you for your help again
  • 20 Topics
    60 Posts
    Manoj KashyapM
    @tom can anyone help me with this
  • Questions about developing software on the products

    1 2
    1 Topics
    2 Posts
    ModeratorM
    @Mastermind That sounds like it would be possible, but obviously depends on the driver of the wlan adapter you choose. You would need to implement the bluetooth broadcast portion of Remote ID. The source code for voxl-remote-id is here and only currently supports the Wifi portion of Remote ID
  • Upgrading to newest voxl-camera-server from apq8096-camera-server

    3
    0 Votes
    3 Posts
    685 Views
    M
    @Chad-Sweet Great, very exciting!
  • voxl-wifi softap issues

    4
    1
    0 Votes
    4 Posts
    1k Views
    tomT
    @Philemon-Benner This is where the voxl-wifi source code lives for VOXL1: https://gitlab.com/voxl-public/voxl-sdk/utilities/apq8096-system-tweaks/-/blob/dev/scripts/voxl-wifi Since you've already put in effort toward the resolution you could attempt to fork this repo, make your suggested tweaks and create a merge request so that the team could take a look! Otherwise it may take a little bit longer for the team to take a chance to look into the bug
  • VOXL-Streamer 64bit

    7
    0 Votes
    7 Posts
    1k Views
    Steve TurnerS
    @Eric-Katzfey OK good to know. Thanks for looking into that. Is there a good email I can reach out to discuss further with you?
  • Building new docker image error - Cmake version not good

    10
    0 Votes
    10 Posts
    4k Views
    M
    @CY-1992 said in Building new docker image error - Cmake version not good: ubuntu:20.04 Thanks @CY-1992 is working just fine!
  • Low Mavros Data Rates

    1
    0 Votes
    1 Posts
    428 Views
    No one has replied
  • Voxl-IO questions (GPIO & i2c)

    3
    0 Votes
    3 Posts
    830 Views
    Chad SweetC
    We have example Python code in voxl-modem to control the B2B GPIO ## All GPIO pins need to be exported before they can be used # def gpio_export(num): subprocess.call("echo " + num + " > /sys/class/gpio/export", stderr=FNULL, shell=True) ## Each GPIO has to have its direction set prior to use # @param num pin number # @param direction 'in' or 'out' # def gpio_direction_map(num, direction): subprocess.call("echo " + direction + " > /sys/class/gpio/gpio" \ + num + "/direction", stderr=FNULL, shell=True) ## Set a value to an 'out' gpio # def set_gpio(num, value): subprocess.call("echo " + value + " > /sys/class/gpio/gpio" + num + "/value", stderr=FNULL, shell=True) ## Reads a GPIO pin # @apram pin # pin number # @return # integer value [0,1] def gpio_read_int(pin_int): gpio_file = '/sys/class/gpio/gpio' + str(pin_int) + '/value' value = subprocess.check_output(['cat', gpio_file]).strip() return int(value)
  • terminate called after throwing an instance of 'std::system_error'

    2
    0 Votes
    2 Posts
    915 Views
    ?
    The emulator is meant to be a build environment and not for running code, this is likely the source of the issue, does your code encounter this problem when running on a voxl?
  • What is for "Avoidance / Collision prevention error"

    8
    1
    1 Votes
    8 Posts
    2k Views
    James StrawsonJ
    @hmlow Yes, PX4's obstacle avoidance and Collision Prevention are separate features. We only support the Collision Prevention functionality which is governed by the PX4 CP_DIST and similar parameters. Make sure the COM_OBS_AVOID parameter is OFF (0) in PX4 James
  • Using libvoxl_io.so from Docker

    3
    0 Votes
    3 Posts
    804 Views
    A
    @Chad-Sweet I'm trying to read some sensor data using UART/I2C, from within a Docker container. I will look into libmodal_pipe , thanks.
  • Duplicating UVC camera

    5
    0 Votes
    5 Posts
    1k Views
    ?
    This is essentially the point of MPA (Modal Pipe Architecture, our interprocess communications standard). We publish FIFOs to /run/mpa with the data (standard FIFOs use the filesystem as a handle, not for actually transferring the data, the kernel will pass the data directly from process to process). voxl-uvc-server will pull the data from the camera and write it out to a pipe in /run/mpa, which can easily be mounted in a docker image and read there. You can use the libmodal_pipe(or manually request a pipe and open the FIFO, though this will be less reliable than our extensively tested library) to read it in a docker image (or images as MPA allows numerous clients).
  • 1 Votes
    4 Posts
    2k Views
    tomT
    @wilkinsaf Thank you for posting your solution, very helpful!
  • Push to Gitlab?

    9
    1
    0 Votes
    9 Posts
    2k Views
    tomT
    @wilkinsaf Hahaha appreciate you sharing your expertise
  • Can't ping in station mode and can't re-enable modem

    8
    0 Votes
    8 Posts
    2k Views
    J
    @tom Thanks for the response. The issue has been resolved. I successfully pinged google after trying this on my home network (WPA2-Personal security type), I'm guessing the issue was with the security type of my firm's network that I had been trying to connect to originally. As for the modem issues, after familiarizing myself more with the hardware I realized I hadn't attached the VOXL LTE modem that came with my kit which probably explains why a disabling command worked and an enabling command gave me a failure message. I had incorrectly assumed the modem of concern was already onboard the flight core. Thanks to the dev team and @Chad-Sweet for your responses.
  • voxl-rtsp - This computer has an invalid IP address: 0.0.0.0

    2
    0 Votes
    2 Posts
    699 Views
    modaltbM
    Hi @czarsimon , Are you seeing this IP address as the output of the command or via ifconfig ? I believe the rtsp command line command will spit out 0.0.0.0 (i.e. localhost-ish), but use ifconfig to find the real IP address and use that.
  • Installing OpenCV-4.5 fails on VOXL Emulator Docker Image V1.7

    2
    0 Votes
    2 Posts
    737 Views
    Lynn KoudsiL
    I resolved the problem by installing openmp from the voxl-packages site.
  • AprilTag Relocalization

    2
    0 Votes
    2 Posts
    1k Views
    G
    @Chad-Sweet Thanks for the reply. I actually wanted to test landing feature. If we could get the instruction for landing on the apriltag, that'd be great.
  • Example compiling custom TFLite model?

    5
    0 Votes
    5 Posts
    1k Views
    T
    Hi Matt, Sorry about the delay in following up on this. Switching over to running the TFLite quantized model was the necessary step to get things working. Thanks for your help!
  • Changing default cameras

    5
    0 Votes
    5 Posts
    1k Views
    Alex KushleyevA
    Hello Rolando, It will not be possible to fully use four ov7251 cameras at the same time due to i2c address conflict. the downward camera can coexist with the stereo pair because one of the stereo cameras is actually on a different i2c bus ov7251 camera has two i2c addresses, so with some software configuration it works. However, having 3 ov7251 cameras on i2c bus cannot be done without a conflict. In a condition of i2c conflict between cameras, what will happen is.. system will be able to detect each camera at boot time because probing happens while other cameras are powered off you should be able to fully use the conflicting cameras one at a time (not concurrently) if you use the conflicting cameras concurrently, commands sent to one camera will go out to both cameras, for example exposure and gain control. nothing will physically break, but this is currently not a supported use case. there will also be a short glitch after you started the first conflicting camera and when you are starting the second conflicting camera, since the first one will also get re-initialized with the commands intended for the second camera in your case, the ov7251 plugged into J2 was not detected because the camera configuration xml file is not configured to query this camera on J2 connector. If you wanted to enable it, you need to back up and edit the following file : /system/etc/camera/camera_config.xml and add an entry that looks like below (then reboot). The slave address 0xC0 is one of the two possible slave addresses for this camera. The other one is 0xE0 and is already used by the camera plugged into J4 (downward facing). So are you using one of the stereo cameras + stereo flex + extension cable? if you are using the stereo flex with one camera, make sure to use the left port on the flex because the right port is connected to the secondary i2c bus, accessible only in stereo configuration. Also, multiple stereo pairs are not supported on VOXL and stereo can only be used in J3. With the below config addition, you should be able to detect all 4 ov7251 cameras and successfully use the following configurations without confilicts: J2 + J4 (hires slot + tracking slot) J3 + J4 (stereo slot + tracking slot) if you want to use J2 + J3 (hires + tracking slot), change the I2C id to 0xE0, but then it's the same thing as current stereo + tracking. Now, in this configuration you should also be able to run all 4 cameras together but depending on the i2c ID of the camera in slot 0, it will conflict either with left stereo or tracking camera. I would not mess with stereo, so you could set i2c id of slot 0 to the same as in slot 2 (hires and tracking). then there is is still an issue of exposure/gain controls between the two cameras fighting with each other (both cameras will receive both exposure/gain updates). In order to prevent two cameras from fighting exposure/gain settings the only way to do it is to prevent one of the camera drivers from sending out exposure/gain updates at all. Then both cameras will have the same exposure/gain computed based on one camera's image. This would require a little bit of work on the camera driver side but it's possible (though not supported now). Anyway, this is just a long explanation of what you could try and what you will see. <!-- ov7251 tracking camera in camera slot 0 --> <CameraModuleConfig> <CameraId>0</CameraId> <SensorName>ov7251</SensorName> <SensorSlaveAddress>0xC0</SensorSlaveAddress> <ChromatixName>ov7251_chromatix</ChromatixName> <ModesSupported>1</ModesSupported> <Position>FRONT</Position> <MountAngle>360</MountAngle> <CSIInfo> <CSIDCore>0</CSIDCore> <LaneMask>0x1F</LaneMask> <LaneAssign>0x4320</LaneAssign> <ComboMode>0</ComboMode> </CSIInfo> <LensInfo> <FocalLength>4.73</FocalLength> <FNumber>2.2</FNumber> <TotalFocusDistance>1.9</TotalFocusDistance> <HorizontalViewAngle>64.1</HorizontalViewAngle> <VerticalViewAngle>51.6</VerticalViewAngle> <MinFocusDistance>0.1</MinFocusDistance> </LensInfo> </CameraModuleConfig>
  • stereo and tracking camera voxl_cam_ros

    4
    0 Votes
    4 Posts
    1k Views
    ?
    Glad to hear it's working! Yes, We're days away from finishing a rework of our docs that includes all the information about the new architecture, should be seeing it real soon.
  • Flash-system-image waiting for fastboot...

    3
    1
    0 Votes
    3 Posts
    869 Views
    G
    @PawelJ Thank you for the suggestion. Actually, I am facing another issue with my board, i.e. my board is going offline (https://forum.modalai.com/topic/289/adb-device-offline?_=1625029971070) and hence I am not able to communicate with it. Once I am able to communicate it I will check this.