ROS2 Foxyで北陽電機のLiDAR URG-04LX-UG01を使用する手順です。
URG-04LX-UG01
https://www.hokuyo-aut.co.jp/search/single.php?serial=17
urg_nodeのインストール
$ sudo apt update
$ sudo apt install ros-foxy-urg-node
実行
URGをUSBケーブルでPCに接続します。
ターミナルを開いて以下を実行し、デバイスに権限を付与
$ sudo chmod 777 /dev/ttyACM0
以下でurg_nodeを実行
$ ros2 run urg_node urg_node_driver --ros-args -p serial_port:=/dev/ttyACM0
別のターミナルで以下を実行し、/scanトピックが出ていればOK
$ ros2 topic echo /scan
データの可視化
別のターミナルを開いてrviz2を起動
$ rviz2
Fixed Frame をlaserに設定
左下のAddボタンをクリック
一覧からLaserScanを選択してOKをクリック
/scanの点が表示されれば成功
launchファイルから実行
設定をyamlファイルで記述してlaunchファイルから起動する方法
ワークスペース以下に適当にパッケージを作成
$ cd ~/ros2_ws/src
$ ros2 pkg create urg
設定ファイルとlaunchファイルを置くディレクトリを作成
$ cd urg
$ mkdir launch config
configディレクトリ以下に以下の設定ファイルを作成
urg.yaml
urg_node:
  ros__parameters:
    angle_max: 3.14
    angle_min: -3.14
    serial_port: /dev/ttyACM0
    serial_baud: 115200
    laser_frame_id: "laser"
    calibrate_time: false
    default_user_latency: 0.0
    diagnostics_tolerance: 0.05
    diagnostics_window_time: 5.0
    error_limit: 4
    get_detailed_status: false
    publish_intensity: false
    publish_multiecho: false
    cluster: 0
    skip: 1
launchディレクトリ以下にlaunchファイルを作成
urg_launch.py
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
    ld = LaunchDescription()
    param_file = os.path.join(
            get_package_share_directory('urg'), 'config',
            'urg.yaml')
    print(param_file)
    hokuyo_node = Node(
        package='urg_node', node_executable='urg_node_driver', output='screen',
        parameters=[param_file]
        )
    ld.add_action(hokuyo_node)
    return ld
CMakeLists.txtに以下を記述
CMakeLists.txt
install(
  DIRECTORY launch config
  DESTINATION share/${PROJECT_NAME}
)
ビルドして実行
$ cd ~/ros2_ws
$ colcon build
$ source install/setup.bash
$ ros2 launch urg urg_launch.py
参考


