Indoor Navigation using 4 Depth Sensors
-
Hello everyone,
I am working on developing an indoor navigation solution using 4 Time-of-Flight sensors to provide 360-degree obstacle detection and mapping. The sensor board provided by ModalAI can only support one ToF sensor as per my understanding. I would like to understand if there is any way that I can integrate 4 ToF sensors and get their respective data into VOXL2 for post-processing.
Kindly feel free to reach out if there are any clarifications required on the requirement.
Looking forward to hearing back soon.Regards,
Ashwin -
Hello @ashwin ,
The M0040 TOF sensor, which is now discontinued, would have been potentially useful, since you should be able to connect 4 (although we never tested that). Nevertheless, this particular sensor is EOL.
The new TOF sensor (we sometimes refer to as TOF V2), (https://www.modalai.com/products/m0178) unfortunately has different power requirements compared to TOF V1, so TOF V2 cannot be connected into standard interposers like M0076 (single) or M0135 (dual).
At this point, I think only one TOF V2 is supported.
@Vinny , can you please confirm? Are we planning to have any other interposers that would allow multiple TOF V2 connected to VOXL2?
Thanks!
Alex
-
We are really only anticipating 1 ToF per system. Not sure if any SW efforts have even tried more than 1 and if it's not on our roadmap, it could take a while to support.
However, if a second one is needed it would need to be on a separate camera group on VOXL 2 (not VOXL 2 Mini, as there is not enough system current at 5V to drive two ToFs reliably due to their high current demands).
-
Thanks for the information. It would be really helpful in our decision making towards our project planning.
Regards,
Ashwin -
@ashwin , from software point of view, running multiple TOF V2 sensors on VOXL2 is not an issue, but as Vinny said, the power requirements would put a limit of a single TOF sensor per VOXL camera connector (J6, J7, J8), so that would mean at most 3 TOF sensors connected to J6L, J7L and J8L (camera slots 0, 2, 4 in order to avoid i2c slave address conflicts -- this is more of a note to self
).
However, assuming the SW can support these 3 TOF sensors, i am not sure we actually have the required interposers / flex cables to connect 3 TOF V2 sensors to the 3 camera ports. @Vinny , what do you think?
Also, @ashwin , would you need any other cameras connected to VOXL2 besides the multiple TOF sensors?
Alex
-
Hi @Alex-Kushleyev
That's correct, since we have not supported it or tried it, there is no elegant HW solution.
We've recently completed the M0172 adapter which breaks out a uCOAX on the upper group + 40-pin Molex (for ToF) on the lower group from a single camera group.
We have not made this product available yet for purchase, but looks like this:
If this is something that interests you, I encourage you to ask our sales team using the contact page about it (we should have a bunch in stock it just has not been a priority for us): https://www.modalai.com/pages/contact-us
-
@Alex-Kushleyev Our final solution will have 4 AR0144 (M0166) along with 4 ToF. The objective is to be able to view all sides of the craft along with distance sensing in all directions.
However, based on your responses, we are working on changing the architecture and instead use an I2C multiplexer with 4 I2C ToF sensors. As per my understanding, that should be integrable with 4 AR0144 cameras. -
Hi @ashwin ,
If you look at the configuration C27 here : https://docs.modalai.com/voxl2-coax-camera-bundles/, it has 3x AR0144, 1x IMX412, and 1x TOF V2.
You would just need to modify this configuration to replace IMX412 with another AR0144, which should work just fine.
However, you can actually keep the TOF in this configuration, if you want.
I am not sure which I2C TOF sensors you are referring to (which you plan to use 4 of), but the TOF V2 is probably more capable than any i2c-based TOF sensor you might find (unless you don't really need it's full capability).
How are you planning to connect the other 4 i2c-based sensors? (which i2c port?)
Alex
-
Hello @Alex-Kushleyev,
We are actually planning to use the C27 configuration in the exact manner mentioned by you.
Also, you are correct that the TOF V2 is more capable than any I2C TOF we are finding in the market. But, as mentioned earlier, it is not possible to connect 4 TOF V2, so we are using the I2C TOFs with an I2C multiplexer to achieve the bare minimum objective.
The I2C multiplexer will be connected to the I2C3 port on the VOXL2 board (J19).
Ashwin
-
@ashwin , please note that I2C 3 on J19 is not accessible from Application Processor (main cpu). This I2C port is connected to the internal DSP and could be accessed from PX4.
https://docs.modalai.com/voxl2-connectors/#j19---external-sensors-2x-uart-2x-i2c
Is your TOF sensor going to be running as part of PX4 on the DSP?
Alex
-
Hello @Alex-Kushleyev ,
No, the TOFs were supposed to be read into the main DSP to process the data to understand the drone surroundings.
I was not aware that the I2C is only accessible from PX4.Is there a potential alternate port that can be used for the same?
How about using the SPI port (J10)?Regards,
Ashwin -
I found a post on the forum stating that there is a library, namely libqrb5165_io, that can be used to access the port in the AP if I am not using PX4 (https://forum.modalai.com/topic/2916/j19-uart-port-mapping?_=1741378878682).
Is this still valid?
This is just an alternate in case we are not able to figure out any other means to read all the camera sensors into the DSP.Regards,
Ashwin -
@ashwin , yes SPI on J10 is available from CPU as standard spi device (
/dev/spidev14.0
), but you would only be able to communicate with one spi device.https://docs.modalai.com/voxl2-connectors/#j10---external-spi
the post you referenced above is related to UART ports only and the support is currently limited to 1 UART port concurrently. We do not have i2c support for DSP I2C ports.
To avoid confusion, we refer to DSP as the subsystem that usually runs main PX4 tasks (sensor processing, control) and the main processor we usually call CPU or Application Processor.
I think your best option is to get a M0141 add-on, which has I2C port on J5 connector (which maps to
/dev/i2c-1
). With M0141 you will also have a USB 2.0 host port, additional UART port and some GPIO.https://www.modalai.com/products/m0141
https://docs.modalai.com/usb2-type-a-breakout-add-on/#j5---uarti2cgpioAlex
-
Hello @Alex-Kushleyev,
Thank you for the confirmation.
It has helped us decide upon the architecture for the current and an upcoming project.
The suggested M0141 add-on is really helpful suggestion as well.Regards,
Ashwin