CPU time limit exceeded (SOEM maste component + Xenomai + RTNet)

Hi all

I installed Xenomai and RTNet apparently without errors. Now, I'm running my SOEM master Orocos component (http://www.ros.org/wiki/soem) but I've been having some problems. When I configure it, it configures the slaves correctly (even though some times it gets stuck). but when I start it I get a 'CPU time limit exceeded':

Deployer [S]> import("PowerCube_CAN_EtherCat_server")
 = true                
 
Deployer [S]> loadComponent("EtherCat_Master","soem_master::SoemMasterComponent")
 = true                
 
Deployer [S]> loadComponent("PCubeServer", "PowerCube_CAN_EtherCat_server")
22.562 [ Info   ][ORP-PCubeServer] ORP-PCubeServer manually raises LogLevel to 'Info' (5). See also file 'orocos.log'.
PowerCube_CAN_EtherCat_server constructed !
22.562 [ Info   ][DeploymentComponent::loadComponent] Adding PCubeServer as new peer:  OK.
 = true                
 
Deployer [S]> connectPeers("EtherCat_Master", "PCubeServer")
 = true                
 
Deployer [S]> EtherCat_Master.configure
22.564 [ Info   ][EtherCat_Master] ec_init on rteth0 succeeded.
22.591 [ Info   ][EtherCat_Master] 1 slaves found and configured.
22.591 [ Info   ][EtherCat_Master] Request pre-operational state for all slaves
22.698 [ Info   ][EtherCat_Master] Created driver for CAN-EtherCAT, with address 4097
22.698 [ Info   ][EtherCat_Master] Put configured parameters in the slaves.
22.717 [ Info   ][EtherCat_Master] Request safe-operational state for all slaves
22.717 [ Info   ][EtherCat_Master] Safe operational state reached for all slaves.
22.717 [ Info   ][EtherCat_Master] Request operational state for all slaves
22.742 [ Info   ][EtherCat_Master] Operational state reached for all slaves.
 = true                
 
Deployer [S]> EtherCat_Master.start
 = true                
 
Deployer [S]> CPU time limit exceeded

Did I miss something in the kernel/Xenomai/RTNet configuration/installation that is causing this error? The versions I'm using are:

- Xenomai 2.6.0 (linux kernel 2.6.38.8)

- RTNET 0.9.12

- ROS Diamondback

- Orocos: orocos_toolchain_ros (ros-diamondback) + patch for Xenomai 2.6.0 (http://bugs.orocos.org/show_bug.cgi?id=913)

- Ethernet card: Intel Corporation 82574L Gigabit Network Connection

Regards,

Santiago

Ruben Smits's picture

CPU time limit exceeded (SOEM maste component + Xenomai + RTNet)

Hi Santiago,

On Mon, Feb 13, 2012 at 4:36 PM, <focke [dot] 85 [..] ...> wrote:

> Hi all
>
> I installed Xenomai and RTNet apparently without errors. Now, I'm running
> my
> SOEM master Orocos component (http://www.ros.org/wiki/soem) but I've been
> having some problems. When I configure it, it configures the slaves
> correctly
> (even though some times it gets stuck). but when I start it I get a 'CPU
> time limit exceeded':
>
> Deployer [S]> import("PowerCube_CAN_EtherCat_server")
> = true
>
> Deployer [S]>
> loadComponent("EtherCat_Master","soem_master::SoemMasterComponent")
> = true
>
> Deployer [S]> loadComponent("PCubeServer", "PowerCube_CAN_EtherCat_server")
> 22.562 [ Info ][ORP-PCubeServer] ORP-PCubeServer manually raises LogLevel
> to 'Info' (5). See also file 'orocos.log'.
> PowerCube_CAN_EtherCat_server constructed !
> 22.562 [ Info ][DeploymentComponent::loadComponent] Adding PCubeServer as
> new peer: OK.
> = true
>
> Deployer [S]> connectPeers("EtherCat_Master", "PCubeServer")
> = true
>
> Deployer [S]> EtherCat_Master.configure
> 22.564 [ Info ][EtherCat_Master] ec_init on rteth0 succeeded.
> 22.591 [ Info ][EtherCat_Master] 1 slaves found and configured.
> 22.591 [ Info ][EtherCat_Master] Request pre-operational state for all
> slaves
> 22.698 [ Info ][EtherCat_Master] Created driver for CAN-EtherCAT, with
> address 4097
> 22.698 [ Info ][EtherCat_Master] Put configured parameters in the slaves.
> 22.717 [ Info ][EtherCat_Master] Request safe-operational state for all
> slaves
> 22.717 [ Info ][EtherCat_Master] Safe operational state reached for all
> slaves.
> 22.717 [ Info ][EtherCat_Master] Request operational state for all slaves
> 22.742 [ Info ][EtherCat_Master] Operational state reached for all
> slaves.
> = true
>
>
Before you start you should set the periodicity of your component to
something smaller than 0.01:

setActivity("EtherCat_Master",0.001,HighestPriority,ORO_SCHED_RT)

> Deployer [S]> EtherCat_Master.start
> = true
>
> Deployer [S]> CPU time limit exceeded
>
>
> Did I miss something in the kernel/Xenomai/RTNet configuration/installation
> that is causing this error? The versions I'm using are:
>
> - Xenomai 2.6.0 (linux kernel 2.6.38.8)
>
> - RTNET 0.9.12
>
> - ROS Diamondback
>

- Orocos: orocos_toolchain_ros (ros-diamondback) + patch for Xenomai 2.6.0
> (http://bugs.orocos.org/show_bug.cgi?id=913)
>
>
I would also advice to use the orocos_toolchain from electric if possible.

> - Ethernet card: Intel Corporation 82574L Gigabit Network Connection
>
>
>
> Regards,
>
> Santiago
>
>
Ruben

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

Re:

Hi Ruben

It worked perfectly. I had a period of 0.001 already, so I guess that the problem was that my scheduler type and priority were in default value.

BR,

Santiago

Ruben Smits wrote:
Hi Santiago,

On Mon, Feb 13, 2012 at 4:36 PM, <focke [dot] 85 [..] ...> wrote:

> Hi all >> I installed Xenomai and RTNet apparently without errors. Now, I'm running > my > SOEM master Orocos component (http://www.ros.org/wiki/soem) but I've been > having some problems. When I configure it, it configures the slaves > correctly > (even though some times it gets stuck). but when I start it I get a 'CPU > time limit exceeded': >> Deployer [S]> import("PowerCube_CAN_EtherCat_server") > = true >> Deployer [S]> > loadComponent("EtherCat_Master","soem_master::SoemMasterComponent") > = true >> Deployer [S]> loadComponent("PCubeServer", "PowerCube_CAN_EtherCat_server") > 22.562 [ Info ][ORP-PCubeServer] ORP-PCubeServer manually raises LogLevel > to 'Info' (5). See also file 'orocos.log'. > PowerCube_CAN_EtherCat_server constructed ! > 22.562 [ Info ][DeploymentComponent::loadComponent] Adding PCubeServer as > new peer: OK. > = true >> Deployer [S]> connectPeers("EtherCat_Master", "PCubeServer") > = true >> Deployer [S]> EtherCat_Master.configure > 22.564 [ Info ][EtherCat_Master] ec_init on rteth0 succeeded. > 22.591 [ Info ][EtherCat_Master] 1 slaves found and configured. > 22.591 [ Info ][EtherCat_Master] Request pre-operational state for all > slaves > 22.698 [ Info ][EtherCat_Master] Created driver for CAN-EtherCAT, with > address 4097 > 22.698 [ Info ][EtherCat_Master] Put configured parameters in the slaves. > 22.717 [ Info ][EtherCat_Master] Request safe-operational state for all > slaves > 22.717 [ Info ][EtherCat_Master] Safe operational state reached for all > slaves. > 22.717 [ Info ][EtherCat_Master] Request operational state for all slaves > 22.742 [ Info ][EtherCat_Master] Operational state reached for all > slaves. > = true >

> Before you start you should set the periodicity of your component to something smaller than 0.01:

setActivity("EtherCat_Master",0.001,HighestPriority,ORO_SCHED_RT)

> Deployer [S]> EtherCat_Master.start > = true >> Deployer [S]> CPU time limit exceeded >> > Did I miss something in the kernel/Xenomai/RTNet configuration/installation > that is causing this error? The versions I'm using are: >> - Xenomai 2.6.0 (linux kernel 2.6.38.8) >> - RTNET 0.9.12 >

> - ROS Diamondback >

- Orocos: orocos_toolchain_ros (ros-diamondback) + patch for Xenomai 2.6.0 > (http://bugs.orocos.org/show_bug.cgi?id=913) >

> I would also advice to use the orocos_toolchain from electric if possible.

> - Ethernet card: Intel Corporation 82574L Gigabit Network Connection >> >> Regards, >> Santiago >

> Ruben

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