You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nuttx.apache.org by Pavel Pisa <pp...@pikron.com> on 2022/03/15 07:47:34 UTC

GSoC 2022 ideas - pysimCoder, silicon-heaven, ORTE Data-Distribution Service (DDS), motion control, CAN

Dear NuttX developers,

I am not in the full sync with the project now
due to load by teaching of the Computer Architectures
course and others, but I have more ideas and project
in the progress.

1) pysimCoder and silicon-heaven
Michal Lenc's pysimCoder project advances well.
His experimental branch shv_basic

  https://github.com/michallenc/pysimCoder/tree/shv_basic

includes integration with silicon-heaven (SHV) which
is the light weight system for distributed service
parameters and process variables access. It has been
started at https://www.elektroline.cz/ company by my friend
Fratisek Vacek and is fully opensource used in the field
worldwide etc. The prototype already allows introspection
to single or even multiple running control applications
generated by pysimCoder. It is tested on Linux now
but pysimCoder supports NuttX well and we expect
to be used with it as well.
NuttX is selected as operating system of choice for
MCU non safety critical targets at Elektroline
for now. SHV provides nice services and is much smaller
than CORBA or DDS. Due to hierarchy of brokers
it allows to build world scale control over TCP when
nodes communicate over NAT barriers easily.
Each non root node only needs to know it superordinated
broker address. When the tree root node is run at public
address then request response and even changes substriptin
communication finds the nearest node with visibility
between two clients and uses it as a proxy.

SHV provides really nice features, is mall etc.
But it is not international standard (yet)...

Does it worth to be offered as NuttX GSoC project?
I am not sure. It will be developed to support NuttX
anyway, but GSoC can speed it and provide frame for better
documentation.

2) ORTE Data-Distribution Service (DDS)
This is different case. It is international standard.
Before my investment and hopes into formerg group at the
university has been buried and burned hard, I have invested
into ORTE project and helped it to architect.

  http://orte.sourceforge.net/

It was at time when Real Time Innovations started NDDS
project and our ORTE implementation of the original
protocol was the second required independed implementation
to allow approve DDS RTPS 1.0 as Internet standard 

  https://www.omg.org/spec/DDSI-RTPS/

When the version 2.0 has been published I have
invested into our implementation update
together with Jiri Hubacek Vlasak

  https://support.dce.felk.cvut.cz/mediawiki/images/3/37/Dp_2016_hubacek_jiri.pdf

But speak with him on continuation of the work or even
in general has been intentionally and hard way blocked by professor
Zdenek Hanzalek and doctor Michal Sojka later when Jirka was
allocated at proprietary NVIDIA work at university for company
consortium. By the way that work has been paid from European
public money.

Actual DDS RSPS standard is core of ROS 2 system. I have seen
many ROS related activities around NuttX but I am not sure
if some of them attempts to bring DDS really on the NuttX
nodes or all stay on use of agent on GNU/Linux side.
The full DDS would not fit in limited memory nodes or nodes
connected over serial link or CAN.

But on chips like imxRT it could fit well. Our ORTE implementation 
worked on GNU/Linux, BSD, Windows, RTEMS on x86, ARM, PowerPC...
When it is made to be interoperable with actual DDS standard
it can be quite usable.

3) Motion control
We have more than 30 years experience with motion control at our
company. I have provided our know how as open source to our
university and it helped them to participate in EUROBOT competition
etc., but without any reference to the source.... another story..
Anyway, I see generic PMSM motor infrastructure getting into
NuttX now. We have something similar but even with higher level
control. There are some resources related to our Portable eXtendable
Motion Control (PXMC) infrastructure. No fancy promo stuff but works
in robots, industrial systems, medical infussion systems and laboratory
instruments

  http://pxmc.org/
  https://www.pikron.com/pages/products/motion_control.html

Some demo on old robot with our second generation 20 years old
system

  https://www.pikron.com/pages/products/motion_control/images/mars8_rosegarden.png

Our actual designs

  https://www.pikron.com/pages/products/motion_control/lx_rocon.html

fully open kit

  https://gitlab.com/pikron/projects/imxrt-devel/-/wikis/teensy_bb

all sources in GITs, som in ours, some on SF.net etc... 

  https://gitlab.com/pikron

The command set, N-order coordinated spline trajectory generator
and much more can be reused.

The code has been used without operation system on 16-bit MSP430,
ARMs, on RTEMS, GNU/Linux x86, Raspberry PI, Xilinx Zynq etc..

   https://installfest.cz/if17/slides/so_t2_pisa_realtime.pdf
   https://pretalx.installfest.cz/media/installfest-2021/submissions/GBKNKE/resources/mz_apo-remote-lab_K5ZFgyq.pdf

Is there some interrest to reuse some such stuff in the GSoC frame?

4) CAN and CAN FD
We work lot in this area. More contribution of my cooleagues
reached NuttX mainline some waits for it. I.e. actual ESP32C3
TWAI/CAN driver by Jan Charvat

  https://github.com/charvj/incubator-nuttx/tree/esp32c3-twai

If you suggest some FPGA we can open project to test our
open source CAN FD IP core and port drivers to it

  https://canbus.pages.fel.cvut.cz/

I have participated on CANopen FD standardization.
We have developed CANopen generic infrastructure
solution in past and I have included NuttX support

  http://orte.sourceforge.net/

Extension to CANopen FD would be another project option. 

My long term goal is to have all these components compatible
with NuttX as well and have portfolio to build final NuttX
applications on demanded easily and in reasonabale time.

Best wishes,

                Pavel Pisa
    e-mail:     pisa@cmp.felk.cvut.cz
    Department of Control Engineering FEE CVUT
    Karlovo namesti 13, 121 35, Prague 2
    university: http://dce.fel.cvut.cz/
    personal:   http://cmp.felk.cvut.cz/~pisa
    company:    https://www.pikron.com/
    projects:   https://www.openhub.net/accounts/ppisa
    CAN related:http://canbus.pages.fel.cvut.cz/
    Open Technologies Research Education and Exchange Services
    https://gitlab.fel.cvut.cz/otrees/org/-/wikis/home

Re: GSoC 2022 ideas - pysimCoder, silicon-heaven, ORTE Data-Distribution Service (DDS), motion control, CAN

Posted by Alan Carvalho de Assis <ac...@gmail.com>.
Hi Pavel,

I think all these projects are interesting.

Bringing DDS RTPS support to NuttX will make it easier to people use
it with robot and could open doors to new applications.

CAN and CAN FD port to your university open-source IP will be very useful too.

BR,

Alan

On 3/15/22, Pavel Pisa <pp...@pikron.com> wrote:
> Dear NuttX developers,
>
> I am not in the full sync with the project now
> due to load by teaching of the Computer Architectures
> course and others, but I have more ideas and project
> in the progress.
>
> 1) pysimCoder and silicon-heaven
> Michal Lenc's pysimCoder project advances well.
> His experimental branch shv_basic
>
>   https://github.com/michallenc/pysimCoder/tree/shv_basic
>
> includes integration with silicon-heaven (SHV) which
> is the light weight system for distributed service
> parameters and process variables access. It has been
> started at https://www.elektroline.cz/ company by my friend
> Fratisek Vacek and is fully opensource used in the field
> worldwide etc. The prototype already allows introspection
> to single or even multiple running control applications
> generated by pysimCoder. It is tested on Linux now
> but pysimCoder supports NuttX well and we expect
> to be used with it as well.
> NuttX is selected as operating system of choice for
> MCU non safety critical targets at Elektroline
> for now. SHV provides nice services and is much smaller
> than CORBA or DDS. Due to hierarchy of brokers
> it allows to build world scale control over TCP when
> nodes communicate over NAT barriers easily.
> Each non root node only needs to know it superordinated
> broker address. When the tree root node is run at public
> address then request response and even changes substriptin
> communication finds the nearest node with visibility
> between two clients and uses it as a proxy.
>
> SHV provides really nice features, is mall etc.
> But it is not international standard (yet)...
>
> Does it worth to be offered as NuttX GSoC project?
> I am not sure. It will be developed to support NuttX
> anyway, but GSoC can speed it and provide frame for better
> documentation.
>
> 2) ORTE Data-Distribution Service (DDS)
> This is different case. It is international standard.
> Before my investment and hopes into formerg group at the
> university has been buried and burned hard, I have invested
> into ORTE project and helped it to architect.
>
>   http://orte.sourceforge.net/
>
> It was at time when Real Time Innovations started NDDS
> project and our ORTE implementation of the original
> protocol was the second required independed implementation
> to allow approve DDS RTPS 1.0 as Internet standard
>
>   https://www.omg.org/spec/DDSI-RTPS/
>
> When the version 2.0 has been published I have
> invested into our implementation update
> together with Jiri Hubacek Vlasak
>
>
> https://support.dce.felk.cvut.cz/mediawiki/images/3/37/Dp_2016_hubacek_jiri.pdf
>
> But speak with him on continuation of the work or even
> in general has been intentionally and hard way blocked by professor
> Zdenek Hanzalek and doctor Michal Sojka later when Jirka was
> allocated at proprietary NVIDIA work at university for company
> consortium. By the way that work has been paid from European
> public money.
>
> Actual DDS RSPS standard is core of ROS 2 system. I have seen
> many ROS related activities around NuttX but I am not sure
> if some of them attempts to bring DDS really on the NuttX
> nodes or all stay on use of agent on GNU/Linux side.
> The full DDS would not fit in limited memory nodes or nodes
> connected over serial link or CAN.
>
> But on chips like imxRT it could fit well. Our ORTE implementation
> worked on GNU/Linux, BSD, Windows, RTEMS on x86, ARM, PowerPC...
> When it is made to be interoperable with actual DDS standard
> it can be quite usable.
>
> 3) Motion control
> We have more than 30 years experience with motion control at our
> company. I have provided our know how as open source to our
> university and it helped them to participate in EUROBOT competition
> etc., but without any reference to the source.... another story..
> Anyway, I see generic PMSM motor infrastructure getting into
> NuttX now. We have something similar but even with higher level
> control. There are some resources related to our Portable eXtendable
> Motion Control (PXMC) infrastructure. No fancy promo stuff but works
> in robots, industrial systems, medical infussion systems and laboratory
> instruments
>
>   http://pxmc.org/
>   https://www.pikron.com/pages/products/motion_control.html
>
> Some demo on old robot with our second generation 20 years old
> system
>
>
> https://www.pikron.com/pages/products/motion_control/images/mars8_rosegarden.png
>
> Our actual designs
>
>   https://www.pikron.com/pages/products/motion_control/lx_rocon.html
>
> fully open kit
>
>   https://gitlab.com/pikron/projects/imxrt-devel/-/wikis/teensy_bb
>
> all sources in GITs, som in ours, some on SF.net etc...
>
>   https://gitlab.com/pikron
>
> The command set, N-order coordinated spline trajectory generator
> and much more can be reused.
>
> The code has been used without operation system on 16-bit MSP430,
> ARMs, on RTEMS, GNU/Linux x86, Raspberry PI, Xilinx Zynq etc..
>
>    https://installfest.cz/if17/slides/so_t2_pisa_realtime.pdf
>
> https://pretalx.installfest.cz/media/installfest-2021/submissions/GBKNKE/resources/mz_apo-remote-lab_K5ZFgyq.pdf
>
> Is there some interrest to reuse some such stuff in the GSoC frame?
>
> 4) CAN and CAN FD
> We work lot in this area. More contribution of my cooleagues
> reached NuttX mainline some waits for it. I.e. actual ESP32C3
> TWAI/CAN driver by Jan Charvat
>
>   https://github.com/charvj/incubator-nuttx/tree/esp32c3-twai
>
> If you suggest some FPGA we can open project to test our
> open source CAN FD IP core and port drivers to it
>
>   https://canbus.pages.fel.cvut.cz/
>
> I have participated on CANopen FD standardization.
> We have developed CANopen generic infrastructure
> solution in past and I have included NuttX support
>
>   http://orte.sourceforge.net/
>
> Extension to CANopen FD would be another project option.
>
> My long term goal is to have all these components compatible
> with NuttX as well and have portfolio to build final NuttX
> applications on demanded easily and in reasonabale time.
>
> Best wishes,
>
>                 Pavel Pisa
>     e-mail:     pisa@cmp.felk.cvut.cz
>     Department of Control Engineering FEE CVUT
>     Karlovo namesti 13, 121 35, Prague 2
>     university: http://dce.fel.cvut.cz/
>     personal:   http://cmp.felk.cvut.cz/~pisa
>     company:    https://www.pikron.com/
>     projects:   https://www.openhub.net/accounts/ppisa
>     CAN related:http://canbus.pages.fel.cvut.cz/
>     Open Technologies Research Education and Exchange Services
>     https://gitlab.fel.cvut.cz/otrees/org/-/wikis/home
>