Hi Ludovic, Glad to hear that I'm not the only one with this desire! Hopefully Donny can give us some pointers on what might be the best way to go about integrating this. I think it would have huge potential for lots of different embedded systems, and could possibly cut out some of the work to get sensor fusion going (at least for prototyping).
Matteo On Tue, Jan 28, 2025 at 7:05 PM Ludovic Vanasse <ludovicvana...@gmail.com> wrote: > 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 > > >