ROS机器人操作系统开发视频教程进阶(记录感悟和过程)
二、roboware创建ROS工程编译激光雷达
本过程最好需要一个实机演示,最好有一个思岚A1的 激光雷达
1、获得激光雷达SDK包
需要获取,RPLIDAR SDK包和RPLIDAR 固件和ROS包,需要去网站:http://www.slamtec.com/
下载,打开网站,找到上面的产品,点击栏目里的RPLIDAR A1,再点击下载即可,下载SDK和固件下的两个文件,再点击其下面的工具,下载里面的所有工具,ROS包在应用手册里的GitHub仓库里,下载即可。
2、安装
安装sdk文件下,tools里的驱动程序CP210x_Windows_Drivers,解压后安装即可,我安装的是x64,点开设备管理器查看端口(需提前使电脑是雷达连接)然后点击下载的程序frame_grabber.exe,连接后,点击程序里的小雷达可以看到扫描的数据说明设置完成。
3、Roboware Studuio创建工程
把下载的ros包放在linux桌面上,解压出来,然后创建新的工作区,把ros包放进工程,可以人工拷贝,但是要注意,ros包里的CMakeLists.txt,要注意:
cmake_minimum_required(VERSION 2.8.3)
project(rplidar_ros)
set(RPLIDAR_SDK_PATH "./sdk/")
FILE(GLOB RPLIDAR_SDK_SRC
"${RPLIDAR_SDK_PATH}/src/arch/linux/*.cpp"
"${RPLIDAR_SDK_PATH}/src/hal/*.cpp"
"${RPLIDAR_SDK_PATH}/src/*.cpp"
)
...
开头的project(名字)要和ros包的名字相同,此处把ros包的名字rplidar_ros-master改成rplidar_ros,改好以后,ros包放进src文件下,同时工程就可以看到了。
然后debug编译,看到100%没有问题,没有问题的话,至此,创建工程结束。
4、修改主目录 .bashrc文件
指令:
gedit .bashrc
在末尾加上:
source ~/roslianxi/robot_1/devel/setup.bash
环境配置文件,自动产生,环境自动配置好
5、运行程序
可以找到三个重要的launch文件
rplidar.launch
驱动雷达,雷达通过usb口接入
test_rplidar.launch
view_rplidar.launch
驱动雷达,同时打开了rviz
确保雷达接入了虚拟机后,可通过指令确认是否真的接入了雷达:
ll /dev
看到:
crwxrwxrwx 1 root dialout 188, 0 2月 27 16:18 ttyUSB0
即可。
下面可以看一下效果:
roslaunch rplidar_ros rplidar.launch
结果:(没必要看)
... logging to /home/ros/.ros/log/0aba1978-78d5-11eb-b0e0-000c29956c4a/roslaunch-ros-vm-5296.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ros-vm:41121/
SUMMARY
========
PARAMETERS
* /rosdistro: kinetic
* /rosversion: 1.12.16
* /rplidarNode/angle_compensate: True
* /rplidarNode/frame_id: laser
* /rplidarNode/inverted: False
* /rplidarNode/serial_baudrate: 115200
* /rplidarNode/serial_port: /dev/ttyUSB0
NODES
/
rplidarNode (rplidar_ros/rplidarNode)
auto-starting new master
process[master]: started with pid [5307]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 0aba1978-78d5-11eb-b0e0-000c29956c4a
WARNING: Package name "LaserUndistortion" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
process[rosout-1]: started with pid [5320]
started core service [/rosout]
process[rplidarNode-2]: started with pid [5323]
[ INFO] [1614414197.580767656]: RPLIDAR running on ROS package rplidar_ros. SDK Version:1.12.0
RPLIDAR S/N: AEB89A86C0E09CC9A2E09DF73C6A3079
[ INFO] [1614414200.105809462]: Firmware Ver: 1.28
[ INFO] [1614414200.106066701]: Hardware Rev: 5
[ INFO] [1614414200.107907330]: RPLidar health status : 0
[ INFO] [1614414200.656408218]: current scan mode: Express, max_distance: 12.0 m, Point number: 4.0K , angle_compensate: 1
再执行:
roslaunch rplidar_ros view_rplidar.launch
可以打开雷达的同时,打开rviz。
至此,启动演示结束。
6、另一种启动雷达的方法
首先关闭工作区
新建工作区,robot_2,使用Designer工具,由于本人使用的树莓派4,但是Designer工具箱暂不支持,所以此处没有演示