Apple SiliconなマシンでROS2
2024-07-10(水)
なんやかんやでROS2をmacOSで使えた方が便利なので導入してみる。
基本的にはここの手順なのだが
- 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