今回は「Okdo Lidar Module with Bracket開発キット LiDAR_LD06」を使用する際に必要となるld06のドライバをインストールする方法を解説します。
私の環境でセットアップした際に発生したエラーの対象法なども記載しましたので、これからインストールされる方は是非参考にしてみてください。
動作環境
ハードウェア:Raspberry Pi 4
OS:Ubuntu22.04LTS
ROS2のインストール
ld06ドライバをインストールする前にROS2をインストールしておく必要があります。
Ubuntu ServerでROS2 Humbleをインストールする手順については以下の記事で解説していますので、あらかじめ済ませておいてください。
ld06ドライバのインストール
ここからは実際にLidar ld06のドライバをインストールする手順を解説します。
使用するLidarドライバ
今回使用するLidarドライバは以下のリポジトリとなります。
ld06ドライバのインストール手順
リポジトリをクローンする
Lidarドライバーのリポジトリをクローンします。
git clone -b ros2 https://github.com/linorobot/ldlidar src/ldlidar
依存関係をインストールする
必要な依存関係をインストールするため、以下のコマンドを実行します。
rosdep update && rosdep install --from-path src --ignore-src -y
このコマンドはROSパッケージの依存関係データベースを更新し、指定されたディレクトリ(この場合はsrc
)内のすべてのパッケージに必要な依存関係を自動的にインストールするために使用されます。
rosdep update
:rosdep
はROSパッケージの依存関係を管理するツールです。update
コマンドは、rosdep
が使用する依存関係のデータベースを最新の状態に更新します。この操作は、システム上にインストールされているROSパッケージの依存関係が変更された場合や、新しいパッケージがリリースされた場合に、それらの変更を反映させるために必要です。rosdep install --from-path src --ignore-src -y
: このコマンドは、指定されたパス(この場合はsrc
ディレクトリ)内のROSパッケージの依存関係を解決し、必要な依存パッケージをインストールします。オプションの説明は以下の通りです:--from-path src
:src
ディレクトリ内のパッケージの依存関係を調べるように指示します。src
は、通常、ROSワークスペース内のソースコードを含むディレクトリです。--ignore-src
: このオプションは、rosdep
に対して、すでにsrc
ディレクトリ内にあるソースからビルドされるパッケージの依存関係を無視するように指示します。つまり、これらのソースパッケージ自体を依存関係として扱わないようにします。-y
: 依存パッケージのインストール時に、ユーザーに確認なしで自動的に進行するように指示します。これは、インストールプロセスを自動化し、手動での確認を求められることなく、必要な依存関係を迅速にインストールするために便利です。
これにより、開発者はパッケージの依存関係に関する手動での管理作業を減らすことができ、効率的に作業を進めることが可能になります。
以下のように表示されれば成功です。
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit file:///usr/share/python3-rosdep2/debian.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Skip end-of-life distro "foxy"
Skip end-of-life distro "galactic"
Skip end-of-life distro "groovy"
Add distro "humble"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Add distro "iron"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Skip end-of-life distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/pi/.ros/rosdep/sources.cache
#All required rosdeps installed successfully
ビルドを実行する
続いてビルドを実行する
colcon build
colcon build
コマンドは、colcon
ツールを使用してROS 2ワークスペース内のパッケージをビルドするために用いられます。colcon
は、ソフトウェアのビルド、テスト、パッケージ化を扱うためのコマンドラインツールであり、特にROS 2プロジェクトで広く使用されていますが、それに限定されず様々なソフトウェアプロジェクトで利用可能です。
このコマンドを実行すると、以下のような処理が行われます:
- ワークスペースの構成を解析:
colcon
はワークスペース内のsrc
ディレクトリをスキャンして、ビルドすべきパッケージを識別します。パッケージはpackage.xml
ファイルに基づいて識別され、このファイルは各パッケージのルートディレクトリに配置されています。 - 依存関係の解決:ビルドプロセスの一環として、
colcon
は各パッケージの依存関係を解析し、正しい順序でビルドが行われるようにします。これにより、依存するパッケージが利用可能な状態でなければならない場合でも、その依存関係が満たされます。 - ビルドの実行:依存関係が解決されると、
colcon
は各パッケージを指定された順序でビルドし、生成物(実行可能ファイル、ライブラリなど)をワークスペースのbuild
ディレクトリ内に配置します。 - 環境の設定:ビルドプロセスの最後に、
colcon
はinstall
ディレクトリ内に環境設定スクリプトを生成します。これらのスクリプトをソースすることで、ビルドしたパッケージを利用するための環境が設定されます。
colcon build
コマンドは非常に柔軟であり、ビルドのカスタマイズや特定のパッケージだけをビルドするためのオプションが用意されています。しかし、基本的な使用法では、ワークスペース内の全てのパッケージをビルドし、開発者がすぐに使用できるようにすることが目的です。これにより、開発者はビルドプロセスにおける複雑さを最小限に抑え、より効率的に作業を進めることができます。
私の環境では以下のエラーが発生しました。
pi@ubuntu:~/ros2_ws$ colcon build
colcon: command not found
colcon build
コマンドが見つからない場合、それはcolcon
パッケージビルドツールがシステムにインストールされていないことを意味します。
colcon
はROS 2パッケージをビルドするための標準的なツールであり、ROS 2の開発には必須です。この問題を解決するために、colcon
をインストールする必要があります。
colconツールのインストール
以下のコマンドを実行してcolconツールをインストールします。
sudo apt update
sudo apt install python3-colcon-common-extensions
再度ビルドを実行します。
ビルドに成功すると以下のように実行結果が表示されます。
pi@ubuntu:~/ros2_ws/src$ colcon build
Starting >>> ldlidar
[Processing: ldlidar]
--- stderr: ldlidar
/home/pi/ros2_ws/src/ldlidar/src/lipkg.cpp: In member function ‘void LiPkg::ToLaserscan(std::vector<PointData>)’:
/home/pi/ros2_ws/src/ldlidar/src/lipkg.cpp:258:29: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
258 | if (index >= 0 && index < beam_size_)
| ~~~~~~^~~~~~~~~~~~
---
Finished <<< ldlidar [33.8s]
Summary: 1 package finished [37.4s]
1 package had stderr output: ldlidar
以上でドライバのインストールは完了です。
まとめ
今回はLidar ld06のドライバをUbuntuでインストールする方法について解説しました。
rvizの使用方法などはまた別の記事で解説します。
それでは、また次の記事でお会いしましょう。
コメント