如何在 ROS1 中构建和运行

在 ROS 环境下使用雷达驱动,需要安装 ROS 相关依赖库。

  • Ubuntu 16.04 - ROS Kinetic desktop

  • Ubuntu 18.04 - ROS Melodic desktop

  • Ubuntu 20.04 - ROS Noetic desktop

安装方法请参考 http://wiki.ros.org。

建议安装 ROS desktop-full 版。这个过程会自动安装一些兼容版本的依赖库,如 PCL 库等。这样可以避免花大量时间,去逐个安装和配置它们

安装依赖

安装 Yaml(必需)

版本号: >= v0.5.2

若已安装 ROS desktop-full, 可跳过

安装方法如下:

$ sudo apt-get update
$ sudo apt-get install -y libyaml-cpp-dev

安装 libpcap(必需)

版本号: >= v1.7.4

安装方法如下:

$ sudo apt-get install -y  libpcap-dev

直接编译

(1) 打开工程内的 CMakeLists.txt 文件,将文件顶部的变量 COMPILE_METHOD 改为 ORIGINAL

#=======================================
# Compile setup (ORIGINAL,CATKIN,COLCON)
#=======================================
set(COMPILE_METHOD ORIGINAL)

(2) 在 ROS1(不适用于 ROS2)中,直接编译、运行程序。

(注:ROS1不需要aglidar_msg文件夹,将其删掉或移动到aglidar_sdk文件夹内即可) 请先启动 roscore,再运行 aglidar_sdk_node,最后运行 rviz 查看点云。

$ cd aglidar_sdk
$ mkdir build && cd build
$ cmake .. && make -j4
$ ./aglidar_sdk_node

基于 ROS-catkin 编译

(1) 打开工程内的 CMakeLists.txt 文件,将文件顶部的变量 COMPILE_METHOD 改为 CATKIN

#=======================================
# Compile setup (ORIGINAL,CATKIN,COLCON)
#=======================================
set(COMPILE_METHOD CATKIN)

(2) 将 aglidar_sdk 工程目录下的 package_ros1.xml 文件复制到 package.xml

(3) 新建一个文件夹作为工作空间(例如 catkin_ws),然后在其中新建一个名为 src 的文件夹,将 aglidar_sdk 工程放入 src 文件夹内。(注:ROS1 不需要 aglidar_msg 文件夹,将其删掉或移动到 aglidar_sdk 文件夹内即可)。

接着在 src 目录执行以下命令,初始化 ROS 工作空间:

$ catkin_init_workspace

(4) 返回工作空间目录(例如 catkin_ws),执行以下命令即可编译、运行。如果使用 .zsh,将第二行替换成 source devel/setup.zsh

$ catkin_make
$ source devel/setup.bash
$ roslaunch aglidar_sdk start.launch

此时,会启动 Rviz,如果正确连接 LiDAR 或者提供预先录制好的数据文件,将会看到点云,如下图所示。

../../_images/ros1-rviz-test.png

FAQs

(1)启动程序后看不到 Rviz 界面?

检查是否正确安装对应 ROS 版本的 Rviz 软件包,可通过以下命令安装或者重新安装。

sudo apt install ros-${ROS_DISTRO}-rviz

注意:上述命令需要先启动 ROS 的环境变量才能看到 ROS_DISTRO 环境变量,你也可以直接指定 ROS 的版本,例如 ros-noetic-rviz。

(2)我想用 rostopic 命令查看 ROS 的主题,但是找不到 rostopic 命令?

ROS1 中的部分命令需要额外安装,你可以通过以下命令安装 rostopic 命令工具。

$ sudo apt install python3-rostopic