Orocos RTT on RTAI 3.8

Hello,
did anyone run Orocos RTT succesfully on RTAI 3.8.1.
On the FAQ
(http://people.mech.kuleuven.be/~orocos/pub/stable/documentation/rtt/v2.6...)
there is just RTAI 3.4 as a working version.
I would like to use Orocos for communication between a real time task
(generated from Simulink and using the OrocosRTT Simulink blocks) and
ROS (that has integrated Orocos Support as well).
Does anyone have any suggestions if this setup can/will work?

best wishes

Johannes Mayr

Orocos RTT on RTAI 3.8

Hi Johannes,

On Fri, Mar 15, 2013 at 9:09 AM, Johannes Mayr <joh [dot] mayr [..] ...> wrote:
> Hello,
> did anyone run Orocos RTT succesfully on RTAI 3.8.1.
> On the FAQ
> (http://people.mech.kuleuven.be/~orocos/pub/stable/documentation/rtt/v2.6...)
> there is just RTAI 3.4 as a working version.
> I would like to use Orocos for communication between a real time task
> (generated from Simulink and using the OrocosRTT Simulink blocks) and
> ROS (that has integrated Orocos Support as well).
> Does anyone have any suggestions if this setup can/will work?

The last known tested version I know of is 3.6. We'll gladly accept
any patches for 3.8.1 :-)

I'm running a test virtual machine for Xenomai we can do the same for
RTAI. If you can point us to setting up an RTAI kernel with Debian
packages for Ubuntu or Debian, we can at least confirm which parts are
working and which don't.

Peter

Orocos RTT on RTAI 3.8

Hi,
thanks for your reply!
I guess the fastest way to set up a running RTAI will be (at least to my
knowledge) to intall realtime-suite
(https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxyd...).

There is also a LiveCD called RTXI, maybe this can work as well for
testing (http://www.rtxi.org/install/live-cd/).

Would be nice to figure out if it is worth to start working with RTT for
my setup. Thank you very much in advance for your efforts!

Best Wishes

Johannes Mayr

Am 17.03.2013 15:39, schrieb Peter Soetens:
> Hi Johannes,
>
> On Fri, Mar 15, 2013 at 9:09 AM, Johannes Mayr <joh [dot] mayr [..] ...> wrote:
>> Hello,
>> did anyone run Orocos RTT succesfully on RTAI 3.8.1.
>> On the FAQ
>> (http://people.mech.kuleuven.be/~orocos/pub/stable/documentation/rtt/v2.6...)
>> there is just RTAI 3.4 as a working version.
>> I would like to use Orocos for communication between a real time task
>> (generated from Simulink and using the OrocosRTT Simulink blocks) and
>> ROS (that has integrated Orocos Support as well).
>> Does anyone have any suggestions if this setup can/will work?
> The last known tested version I know of is 3.6. We'll gladly accept
> any patches for 3.8.1 :-)
>
> I'm running a test virtual machine for Xenomai we can do the same for
> RTAI. If you can point us to setting up an RTAI kernel with Debian
> packages for Ubuntu or Debian, we can at least confirm which parts are
> working and which don't.
>
> Peter

Orocos RTT on RTAI 3.8

I run Orocos RTT succesfully on RTAI 3.9 but it it has been necessary to insert, in "Thread.cpp", the line rtos_sem_init (&sem, 1); before the line rtos_sem_wait( &sem ); to avoid the system hangs after the creation of first activity. The file is in orocos-toolchain/rtt/rtt/os/ and you must remake rtt. I don't know if it is a stable solution.

orocos RTT RTAI 3.9.1

Hi all, I am still fighting against Orocos-RTT and RTAI 3.9.1. The line rtos_sem_init (&sem, 1) mentioned above does not seeem to solve the problem (thus, I removed it). I patched Logger.hpp/cpp with the patch at http://bugs.orocos.org/attachment.cgi?id=712 as described at

 http://www.orocos.org/forum/rtt/rtt-dev/bug-879-new-error-compilation-depending-logging-option-choices.
In addition, I set-DOS_RT_MALLOC_MMAP=-DOS_RT_MALLOC_SBRK=OFF, -DENABLE_TESTS=ON, and than I run make check in rtt/build directory. I get the messages at the end of the message. The check blocks on task-test. The output of the gdb command for task-test is also below.

Did any of you encounter and solve the same problem? Also a solution for RTT+Rtai 3.8 would be fine.

Please, help me.

Diego G.

OUTPUT OF MAKE CHECK

test 1

      Start  1: main-test
1: Test command: /home/laboratorio/rock/tools/rtt/build/tests/main-test 1: Test timeout computed to be: 2500
 1/38 Test  #1: main-test ........................   Passed    0.05 sec
test 2
      Start  2: list-test
2: Test command: /home/laboratorio/rock/tools/rtt/build/tests/list-test 2: Test timeout computed to be: 2500 2: Running 2 test cases... 2: 2: *** No errors detected
 2/38 Test  #2: list-test ........................   Passed    0.05 sec
test 3
      Start  3: core-test
3: Test command: /home/laboratorio/rock/tools/rtt/build/tests/core-test 3: Test timeout computed to be: 2500 3: Running 11 test cases... 3: 3: *** No errors detected
 3/38 Test  #3: core-test ........................   Passed    5.60 sec
test 4
      Start  4: task-test
4: Test command: /home/laboratorio/rock/tools/rtt/build/tests/task-test

4: Test timeout computed to be: 2500

4: task-test: /usr/include/boost/thread/pthread/mutex.hpp:136: bool boost::timed_mutex::try_lock(): Assertion `!res || res==16' failed.

4: Running 19 test cases...

4: unknown location(0): fatal error in "testSequential": signal: SIGABRT (application abort requeste

4: /home/laboratorio/rock/tools/rtt/tests/taskthread_test.cpp(383): last checkpoint

4: /home/laboratorio/rock/tools/rtt/tests/taskthread_test.cpp(506): error in "testThreadConfig": check tt->getScheduler() == 0 failed

4: /home/laboratorio/rock/tools/rtt/tests/taskthread_test.cpp(519): error in "testThreadConfig": check tt->stop() failed

4: /home/laboratorio/rock/tools/rtt/tests/taskthread_test.cpp(524): error in "testThreadConfig": check tt->start() failed

4: /home/laboratorio/rock/tools/rtt/tests/taskthread_test.cpp(525): error in "testThreadConfig": check tt->stop() failed

4: /home/laboratorio/rock/tools/rtt/tests/taskthread_test.cpp(526): error in "testThreadConfig": check tt->start() failed

                                                                                                    1. À

GDB OF TASK-TEST

  1. 0 0xb7fe2424 in __kernel_vsyscall ()
  2. 1 0xb6eaf651 in raise () from /lib/tls/i686/cmov/libc.so.6
  3. 2 0xb6eb2a82 in abort () from /lib/tls/i686/cmov/libc.so.6
  4. 3 0xb6ea8718 in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
  5. 4 0xb7ee1c2e in boost::timed_mutex::try_lock (this=0xbfffdee0) at /usr/include/boost/thread/pthread/mutex.hpp:136
  6. 5 RTT::os::Mutex::trylock (this=0xbfffdee0) at /home/laboratorio/rock/tools/rtt/rtt/os/Mutex.hpp:182
  7. 6 0xb7f8bf57 in MutexTryLock (this=0xbfffded4) at /home/laboratorio/rock/tools/rtt/rtt/extras/../os/MutexLock.hpp:98
  8. 7 RTT::extras::SequentialActivity::trigger (this=0xbfffded4) at /home/laboratorio/rock/tools/rtt/rtt/extras/SequentialActivity.cpp:158
  9. 8 0x080d634a in ActivitiesThreadTestSuite::testSequential::test_method (this=0xbfffdf4c) at /home/laboratorio/rock/tools/rtt/tests/taskthread_test.cpp:383
  10. 9 0x080d826a in testSequential_invoker () at /home/laboratorio/rock/tools/rtt/tests/taskthread_test.cpp:360
  11. 10 0x080d05dc in invoke<void (*)()> (this=0x8112ac8) at /usr/include/boost/test/utils/callback.hpp:56
  12. 11 boost::unit_test::ut_detail::callback0_impl_t<boost::unit_test::ut_detail::unused, void (*)()>::invoke (this=0x8112ac8) at /usr/include/boost/test/utils/callback.hpp:89
  13. 12 0x08095ff1 in boost::unit_test::callback0<boost::unit_test::ut_detail::unused>::operator() (this=0x811d120) at /usr/include/boost/test/utils/callback.hpp:118
  14. 13 operator() (this=0x811d120) at /usr/include/boost/test/impl/unit_test_monitor.ipp:41
  15. 14 invoke<boost::unit_test::<unnamed>::zero_return_wrapper_t<boost::unit_test::callback0<boost::unit_test::ut_detail::unused> > > (this=0x811d120) at /usr/include/boost/test/utils/callback.hpp:42
  16. 15 invoke (this=0x811d120) at /usr/include/boost/test/utils/callback.hpp:89
  17. 16 0x080939bd in boost::unit_test::callback0<int>::operator() (this=0x81104c8, F=...) at /usr/include/boost/test/utils/callback.hpp:118
  18. 17 do_invoke<boost::scoped_ptr<boost::detail::translate_exception_base>, boost::unit_test::callback0<int> > (this=0x81104c8, F=...) at /usr/include/boost/test/impl/execution_monitor.ipp:244
  19. 18 boost::execution_monitor::catch_signals (this=0x81104c8, F=...) at /usr/include/boost/test/impl/execution_monitor.ipp:956
  20. 19 0x08093aa5 in boost::execution_monitor::execute (this=0x81104c8, F=...) at /usr/include/boost/test/impl/execution_monitor.ipp:1282
  21. 20 0x080a32dd in boost::unit_test::unit_test_monitor_t::execute_and_translate (this=0x81104c8, tc=...) at /usr/include/boost/test/impl/unit_test_monitor.ipp:69
  22. 21 0x080c49be in boost::unit_test::framework_impl::visit (this=0x8110400, tc=...) at /usr/include/boost/test/impl/framework.ipp:150
  23. 22 0x0809c431 in boost::unit_test::traverse_test_tree (suite=..., V=...) at /usr/include/boost/test/impl/unit_test_suite.ipp:207
  24. 23 0x0809c431 in boost::unit_test::traverse_test_tree (suite=..., V=...) at /usr/include/boost/test/impl/unit_test_suite.ipp:207
  25. 24 0x0809d8ef in boost::unit_test::framework::run (id=1, continue_test=true) at /usr/include/boost/test/impl/framework.ipp:436
  26. 25 0x080a8634 in boost::unit_test::unit_test_main (init_func=0x8091120 <init_unit_test_suite(int, char**)>, argc=1, argv=0xbfffeda4) at /usr/include/boost/test/impl/unit_test_main.ipp:185
  27. 26 0x080a8ca3 in main (argc=1, argv=0xbfffeda4) at /usr/include/boost/test/impl/unit_test_main.ipp:237