[ROS系列]在ROS2 foxy 版本上驱动EAI_X3/YDLIDAR 4ROS/单点激光雷达进行导航

目录

准备工作:

配置主从机

1、主机(刑天)

2、从机(PC、ubuntu)

3、问题

一、下载YDLidar-SDK & YDLIDAR ROS2 Driver

1、打开github编译SDK

2、编译 ydlidar_ros2_driver

二、重新映射USB串口

三、新建工作空间

四、终端测试

Error1:

Error2:

五、rviz2可视化测试

Error1:

六、gmapping建图测试

更新2023.10.31

七、突然出现的问题

八、如何更该雷达的发布频率


背景:​​​​​​​

1、设备:pc;旭日派x3;EAI_X3激光雷达、YDLIDAR 4ROS,SDM15

2、环境:Ubuntu20.04;ROS2(Foxy)

准备工作:

配置主从机
1、主机(刑天)

端口号:

192.168.3.106

echo $ROS_DOMAIN_ID 
#如果没有
vim ~/.bashrc
export ROS_DOMAIN_ID=5(可更换)
export ROS_IP=主机ip
2、从机(PC、ubuntu)

端口号:

192.168.9.99

echo $ROS_DOMAIN_ID 
#如果没有
vim ~/.bashrc
export ROS_DOMAIN_ID=5(可更换)
export ROS_IP=从机ip
3、问题

(1)互相ping的通,主机ros2 launch 之后,从机查不到话题

检查主从机的配置,注意网络是否一样(可更换热点进行测试)

一、下载YDLidar-SDK & YDLIDAR ROS2 Driver

(刑天和pc端都需要)

1、打开github编译SDK

https://github.com/YDLIDAR/YDLidar-SDK

git clone https://github.com/YDLIDAR/YDLidar-SDK.git
cd YDLidar-SDK/build
cmake ..
make
sudo make install

重点:build需要自己手动创建

cd YDLidar-SDK/build
./tri_test
(截图不是刑天)​​​​​​​

2、编译 ydlidar_ros2_driver
git clone https://github.com/YDLIDAR/ydlidar_ros2_driver.git ydlidar_ros2_ws/src/ydlidar_ros2_driver
--------------------------------------------------------
cd ydlidar_ros2_ws
colcon build --symlink-install
source install/setup.bas

注意:每次修改功能包里面的代码均需重新【编译】再【更新环境】。

二、重新映射USB串口

cd ~/ydlidar_ros2_ws/src/ydlidar_ros2_driver-master/startup
sudo chmod 777 *
sudo ./initenv.sh

绑定后,重新拔插一次雷达。

使用以下命令查看修改重映射

(在pc端不会成功,因为雷达接在刑天上)

ll /dev/ydlidar

三、新建工作空间

(此时在pc端)

mkdir -p X3_ws

使用该雷达时,每次执行命令均需进入到工作空间下

cd ~/X3_ws

将【X3_ws_src.zip】功能包解压后放入X3_ws工作空间src文件夹下,在工作空间下打开终端

zip文件:

YDLIDAR X3Pro激光雷达资料地址:https://www.yahboom.com/study/YDLIDAR-X3
提取码:njk9

#后续买了新激光雷达

YDLIDAR 4ROS激光雷达资料地址:https://www.yahboom.com/study/YDLIDAR-4ROS 提取码:zzv4

​​​​​​​colcon build               # 编译
source install/setup.bash # 更新环境

注意:每次修改功能包里面的代码均需重新【编译】再【更新环境】。

四、终端测试

第一步,启动相对应的雷达

ros2 launch ydlidar_ros2_driver ydlidar_launch.py
Error1:
1695371359.9689651 [INFO] [launch]: All log files can be found below /root/.ros/log/2023-09-22-16-29-19-955954-ubuntu-3715
1695371359.9700789 [INFO] [launch]: Default logging verbosity is set to INFO
1695371360.3699036 [INFO] [ydlidar_ros2_driver_node-1]: process started with pid [3727]
1695371360.3730452 [INFO] [static_transform_publisher-2]: process started with pid [3729]
1695371360.4898844 [ERROR] [ydlidar_ros2_driver_node-1]: process has died [pid 3727, exit code -7, cmd '/root/X3_ws/install/ydlidar_ros2_driver/lib/ydlidar_ros2_driver/ydlidar_ros2_driver_node --ros-args -r __node:=ydlidar_ros2_driver_node -r __ns:=/ --params-file /root/X3_ws/install/ydlidar_ros2_driver/share/ydlidar_ros2_driver/params/ydlidar.yaml'].
1695371360.5144827 [static_transform_publisher-2] [INFO] [1695371360.513403543] [static_tf_pub_laser]: Spinning until killed publishing transform from 'laser' to 'base_link'

解决:重新编译YDLIDAR ROS2 Driver

Error2:

解决:重新配置ydlidar.yaml 文件(X3_ws还有ydlidar_ros2_ws均配置)

YDLIDAR 4ROS的配置文件:

ydlidar_ros2_driver_node:
  ros__parameters:
    port: /dev/ttyUSB0
    frame_id: laser_frame
    ignore_array: ""
    baudrate: 512000
    lidar_type: 0
    device_type: 0
    sample_rate: 20
    intensity_bit: 0
    abnormal_check_count: 4
    fixed_resolution: true
    reversion: true
    inverted: true
    auto_reconnect: true
    isSingleChannel: false
    intensity: false
    support_motor_dtr: false
    angle_max: 180.0
    angle_min: -180.0
    range_max: 50.0
    range_min: 0.01
    frequency: 12.0
    invalid_range_is_inf: false

SDM15配置文件:

ydlidar_ros2_driver_node:
  ros__parameters:
    port: /dev/ttyUSB1
    frame_id: laser_single_frame
    ignore_array: ""
    baudrate: 460800
    lidar_type: 5
    device_type: 0
    sample_rate: 4
    intensity_bit: 8
    abnormal_check_count: 4
    resolution_fixed: true
    reversion: true
    inverted: true
    auto_reconnect: true
    isSingleChannel: false
    intensity: true
    support_motor_dtr: false
    angle_max: 180.0
    angle_min: -180.0
    range_max: 15.0
    range_min: 0.05
    frequency: 50.0
    invalid_range_is_inf: true

第二步,查看雷达数据

ros2 topic echo /scan 

五、rviz2可视化测试

rviz2

您应该在 rviz2 中看到雷达的扫描结果

注意左边的话题,LaserSan的 topic Relisbility 是System Deflault,否则没有点云信息

Error1:

有topic,有/scan信号,但是没有点云信息

解决:更换网络(eg:热点),检查话题信息

六、gmapping建图测试

第一步,启动相对应的雷达

ros2 launch ydlidar_ros2_driver ydlidar_launch.py 

ros2 launch ydlidar_ros2_driver ydlidar_launch.py  params_file:=/opt/deploy/diablo-robot/config/params/ydlidar.yaml

第二步,启动gmapping建图

ros2 launch slam_gmapping slam_gmapping.launch.py
ros2 run slam_gmapping slam_gmapping

应该在 rviz2 中看到建图结果

更新2023.10.31

七、突然出现的问题

我的建图一直乱飞!!!!!

root@robot-body:~# ros2 node list
/diablo_ctrl_node
/odommetry
/rviz
/transform/transform_node
/transform_listener_impl_564d383a28e0
ydlidar_ros2_driver_node:
  ros__parameters:
    port: /dev/ttyUSB0
    frame_id: laser_frame
    ignore_array: ""
    baudrate: 230400
    lidar_type: 1
    device_type: 0
    sample_rate: 4
    intensity_bit: 0
    abnormal_check_count: 4
    fixed_resolution: true
    reversion: true
    inverted: true
    auto_reconnect: true
    isSingleChannel: false
    intensity: false
    support_motor_dtr: true
    angle_max: 180.0
    angle_min: -180.0
    range_max: 18.0
    range_min: 0.01
    frequency: 12.0
    invalid_range_is_inf: false

G4采样率太大了,改成4就好了

更新1106

八、如何更该雷达的发布频率

更改源码,地址:

/opt/deploy/diablo-robot/lib/ydlidar_ros2_driver/src/ydlidar_ros2_driver_node.cpp
#第165行
  auto laser_pub = node->create_publisher<sensor_msgs::msg::LaserScan>("scan_single", rclcpp::SensorDataQoS());
  auto pc_pub = node->create_publisher<sensor_msgs::msg::PointCloud>("point_cloud", rclcpp::SensorDataQoS());
  

#第180行
 rclcpp::WallRate loop_rate(1800);

此时查看ros2 topic hz /scan就可以看到话题频率更改成功。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YDLIDAR X3/X3Pro是一款激光雷达设备,用于扫描周围环境并获取点云数据。根据引用,如果你的学习目标是读取和计算XY坐标数据,你可以通过安装ROS驱动并使用rviz来实现这一目标。首先,你需要安装ROS驱动,可以通过在终端中执行引用中的命令来完成。安装完成后,在ROS工作空间中创建一个包,并将下载的驱动放入该包中,然后进行编译。之后,你可以使用引用中的命令来启动rviz并查看扫描结果。在rviz中,你可以获取到激光雷达扫描的数据,并计算出相应的XY坐标。希望这些信息对你有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ROS Ydlidar X3 激光雷达 读取数据 并计算XY坐标](https://blog.csdn.net/qq_44759447/article/details/128597753)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [YDLIDAR_X3驱动安装](https://blog.csdn.net/LLABVIEW/article/details/126842788)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值