Velodyneの動作方法（ROS2）

## **はじめに**
**動作環境**
Ubuntu 22.04
ROS2 humble

**Velodyne vlp-16**
<img width="200" alt="Lidar.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817260/b30ef725-ced4-49b8-9acc-1778cfd86879.jpeg">

↓ マニュアル

https://docs.clearpathrobotics.com/assets/files/clearpath_robotics_023729-TDS2-2c7454cf9f317be53ce1938dca7ddcf4.pdf

## **手順**
まずは、
・付属している電源ケーブルをVelodyneに接続する（回転音がするはず）
・LANケーブルでVelodyneとPCを接続する

### **1.　Velodyneにアクセス**
ipアドレスを利用して、Velodyneのデータを受信できているか確認します。

#### **1-1.　Wiresharkを起動する**
インストール中に「非特権ユーザーがキャプチャを実行できるようにしますか？」と聞かれる場合、「はい」を選んでください。
```shell
#インストール
sudo apt update
sudo apt install wireshark -y
#起動
sudo wireshark
```
#### **1-2.　データ受信の確認**
Wiresharkを起動すると写真のような画面が出るので、LiDARと接続しているインタフェースを選択します（私の場合はenx4865ee1b5475）。
<img width="400" alt="Lidar.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817260/56e4245e-57ba-683f-3151-bc5174eaecf1.png">
```shell
#インタフェース名は以下で確認できます
ip link
```
選択後、次のような画面が開かれ一覧にLiDARからの通信データが表示されるはずです。ipアドレスが分からない方は、ここで確認することができます。
<img width="400" alt="Lidar.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817260/2cb5ffc5-63ac-095f-81c2-63bf6dd10a40.png">

#### **1-3.　Velodyne管理画面へのアクセス**
Webブラウザで以下のように検索し、Velodyneの管理画面にアクセスできたらOKです。
```shell
http://ipアドレス #私の場合は192.168.1.203
```
<img width="400" alt="Lidar.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817260/88a292e5-b6f9-c5bc-8551-549cc8ce39e3.png
">

**※アクセスできない場合**
・ Webサーバーの動作確認
以下のコマンドを実行して、該当ポートが「filtered」または「closed」と表示される場合、Webサーバーが動作していない可能性があります。クライアントIPの変更を試してみてください。
```shell
#インストール
sudo apt update
sudo apt install nmap -y
#動作確認
sudo nmap -Pn -p 80,8308 192.168.1.203
```
・ クライアントIPの変更
LiDARが特定のクライアントIP（例: 192.168.1.201）からの接続しか受け付けないよう設定されている可能性があるため変更します。
```shell
sudo ip addr flush dev インタフェース名
sudo ip addr add 192.168.1.201/24 dev インタフェース名
#再確認
sudo nmasudo nmap -Pn -p 80,8308 192.168.1.203
```
再確認し、該当ポートが「open」になっていればWeb検索できると思います。変わらない場合は、ポート番号（8308の箇所）を変更すると解決するかもしれないです。

### **2.　Launchして点群を表示**
#### **2-1.　パッケージをクローン・ビルド**

https://github.com/ros-drivers/velodyne.git

```shell
mkdir -p ~/ros2_ws/src

cd ~/ros2_ws/src
git clone https://github.com/ros-drivers/velodyne.git

cd ~/ros2_ws/
source /opt/ros/humble/setup.bash
colcon build --symlink-install
```
#### **2-2.　Launchする**
```shell
source ~/ros2_ws/install/setup.bash
ros2 launch velodyne velodyne-all-nodes-VLP16-launch.py
```
**※トピックが出ない場合**
ipアドレスが異なっている可能性があるので、yamlファイルを開いてipアドレスを確認し必要であれば修正します。
```shell
sudo nano /opt/ros/humble/share/velodyne_driver/config/VLP16-velodyne_driver_node-params.yaml
```

#### **2-3.　Rvizで確認**
rvizを開きます。
```shell
rviz2
```
rvizの画面上で
・Fixed frameをvelodyneに設定
・[Add]よりPoint Cloud2を追加し、topicを/velodyne_pointsに指定

以上の操作により、rviz上に点群が表示されます。
<img width="400" alt="Lidar.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817260/8076e7f1-6aac-9d54-0ddf-7be4529e66f1.png">
## **参考文献**

https://qiita.com/TakanoTaiga/items/989a6407ed1ae2d1a97d

https://www.youtube.com/watch?v=Mb6-AUoxFSc

https://qiita.com/porizou1/items/c815cb17749aad561909

## **謝辞**
この取り組みは株式会社GxP(グロースエクスパートナーズ)様のサポートを受けて実施しています。貴重なアドバイスやロボットに必要な機材の支援をいただきました。心より感謝申し上げます。

https://www.gxp.co.jp/

https://qiita.com/organizations/gxp