ROS-O で ROS1 を使う – パッケージのビルド

著者:yamamoto.yosuke

ROS-O で ROS1 を使う – パッケージのビルド

本シリーズ前回の記事「ROS-O で ROS1 を使う – インストール」では ROS-O のインストール手順について説明しました.

今回の記事では ROS-O における ROS1 パッケージのビルドと実行について説明します.

本記事では Ubuntu のバージョンは次の2つとし,また ROS-O が既にインストールされている状態を前提としています.

  • Ubuntu 22.04 + ROS-O
  • Ubuntu 24.04 + ROS-O

ROS-O におけるパッケージのビルドと実行

ROS-O におけるビルドと実行と言っても基本的には従来の ROS1 と手順は同じです.

本記事では ROS-O におけるパッケージビルドを 光近接センサモジュール WrPPS Single Board の ROS1 パッケージ wrpps_ros を例に手順を追って行きます.

wrpps_ros は元々 Ubuntu 20.04 + ROS Noetic での動作を前提としていました.

Ubuntu 22.04 および 24.04 の ROS-O で動作確認したところソースコード自体の変更は必要なく,インストール手順で新しいバージョンの Ubuntu や ROS-O パッケージに対応したコマンド内パスの変更や 非ROS ソフトウェアパッケージの追加インストールが必要なだけでした.

これらの Ubuntu 22.04 および 24.04 と ROS-O におけるインストール手順の追記は既に wrpps_rosREADME に反映されています.

Arduino IDE のセットアップとポストスクリプトの実行(非ROS)

インストール手順の内 ROS とは関係ない部分ですが Set up Arduino IDE の Arduino IDE ソフトウェアのインストール時に Ubuntu 22.04 と 24.04 での追加対応が必要な点がありました.

まず,Arduino IDE ソフトウェアをダウンロードします.

AppImage からインストールするための libfuse2 ライブラリをインストールします.ただし Ubuntu 24.04 の場合はライブラリ名が libfuse2t64 となります.

Terminal: Ubuntu 22.04 の場合

sudo apt install libfuse2

Terminal: Ubuntu 24.04 の場合

sudo apt install libfuse2t64

--no-sandbox オプションを付けて AppImage を実行してインストールします.

Terminal:

cd ~/Download
chmod a+x arduino-ide_2.3.8_Linux_64bit.AppImage
./arduino-ide_2.3.8_Linux_64bit.AppImage --no-sandbox

ポストインストールスクリプトを取得して実行します.
Run Arduino Post Install Script – wrpps_ros

Terminal:

cd ~/Download
chmod a+x post_install.sh
sudo ./post_install.sh 

wrpps_ros ソースコードの取得とビルド

Clone and Build wrpps_ros and FA-I-sensor packages – wrpps_ros

ソースコードの取得とビルドに必要なパッケージ,git と catkin tools を apt でインストールします.

Terminal:

sudo apt install git python3-catkin-tools

ROS ワークスペースの作成してソースコードの取得とビルドを行います.

Terminal:

source /opt/ros/one/setup.bash
mkdir -p ~/wrpps_ws/src
cd ~/wrpps_ws/src
git clone https://github.com/tork-a/wrpps_ros.git
git clone https://github.com/RoboticMaterials/FA-I-sensor.git
cd ~/wrpps_ws
rosdep install -r -y --from-paths src --ignore-src
catkin build
source ~/wrpps_ws/devel/setup.bash

rosserial の Arduino ライブラリを取得作成します.
Make rosserial Arduino Libraries – wrpps_ros

Terminal:

sudo apt update
sudo apt install ros-one-rosserial-arduino
sudo apt install ros-one-rosserial
source ~/wrpps_ws/devel/setup.bash
cd ~/Arduino/libraries
rm -rf ros_lib
rosrun rosserial_arduino make_libraries.py .

WrPPS Single Board 用スケッチがアップロードされていいない Arduino の場合は Upload WrPPS Sketch to Arduino の手順で Arduino IDE ソフトウェアを利用してアップロードします.

ビルドした ROS パッケージの実行

光近接センサモジュール WrPPS Single Board を対応 Arduino ボード経由で上記ビルドやインストールをした Ubuntu PC に接続します.本記事では Arduino WrPPS スケッチはアップロード済として進めます.
Usage – wrpps_ros

Terminal 1: 入力コマンド

source ~/wrpps_ws/devel/setup.bash
roslaunch wrpps_ros wrpps_single_board.launch

Terminal 2: 入力コマンド

source ~/wrpps_ws/devel/setup.bash
rostopic echo /wrpps_single_board/driver/output/range_tof

Terminal 2: 出力例(近接距離のトピック出力)

$ rostopic echo /wrpps_single_board/driver/output/range_tof
header: 
  seq: 1015
  stamp: 
    secs: 1754966728
    nsecs: 463486433
  frame_id: "wrpps_single_board_tof_frame"
radiation_type: 1
field_of_view: 0.4399999976158142
min_range: 0.029999999329447746
max_range: 2.0
range: 8.190999984741211
---

:
:
:

---
header: 
  seq: 1223
  stamp: 
    secs: 1754966733
    nsecs: 501786708
  frame_id: "wrpps_single_board_tof_frame"
radiation_type: 1
field_of_view: 0.4399999976158142
min_range: 0.029999999329447746
max_range: 2.0
range: 0.07100000232458115
---
header: 
  seq: 1224
  stamp: 
    secs: 1754966733
    nsecs: 526211977
  frame_id: "wrpps_single_board_tof_frame"
radiation_type: 1
field_of_view: 0.4399999976158142
min_range: 0.029999999329447746
max_range: 2.0
range: 0.07000000029802322
---
header: 
  seq: 1225
  stamp: 
    secs: 1754966733
    nsecs: 550466775
  frame_id: "wrpps_single_board_tof_frame"
radiation_type: 1
field_of_view: 0.4399999976158142
min_range: 0.029999999329447746
max_range: 2.0
range: 0.0689999982714653
---

:
:
:

動作確認できたら各ターミナルを Ctrl-C で停止します.

以上のように ROS-O を用いることで元々 Ubuntu 20.04 + ROS Noetic 向けだった wrpps_ros パッケージが新しい Ubuntu 22.04 や Ubuntu 24.04 でも利用できる様子を見ていただけたのではないかと思います.

ROS-O でのビルドと実行まとめ

  • ROS-O でのパッケージのビルドと実行は基本的に ROS Kinetic 以前の操作と同じ
    • ROS-O の環境設定 source /opt/ros/one/setup.bash
  • Ubuntu のバージョン違いで 非ROS のソフトウェアの対応が必要な場合がある

今回の記事はここまでです.

本シリーズ次回の記事では ros1_bridge を用いた ROS-O と ROS2 の併用方法について説明する予定です.

ROS-O で ROS1 を使う - インストール

著者について

yamamoto.yosuke administrator

コメントを投稿するにはログインしてください。