Запуск w4orocos

Опубликовано Sergey Worm - вс, 09/23/2018 - 20:39

w4orocos является внешним WrmOS проектом, содержащим фреймворк OROCOS и демонстрационное приложение. w4orocos позволяет запускать демонстрационное приложение на WrmOS и на локальном компьютере (GNU Linux). Данная статья  описывает как собрать и запустить проект w4orocos.

Содержание
1. Запуск на WrmOS
2. Запуск на локальном компьютере (GNU Linux)

1. Запуск на WrmOS [наверх]


Шаг 1.1. Получить кроссплатформенный тулчейн

Подробную информацию смотрите в статье Как получить тулчейн.

Шаг 1.2. Получить исходники WrmOS

Клонировать репозиторий из github:

git clone https://github.com/wrmlab/wrmos.git

или загрузить zip архив.

Шаг 1.3. Получить исходники w4orocos

Клонировать репозиторий из github:

git clone https://github.com/wrmlab/w4orocos.git

или загрузить zip архив.

Шаг 1.4. Собрать проект w4orocos для WrmOS

Запустить сборку проекта w4orocos для архитектуры SPARC и платформы LEON3 (это может занять несколько минут):

make build P=cfg/prj/orocos-qemu-leon3.prj W=../wrmos B=../build/orocos-qemu-leon3 -j

В результате мы получим образ загрузчика с файловой системой, содержащей исполняемый файл приложения orocos.elf:

ls ../build/orocos-qemu-leon3/ldr/bootloader.elf

Шаг 1.5. Запустить w4orocos на виртуальной машине QEMU

qemu-system-sparc -M leon3_generic -display none -serial stdio \
                  -kernel ../build/orocos-qemu-leon3/ldr/bootloader.elf

В результате мы увидим следующий вывод:

[ldr]   _    _ ___ __  __   ___  ___ 
[ldr]  | |  | | _ \  \/  | / _ \/ __|
[ldr]  | |/\| |   / |\/| || (_) \__ \
[ldr]  |__/\__|_|_\_|  |_(_)___/|___/
[ldr]          From Russia with love!
[ldr]
[ldr]  cpu #0/1 ready, sp=0x406299c0.
[ldr]
[ldr]  hello:   14:40:24  Sep 23 2018.
[ldr]  gccver:  7.3.0.
[ldr]  hware:   sparc, leon3, qemu, qemu_leon3.
[ldr]  ram:     [0x40000000 - 0x48000000)     128 MB.
[ldr]  ramfs:   [0x40259000 - 0x4061b000)    3848 KB.
[ldr]  ##  name                    data      size  content
[ldr]   1  kernel.elf        0x4025a000    377100  'ELF ...'
[ldr]   2  sigma0.elf        0x402b610c     53076  'ELF ...'
[ldr]   3  roottask.elf      0x402c3060    164864  'ELF ...'
[ldr]   4  config.alph       0x402eb460      1477  '# config ...'
[ldr]   5  uart.elf          0x402ec000     87468  'ELF ...'
[ldr]   6  console.elf       0x40302000    116020  'ELF ...'
[ldr]   7  orocos.elf        0x4031f000   3121928  'ELF ...'
[ldr]
[ldr]  elf:  foreach:  elf=0x4025a000, sz=0x5c10c.
[ldr]    app=kernel, va=0x40000000, pa=0x40000000, sz=0x00001000, load=1.
[ldr]    app=kernel, va=0xf0020000, pa=0x40020000, sz=0x00201000, load=1.
[ldr]    app=kernel, va=0x00000000, pa=0x00000000, sz=0x00000000, load=0.
[ldr]  elf:  foreach:  elf=0x402b610c, sz=0xcf54.
[ldr]    app=sigma0, addr=0x00000000, sz=0x00000000, acc=0, progbits=0, name=.
[ldr]    app=sigma0, addr=0x40221000, sz=0x00008000, acc=5, progbits=1, name=.text.
[ldr]    app=sigma0, addr=0x40229000, sz=0x00001000, acc=4, progbits=1, name=.rodata.
[ldr]    app=sigma0, addr=0x4022a000, sz=0x00001000, acc=6, progbits=1, name=.data.
[ldr]    app=sigma0, addr=0x4022b000, sz=0x00004000, acc=6, progbits=1, name=.bss.
[ldr]    app=sigma0, addr=0x00000000, sz=0x00000010, acc=0, progbits=0, name=.gnu.attributes.
[ldr]    app=sigma0, addr=0x00000000, sz=0x00000f10, acc=0, progbits=0, name=.symtab.
[ldr]    app=sigma0, addr=0x00000000, sz=0x00000e86, acc=0, progbits=0, name=.strtab.
[ldr]    app=sigma0, addr=0x00000000, sz=0x00000044, acc=0, progbits=0, name=.shstrtab.
[ldr]    app=sigma0, va=0x40221000, pa=0x40221000, sz=0x0000e000, load=1.
[ldr]  elf:  foreach:  elf=0x402c3060, sz=0x28400.
[ldr]    app=roottask, addr=0x00000000, sz=0x00000000, acc=0, progbits=0, name=.
[ldr]    app=roottask, addr=0x4022f000, sz=0x0001c000, acc=5, progbits=1, name=.text.
[ldr]    app=roottask, addr=0x4024b000, sz=0x00005000, acc=4, progbits=1, name=.rodata.
[ldr]    app=roottask, addr=0x40250000, sz=0x00001000, acc=6, progbits=1, name=.data.
[ldr]    app=roottask, addr=0x40251000, sz=0x00007000, acc=6, progbits=1, name=.bss.
[ldr]    app=roottask, addr=0x40258000, sz=0x00001000, acc=6, progbits=1, name=.stack.
[ldr]    app=roottask, addr=0x00000000, sz=0x00000010, acc=0, progbits=0, name=.gnu.attributes.
[ldr]    app=roottask, addr=0x00000000, sz=0x00001e30, acc=0, progbits=0, name=.symtab.
[ldr]    app=roottask, addr=0x00000000, sz=0x000033e3, acc=0, progbits=0, name=.strtab.
[ldr]    app=roottask, addr=0x00000000, sz=0x0000004b, acc=0, progbits=0, name=.shstrtab.
[ldr]    app=roottask, va=0x4022f000, pa=0x4022f000, sz=0x0002a000, load=1.
[ldr]  memory regions:
[ldr]    [40000000 - 40001000)  sz=0x00001000,  kernel.
[ldr]    [40020000 - 40221000)  sz=0x00201000,  kernel.
[ldr]    [40221000 - 4022f000)  sz=0x0000e000,  sigma0.
[ldr]    [4022f000 - 40259000)  sz=0x0002a000,  roottask.
[ldr]    [4061b000 - 4062a000)  sz=0x0000f000,  bootloader.
[ldr]    [4062a000 - 48000000)  sz=0x079d6000,  free.
[ldr]  elf:  foreach:  elf=0x4025a000, sz=0x5c10c.
[ldr]    load:  loc=0x4025b000, pa=0x40000000, sz=0x00001000, load=1.
[ldr]    load:  loc=0x4025c000, pa=0x40020000, sz=0x00201000, load=1.
[ldr]    load:  loc=0x4025a000, pa=0x00000000, sz=0x00000000, load=0.
[ldr]  elf:  foreach:  elf=0x402b610c, sz=0xcf54.
[ldr]    load:  loc=0x402b710c, pa=0x40221000, sz=0x0000e000, load=1.
[ldr]  elf:  foreach:  elf=0x402c3060, sz=0x28400.
[ldr]    load:  loc=0x402c4060, pa=0x4022f000, sz=0x0002a000, load=1.
[ldr]  KIP found at 0x40020000.
[ldr]  Go to kernel.

[----:0.000000]  kernel:  cpu #0 hello, sp=0xf006cef8.
[sgm0:0.006143]  inf:  hello.
[sgm0:0.008882]  inf:  free memory = 0x79e5000.
[alph:0.026613]  inf:  hello.
[alph:0.033401]  inf:  get memory from sigma0.
[alph:0.213193]  inf:  got memory:  0x79e5000 bytes.
[alph:0.216282]  inf:  Project config:
[alph:0.216645]  inf:    Board config:
[alph:0.217010]  inf:      ##  device    paddr        size        irq
[alph:0.217526]  inf:       0  uart      0x80000100   0x00000100    3
[alph:0.218004]  inf:    Memory config:
[alph:0.218279]  inf:      ##  name       size        cached  contig
[alph:0.218659]  inf:    Apps config:
[alph:0.219021]  inf:      [0]
[alph:0.219264]  inf:        name:             uart
[alph:0.219572]  inf:        short_name:       uart
[alph:0.219876]  inf:        file:             ramfs:/uart.elf
[alph:0.220263]  inf:        stack_sz:         0x1000
[alph:0.220576]  inf:        heap_sz:          0x4000
[alph:0.220890]  inf:        max_aspaces:      1
[alph:0.221198]  inf:        max_threads:      3
[alph:0.221503]  inf:        max_prio:         120
[alph:0.221808]  inf:        fpu:              0
[alph:0.222111]  inf:        malloc_strategy:  on_startup
[alph:0.222434]  inf:        devices:          0
[alph:0.222731]  inf:        memory:           
[alph:0.223022]  inf:        args:             uart
[alph:0.223341]  inf:      [1]
[alph:0.223578]  inf:        name:             console
[alph:0.223876]  inf:        short_name:       cons
[alph:0.224170]  inf:        file:             ramfs:/console.elf
[alph:0.224497]  inf:        stack_sz:         0x1000
[alph:0.224798]  inf:        heap_sz:          0x4000
[alph:0.225096]  inf:        max_aspaces:      1
[alph:0.225378]  inf:        max_threads:      3
[alph:0.225660]  inf:        max_prio:         110
[alph:0.225949]  inf:        fpu:              0
[alph:0.226233]  inf:        malloc_strategy:  on_startup
[alph:0.226539]  inf:        devices:          
[alph:0.226818]  inf:        memory:           
[alph:0.227095]  inf:        args:             
[alph:0.227376]  inf:      [2]
[alph:0.227613]  inf:        name:             orocos
[alph:0.227908]  inf:        short_name:       oro
[alph:0.228202]  inf:        file:             ramfs:/orocos.elf
[alph:0.228524]  inf:        stack_sz:         0x2000
[alph:0.228821]  inf:        heap_sz:          0x40000
[alph:0.229139]  inf:        max_aspaces:      9
[alph:0.229447]  inf:        max_threads:      22
[alph:0.229733]  inf:        max_prio:         100
[alph:0.230050]  inf:        fpu:              1
[alph:0.230381]  inf:        malloc_strategy:  on_startup
[alph:0.230690]  inf:        devices:          
[alph:0.230969]  inf:        memory:           
[alph:0.231249]  inf:        args:             
[alph:0.231565]  inf:  get iospace from sigma0.
[alph:0.232935]  inf:  got iospace from sigma0.
[alph:0.233625]  inf:  prepare named memory regions for apps.
[alph:0.233984]  inf:  prepared named memory regions for apps.
[alph:0.234348]  inf:  create app=uart.
[alph:0.243077]  inf:  create app=console.
[alph:0.247461]  inf:  create app=orocos.
[uart:0.273194]  inf:  hello.
[uart:0.276318]  inf:  argc=2, argv=0xff2000.
[uart:0.277078]  inf:  arg[0] = uart.
[uart:0.277379]  inf:  arg[1] = uart.
[uart:0.277676]  inf:  myid=131.
[uart:0.278758]  inf:  map_io:  addr=0x70000100, sz=0x100.
[uart:0.283008]  inf:  create_thread:  rc=0, id=132.
[uart:0.284925]  inf:  create_thread:  rc=0, id=133.
[u-tx:0.285872]  inf:  tx:  hello:  tx_thread.
[u-tx:0.286211]  inf:  tx:  myid=132.
[u-rx:0.287677]  inf:  rx:  hello:  rx_thread.
[u-rx:0.288025]  inf:  rx:  myid=133.
[u-hw:0.288810]  inf:  attach_int:  dev=uart, irq=3.
[u-tx:0.289464]  inf:  attach:  thread 'uart-tx-stream' is registered, key:  46189/461a4.
[u-tx:0.289900]  inf:  attach:  wait attach msg.
[u-rx:0.290432]  inf:  attach:  thread 'uart-rx-stream' is registered, key:  466c6/466de.
[u-rx:0.290859]  inf:  attach:  wait attach msg.
[cons:0.311914]  inf:  hello:  myid=134.
[cons:0.320122]  inf:  create_thread:  rc=0, id=135.
[cons:0.322185]  inf:  create_thread:  rc=0, id=136.
[c-dr:0.323251]  inf:  drv:  myid=135.
[c-dr:0.324895]  inf:  attach:  got id=132, for thread 'uart-tx-stream', key:  46189/461a4.
[u-tx:0.325794]  inf:  attach:  attached to 135.
[u-tx:0.326239]  inf:  tx:  attached to client=135
[c-cl:0.328386]  inf:  cli:  myid=136.
[c-dr:0.329152]  inf:  attach:  got id=133, for thread 'uart-rx-stream', key:  466c6/466de.
[u-rx:0.329768]  inf:  attach:  attached to 135.
[u-rx:0.330148]  inf:  rx:  attached to client=135
[c-cl:0.330675]  inf:  cli:  thread 'console-server' is registered, key:  50493/504aa.
Hello Oro!

getenv:  name=ORO_LOGFILE!
fopen64:  filename=orocos.log!
getenv:  name=ORO_LOGLEVEL!
getenv:  name=RTT_IGNORE_EXCEPTION!
cntrl:  construct.
servo:  construct.
shaft:  construct.
encdr:  construct.
cntrl:  configure.
servo:  configure.
encdr:  configure.
shaft:  configure.
cntrl:  start.
servo:  start.
shaft:  start.
encdr:  start.
shaft:  updateHook.
encdr:  updateHook:  get: val=0.000000 (old).

cntrl:  updateHook:  wr:  val=0.100000.
servo:  updateHook:  rd:  val=0.100000.
shaft:  setPosition: set: val=0.100000.
encdr:  updateHook:  get: val=0.100000 (new).
cntrl:  posChanged:  new: val=0.100000.
encdr:  updateHook:  get: val=0.100000 (old).

cntrl:  updateHook:  wr:  val=0.200000.
servo:  updateHook:  rd:  val=0.200000.
shaft:  setPosition: set: val=0.200000.
encdr:  updateHook:  get: val=0.200000 (new).
cntrl:  posChanged:  new: val=0.200000.
encdr:  updateHook:  get: val=0.200000 (old).

cntrl:  updateHook:  wr:  val=0.300000.
servo:  updateHook:  rd:  val=0.300000.
shaft:  setPosition: set: val=0.300000.
encdr:  updateHook:  get: val=0.300000 (new).
cntrl:  posChanged:  new: val=0.300000.
cntrl:  stop.
servo:  stop.
shaft:  stop.
encdr:  stop.
Bye-bye!

[alph:3.624377]  inf:  app=137 terminated.

2. Запуск на локальном компьютере (GNU Linux) [наверх]


Шаг 1.1. Получить исходники w4orocos

Клонировать репозиторий из github:

git clone https://github.com/wrmlab/w4orocos.git

или загрузить zip архив.

Шаг 1.2. Собрать проект w4orocos для локального компьютера

Запустить полную сборку проекта w4orocos для локального компьютера с ОС основанной на GNU Linux (это может занять несколько минут):

cd w4orocos
make localhost-build-full B=../build/orocos.loc -j

В результате получим статически слинкованный исполняемый файл orocos.elf:

ls ../build/orocos.loc/demo.oro/build/demo.elf

Шаг 1.3. Запуск исполняемго файла demo.elf

../build/orocos.loc/demo.oro/build/demo.elf

В результате увидим следующий вывод:

Hello Oro!

cntrl:  construct.
servo:  construct.
shaft:  construct.
encdr:  construct.
0.002 [ Warning][Thread] Lowering scheduler type to SCHED_OTHER for non-privileged users..
0.002 [ Warning][Activity] Lowering scheduler type to SCHED_OTHER for non-privileged users..
0.002 [ Warning][Thread] Lowering scheduler type to SCHED_OTHER for non-privileged users..
cntrl:  configure.
servo:  configure.
encdr:  configure.
shaft:  configure.
cntrl:  start.
servo:  start.
shaft:  start.
encdr:  start.
shaft:  updateHook.
encdr:  updateHook:  get: val=0.000000 (old).

cntrl:  updateHook:  wr:  val=0.100000.
servo:  updateHook:  rd:  val=0.100000.
shaft:  setPosition: set: val=0.100000.
encdr:  updateHook:  get: val=0.100000 (new).
cntrl:  posChanged:  new: val=0.100000.
encdr:  updateHook:  get: val=0.100000 (old).

cntrl:  updateHook:  wr:  val=0.200000.
servo:  updateHook:  rd:  val=0.200000.
shaft:  setPosition: set: val=0.200000.
encdr:  updateHook:  get: val=0.200000 (new).
cntrl:  posChanged:  new: val=0.200000.
encdr:  updateHook:  get: val=0.200000 (old).

cntrl:  updateHook:  wr:  val=0.300000.
servo:  updateHook:  rd:  val=0.300000.
shaft:  setPosition: set: val=0.300000.
encdr:  updateHook:  get: val=0.300000 (new).
cntrl:  posChanged:  new: val=0.300000.
encdr:  updateHook:  get: val=0.300000 (old).
cntrl:  stop.
servo:  stop.
shaft:  stop.
encdr:  stop.
Bye-bye!

Шаг 1.4. Запуск компонентов демонстрационного приложения с помодью deployer'а

make localhost-run-deployer B=../build/orocos.loc

В результате увидим следующий вывод:

Real-time memory: 517904 bytes free of 524288 allocated.
0.000 [ Info   ][Logger] No RTT_COMPONENT_PATH set. Using default: /home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos
0.000 [ Info   ][Logger] plugin 'rtt' not loaded before.
0.000 [ Info   ][Logger] Loading plugin libraries from directory /home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/./plugins ...
0.001 [ Info   ][Logger] Loaded RTT Service 'scripting' from 'rtt-scripting'
0.001 [ Info   ][Logger] Loaded RTT Service 'marshalling' from 'rtt-marshalling'
0.001 [ Info   ][Logger] typekit 'rtt' not loaded before.
0.001 [ Info   ][Logger] Loading typekit libraries from directory /home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/./types ...
0.017 [ Info   ][TypekitRepository::Import] Loading Typekit rtt-types.
0.017 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'rtt-types' from 'rtt-typekit'
0.019 [ Info   ][TypekitRepository::Import] Loading Transport mqueue://rtt-types.
0.019 [ Info   ][TypekitRepository::Import] Registered new 'mqueue' transport for array
0.019 [ Info   ][TypekitRepository::Import] Registered new 'mqueue' transport for bool
0.019 [ Info   ][TypekitRepository::Import] Registered new 'mqueue' transport for char
0.019 [ Info   ][TypekitRepository::Import] Registered new 'mqueue' transport for double
0.020 [ Info   ][TypekitRepository::Import] Registered new 'mqueue' transport for float
0.020 [ Info   ][TypekitRepository::Import] Registered new 'mqueue' transport for int
0.020 [ Info   ][TypekitRepository::Import] Registered new 'mqueue' transport for uint
0.020 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'rtt-mqueue-transport' from 'rtt-transport-mqueue'
0.020 [ Info   ][Logger] No RTT_COMPONENT_PATH set. Using default: /home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos
0.020 [ Info   ][Logger] OCL factory set for real-time logging
0.020 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='Deployer'
0.020 [ Info   ][Deployer] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26421 ).
0.021 [ Info   ][Logger] No site file was found. Importing 'ocl' by default.
0.021 [ Info   ][ComponentLoader::import(path_list)] Importing directory /home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/ocl ...
0.023 [ Info   ][ComponentLoader::import(path_list)] Loaded multi component library '/home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/ocl/liborocos-ocl-reporting-gnulinux.so'
0.028 [ Info   ][ComponentLoader::import(path_list)] Loaded component type 'OCL::logging::Log4cxxAppender'
0.030 [ Info   ][ComponentLoader::import(path_list)] Loaded multi component library '/home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/ocl/liborocos-ocl-timer-gnulinux.so'
0.031 [ Info   ][ComponentLoader::import(path_list)] Loaded component type 'OCL::HelloWorld'
0.032 [ Info   ][ComponentLoader::import(path_list)] Loaded multi component library '/home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/ocl/liborocos-ocl-common-gnulinux.so'
0.033 [ Info   ][ComponentLoader::import(path_list)] Loaded multi component library '/home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/ocl/liborocos-ocl-logging-gnulinux.so'
0.051 [ Info   ][ComponentLoader::import(path_list)] Loaded multi component library '/home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/ocl/liborocos-ocl-reporting-netcdf-gnulinux.so'
0.051 [ Info   ][ComponentLoader::import(path_list)] Loaded component type 'OCL::NetcdfReporting'
0.051 [ Info   ][ComponentLoader::import(path_list)] Loading typekit libraries from directory /home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/ocl/types ...
0.054 [ Info   ][TypekitRepository::Import] Loading Typekit OCLTypekit.
0.055 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT TypeKit/Transport 'OCLTypekit' from 'ocl'
0.055 [ Info   ][ComponentLoader::import(path_list)] Loading plugin libraries from directory /home/worm/Dev/Wrm/build/orocos.loc/orocos/install_isolated/lib/orocos/gnulinux/ocl/plugins ...
0.056 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT Service 'print' from 'print'
0.057 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT Service 'os' from 'os'
0.057 [ Info   ][Logger] Loading Service or Plugin scripting in TaskContext Deployer
0.058 [ Info   ][Logger] Found complete interface of requested service 'scripting'
0.059 [ Info   ][Logger] Running Script ../src/start.ops ...
0.059 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='GlobalEngine'
0.059 [ Info   ][GlobalEngine] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26422 ).
0.067 [ Info   ][ComponentLoader::import(package, path_list)] Loaded multi component library 'orocos/gnulinux/demo.oro/libdemocomponents-gnulinux.so'
0.068 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='cntrl'
0.068 [ Info   ][cntrl] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26423 ).
cntrl:  construct.
0.068 [ Info   ][loadComponent] Adding cntrl as new peer:  OK.
0.069 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='servo'
0.069 [ Info   ][servo] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26424 ).
servo:  construct.
0.069 [ Info   ][loadComponent] Adding servo as new peer:  OK.
0.069 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='encdr'
0.070 [ Info   ][encdr] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26425 ).
encdr:  construct.
0.070 [ Info   ][loadComponent] Adding encdr as new peer:  OK.
0.070 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='shaft'
0.070 [ Info   ][shaft] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26426 ).
shaft:  construct.
0.070 [ Info   ][loadComponent] Adding shaft as new peer:  OK.
0.071 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='timer'
0.071 [ Info   ][timer] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26427 ).
0.071 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_RT, priority=99, CPU affinity=0, with name='Timer'
0.071 [ Warning][Thread] Lowering scheduler type to SCHED_OTHER for non-privileged users..
0.071 [ Warning][Thread] Forcing priority (99) of thread with SCHED_OTHER policy to 0.
0.071 [ Info   ][Timer] Lowering scheduler type to SCHED_OTHER for non-privileged users..Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26428 ).
0.072 [ Info   ][loadComponent] Adding timer as new peer:  OK.
0.073 [ Info   ][connect] Connected Port cntrl.tx-servo to  servo.rx-cntrl.
0.075 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=4294967295, with name='cntrl'
0.075 [ Info   ][cntrl] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 1 (PID= 26429 ).
0.076 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=4294967295, with name='encdr'
0.076 [ Info   ][encdr] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0.5 (PID= 26430 ).
cntrl:  configure.
servo:  configure.
encdr:  configure.
shaft:  configure.
cntrl:  start.
servo:  start.
encdr:  start.
shaft:  start.
shaft:  updateHook.
encdr:  updateHook:  get: val=0.000000 (old).

cntrl:  updateHook:  wr:  val=0.100000.
servo:  updateHook:  rd:  val=0.100000.
shaft:  setPosition: set: val=0.100000.
encdr:  updateHook:  get: val=0.100000 (new).
cntrl:  posChanged:  new: val=0.100000.
encdr:  updateHook:  get: val=0.100000 (old).

cntrl:  updateHook:  wr:  val=0.200000.
servo:  updateHook:  rd:  val=0.200000.
shaft:  setPosition: set: val=0.200000.
encdr:  updateHook:  get: val=0.200000 (new).
cntrl:  posChanged:  new: val=0.200000.
encdr:  updateHook:  get: val=0.200000 (old).

cntrl:  updateHook:  wr:  val=0.300000.
servo:  updateHook:  rd:  val=0.300000.
shaft:  setPosition: set: val=0.300000.
encdr:  updateHook:  get: val=0.300000 (new).
cntrl:  posChanged:  new: val=0.300000.
encdr:  updateHook:  get: val=0.300000 (old).
cntrl:  stop.
encdr:  updateHook:  get: val=0.300000 (old).
servo:  stop.
encdr:  stop.
shaft:  stop.
4.578 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='TaskBrowser'
4.578 [ Info   ][TaskBrowser] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 255 and period 0 (PID= 26451 ).
   Switched to : Deployer
4.578 [ Info   ][Logger] Entering Task Deployer

  This console reader allows you to browse and manipulate TaskContexts.
  You can type in an operation, expression, create or change variables.
  (type 'help' for instructions and 'ls' for context info)

    TAB completion and HISTORY is available ('bash' like)

    Use 'Ctrl-D' or type 'quit' to exit this program.

Теги