Hello Matteo,

This is exactly the kind of functionality I've been eager to explore in
NuttX.

I know about PSMQ <https://psmq.bofc.pl/> within NuttX apps, and could be
enough. But I believe a tailored publish-subscribe library could allow for
sensor publishing and data passing between apps would further our ability
to replicate and extend PX4's functionalities. From my experience with ROS
and PX4, such a library would streamline inter application communications
within NuttX applications.

I've reached out to Donny, who worked on the uORB port, to discuss this
idea further. Additionally, I'm considering which features from PX4 we
might port back into NuttX to increase functionalities and avoid being tied
to their ecosystem (like the parameter system in PX4).

I also think incorporating an optional serializer/deserializer (maybe
something like Nanopb <https://jpa.kapsi.fi/nanopb/>) could be beneficial,
especially if different applications use various programming languages.
This would facilitate smoother communication and make implementing
publish/subscribe between NuttX more straightforward.

I agree that a fusion node, as you described, could be highly beneficial
for the NuttX community. I'd love to collaborate or help in any way on what
would be possible with uORB inside NuttX.

Looking forward to hearing thoughts from the community.

Best regards,
Ludovic Vanasse
ludovicvana...@gmail.com
+1(514) 475-0447


On Tue, Jan 28, 2025 at 5:34 PM Matteo Golin <matteo.go...@gmail.com> wrote:

> Hello again everyone,
>
> I was going through some of the NuttX documentation for UORB again since
> InSpace is using it in our applications and
> also to mock our sensors to see our system response in different scenarios
> (we are planning to use a modified fakesensor
> example).
>
> I noticed an intriguing application mentioned in the documentation that it
> would be possible to create a UORB node that
> subscribes to other sensor nodes and performs fusion/creates a new output.
> The docs mention PX4's use of this and links
> to this graph: https://docs.px4.io/main/en/middleware/uorb_graph.html
>
> For our application, we would be doing things such as calculating altitude
> from barometer data, or roll/pitch/yaw
> measurements from IMU + magnetometer data. I am thinking that such a node
> might become useful for other NuttX users, but
> I'm not sure where in the source tree it would live (or if it belongs
> there). It's not a sensor so I don't think it
> would go in `drivers/sensors`, but I'm not too sure. My reasoning is that
> since a "barometer topic" under UORB has a
> standard interface, it would be possible to register a altitude fusion
> node which pulls from any barometer node,
> irregardless of the barometer type. If the user needs to add more
> configuration to the barometer, they could use
> `orb_ioctl` commands to modify the sensor settings from their application
> and these changes would bubble up to any
> fusion nodes.
>
> What are your thoughts on this? Would something like this be beneficial
> for NuttX?
>
> --
> Matteo Golin
>

Reply via email to