2022年7月15日金曜日

ros2のpendulum_demoを実行してみた話

ros2のpendulum_demo[https://github.com/ros2/demos/tree/master/pendulum_control]を実行してみたときのメモ。

環境

ホスト環境

OS:PROXMOX VE 7.2
CPU:intel core i7 -11800H
Mem:16GB

ゲスト環境

OS:Ubuntu 22.04
CPU:8vCPU
Mem:12GB
非リアルタイムカーネル使用

pendulum_demoの実行

まずはそのまま実行してみる。

anishiyama@ubuntu-ros2:~/ros2/humble$ source ./install/setup.sh 
anishiyama@ubuntu-ros2:~/ros2/humble$ pendulum_demo 
Couldn't set scheduling priority and policy: Operation not permitted
Caught exception: std::bad_alloc
Unlocking memory and continuing.
Couldn't lock all cached virtual memory.
Pagefaults from reading pages not yet mapped into RAM will be recorded.
Initial major pagefaults: 0
Initial minor pagefaults: 315622
No results filename given, not writing results
rttest statistics:
  - Minor pagefaults: 0
  - Major pagefaults: 0
  Latency (time after deadline was missed):
    - Min: 57384 ns
    - Max: 210201 ns
    - Mean: 90464.533000 ns
    - Standard deviation: 25207.301195
PendulumMotor received 496 messages
PendulumController received 495 messages

いくつかメッセージが確認できるので、 readmeに従い/etc/security/limits.confを編集する。 同時にpriorityも98まで設定できるようにする。 実行ユーザがanisiyamaなので、次の記述を追加した。

anishiyama      -       memlock         10000000
anishiyama      -       rtprio          98

ログインし直して再実行。 メッセージはいくつか消えた。 仮想環境なためか、実行レイテンシは大きめ。

anishiyama@ubuntu-ros2:~/ros2/humble$ pendulum_demo 
Initial major pagefaults: 0
Initial minor pagefaults: 2124626
No results filename given, not writing results
rttest statistics:
  - Minor pagefaults: 0
  - Major pagefaults: 0
  Latency (time after deadline was missed):
    - Min: 8947 ns
    - Max: 224184 ns
    - Mean: 51156.345000 ns
    - Standard deviation: 29789.714229


PendulumMotor received 498 messages
PendulumController received 493 messages

0 件のコメント:

コメントを投稿