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
参考