problem with Xenomai and masterEtherCat soem

Hi,
I'm trying a master ethercat soem component using deployer-xenomai.

I set activity of the soem component to 5 kHz as:

setActivity("soemBoard",0.0002,HighestPriority,ORO_SCHED_RT)

Using deployer-gnulinux this component works well, but using
deployer-xenomai the soem component is in state EC_STATE_SAFE_OP +
EC_STATE_ERROR, and so it does not work.

Other generic components work well using deployer-xenomai but not master
ethercat soem component.

How can I solve this problem? I must use deployer-xenomai in order to
maintain the real time execution.

Hi,
Luisa.

soem

Hi,

I tried to compile the latest version of rtt_soem (master),
which does not compile using catkin_make:
The newly introduced macro REGISTER_SOEM_DRIVER gives troubles:
/my_ws/src/rtt_soem/soem_beckhoff_drivers/src/soem_el3104.cpp:254:21:
error: expected constructor, destructor, or type conversion before ‘(’ token
REGISTER_SOEM_DRIVER(EL3104, createSoemEL3104)

I'm on Ubuntu 14.04, ROS Indigo,Orocos 2.8.x, the includes:
[ 44%] [ 44%] Building CXX object
rtt_soem/soem_beckhoff_drivers/CMakeFiles/soem_el2xxx.dir/src/soem_el2xxx.cpp.o
Building CXX object
rtt_soem/soem_beckhoff_drivers/CMakeFiles/soem_el4xxx.dir/src/soem_el4xxx.cpp.o
Building CXX object
rtt_soem/soem_beckhoff_drivers/CMakeFiles/soem_el3104.dir/src/soem_el3104.cpp.o
cd
/home/dvanthienen/software/frs_catkin_ws/build/rtt_soem/soem_beckhoff_drivers
&& /usr/bin/c++ -DOROCOS_TARGET=gnulinux -DROS_BUILD_SHARED_LIBS=1
-Dsoem_el2xxx_EXPORTS -fPIC
-I/home/dvanthienen/software/frs_catkin_ws/devel/include
-I/opt/ros/indigo/include -I/opt/ros/indigo/include/orocos
-I/home/dvanthienen/software/frs_catkin_ws/src/rtt_soem/soem_master/..
-I/opt/ros/indigo/include/soem -DOROCOS_TARGET=gnulinux -o
CMakeFiles/soem_el2xxx.dir/src/soem_el2xxx.cpp.o -c
/home/dvanthienen/software/frs_catkin_ws/src/rtt_soem/soem_beckhoff_drivers/src/soem_el2xxx.cpp

Any hints?

I also see that the location of the soem repository has disappeared, it
is not at
http://developer.berlios.de/projects/soem
anymore.
Which one should I use, in case I would not like to use the one provided
by ros-indigo-soem?

Thanks!

Nick

soem

On 12/18/2015 01:58 PM, Dominick Vanthienen wrote:
> Hi,
>
> I tried to compile the latest version of rtt_soem (master),
> which does not compile using catkin_make:
> The newly introduced macro REGISTER_SOEM_DRIVER gives troubles:
> /my_ws/src/rtt_soem/soem_beckhoff_drivers/src/soem_el3104.cpp:254:21:
> error: expected constructor, destructor, or type conversion before ‘(’ token
> REGISTER_SOEM_DRIVER(EL3104, createSoemEL3104)
>
> I'm on Ubuntu 14.04, ROS Indigo,Orocos 2.8.x, the includes:
> [ 44%] [ 44%] Building CXX object
> rtt_soem/soem_beckhoff_drivers/CMakeFiles/soem_el2xxx.dir/src/soem_el2xxx.cpp.o
> Building CXX object
> rtt_soem/soem_beckhoff_drivers/CMakeFiles/soem_el4xxx.dir/src/soem_el4xxx.cpp.o
> Building CXX object
> rtt_soem/soem_beckhoff_drivers/CMakeFiles/soem_el3104.dir/src/soem_el3104.cpp.o
> cd
> /home/dvanthienen/software/frs_catkin_ws/build/rtt_soem/soem_beckhoff_drivers
> && /usr/bin/c++ -DOROCOS_TARGET=gnulinux -DROS_BUILD_SHARED_LIBS=1
> -Dsoem_el2xxx_EXPORTS -fPIC
> -I/home/dvanthienen/software/frs_catkin_ws/devel/include
> -I/opt/ros/indigo/include -I/opt/ros/indigo/include/orocos
> -I/home/dvanthienen/software/frs_catkin_ws/src/rtt_soem/soem_master/..
> -I/opt/ros/indigo/include/soem -DOROCOS_TARGET=gnulinux -o
> CMakeFiles/soem_el2xxx.dir/src/soem_el2xxx.cpp.o -c
> /home/dvanthienen/software/frs_catkin_ws/src/rtt_soem/soem_beckhoff_drivers/src/soem_el2xxx.cpp
>
> Any hints?
>
> I also see that the location of the soem repository has disappeared, it
> is not at
> http://developer.berlios.de/projects/soem
> anymore.
> Which one should I use, in case I would not like to use the one provided
> by ros-indigo-soem?
PS:
also soem_core has a manifest.xml but not a package.xml,
hence is not recognized as a package under catkin.

Thanks! Nick

soem

On Dec 18, 2015, at 7:34 AM, Dominick Vanthienen <nick [dot] vanthienen [..] ...nick [dot] vanthienen [..] ...>> wrote:

PS:
also soem_core has a manifest.xml but not a package.xml,
hence is not recognized as a package under catkin.

Thanks! Nick

In fact, if a package has both a manifest.xml and a package.xml, rosdep/rospack can get very confused and things won’t work correctly (see latest on rttlua_completion).

--
Dustin Gooding
NASA/JSC Robotics

Ruben Smits's picture

problem with Xenomai and masterEtherCat soem

Hello Luisa,

On Mon, Sep 10, 2012 at 6:29 PM, Luisa Repele <luisa [dot] repele [..] ...> wrote:
> Hi,
> I'm trying a master ethercat soem component using deployer-xenomai.

If you would like to use the SoemMasterComponent in Xenomai using an
RT-thread it is recommended to use RTNet to avoid switches from
hard-realtime to soft-realtime and back every update. I'm not sure if
it would resolve your problem though.

> I set activity of the soem component to 5 kHz as:
>
> setActivity("soemBoard",0.0002,HighestPriority,ORO_SCHED_RT)
>
> Using deployer-gnulinux this component works well, but using
> deployer-xenomai the soem component is in state EC_STATE_SAFE_OP +
> EC_STATE_ERROR, and so it does not work.
>
> Other generic components work well using deployer-xenomai but not master
> ethercat soem component.
>
> How can I solve this problem? I must use deployer-xenomai in order to
> maintain the real time execution.

In this case you definitely need to use RTNet for soem. Please install
rtnet and use an rtethx device as interface for soem.

Ruben

> Hi,
> Luisa.
>
>
>
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>