Apple SiliconなマシンでROS2

2024-07-10(水)

なんやかんやでROS2をmacOSで使えた方が便利なので導入してみる。

None

基本的にはここの手順なのだが

  • SIPは無効にしなくてもとりあえずは動く(?)
  • python3はHomebrewに限らず3.12を入れてるとハマるが3.11ならvenvでも問題なし
  • /usr/local/libに余計なx86_64なdylibがあるとそっちを拾ってくるのでM1登場初期にbrew86を運用していた人は全部消した方が良い
  • 途中でよくわからんがfastcdrでコケるがbuildの中に入ってmake installして再度workspaceのビルドをかけると通る
  • ここで入らないros2関係のインストールはたぶん苦行(cv_bridgeも諦めた)

ちなみにhomebrewでpython3.12を消すとvimが使えなくなる(大損害)。問題なのはCMakeが呼ばれたとき(見境なくPython3.12を拾ってくる)なので,ビューワとかトピック監視用途とかで割り切ってしまうか,colcon buildの度に3.12とQt6を消せばたぶん使える。

ビルドの最中何度かコケるが

cd build/fastcdr
make
make install
cd ../fastrtps
make -j8
make install
cd ../..

でまたビルドのコマンドを投げると通る。

あとrosbag2_pyのsrc/ros2/rosbag2/rosbag2_py/src/rosbag2_py/_reader.cppでコケるが

  void open(
    rosbag2_storage::StorageOptions & storage_options,
    const rosbag2_cpp::ConverterOptions & converter_options = rosbag2_cpp::ConverterOptions())
  {
    reader_->open(storage_options, converter_options);
  }

のようにconstを追加すると通る。

で,一通り入るがGazeboは別。あとcv_bridgeをビルドしようとするとOpenCV->boost-python(homebrewはpython3.12用)と芋蔓式に面倒臭さが増えていくので諦める。

ROS_MASTER_URIとROS_IPさえちゃんと設定しておけばRaspberry Pi OSでMaixSense A010なる100x100のToF Depthカメラでpublishしてるのを受け取れた。

(ドキュメントにあるようにtopicで追加でPointCloud2とかImageとかでTFをtofにする)

Category: Wiki Tagged: ROS2 Apple Silicon


Page 1 of 1