激光雷达采用robosense 16线 RS-LiDAR-16
下载:
git clone https://github.com/RoboSense-LiDAR/rslidar_sdk.git
cd rslidar_sdk
git submodule init
git submodule update
依赖:
Ubuntu 16.04: ros-kinetic-desktop-full
Ubuntu 18.04: ros-melodic-desktop-full
Ubuntu 20.04: ros-noetic-desktop-full
编译:
#=======================================
# Compile setup (ORIGINAL,CATKIN,COLCON)
#=======================================
set(COMPILE_METHOD CATKIN)
lidar:
- driver:
lidar_type: RS16 #LiDAR type - RS16, RS32, RSBP, RS128, RS128_40, RS80, RSM1, RSHELIOS
frame_id: /rslidar #Frame id of message
msop_port: 6699 #Msop port of lidar
difop_port: 7788 #Difop port of lidar
start_angle: 0 #Start angle of point cloud
end_angle: 360 #End angle of point cloud
min_distance: 0.4 #Minimum distance of point cloud
max_distance: 150 #Maximum distance of point cloud
wait_for_difop: true #Wait for DIFOP packet
use_lidar_clock: false #True--Use the lidar clock as the message timestamp
#False-- Use the system clock as the timestamp
catkin_make
source devel/setup.bash
roslaunch rslidar_sdk start.launch
从我的github下载功能包已经把上面的配置好了,直接创建一个新的工作空间(catkin_lidar)放到src进行编译(catkin_make)即可.
IMU 采用的 wheeltec imu n100
这个IMU的功能包对应我的github里面的fdilink_ahrs功能包,直接克隆并创建工作空间(catkin_imu)放到src里面
在编译之前需要运行一下脚本wheeltec_udev.sh这个脚本的作用是确定该IMU是通过哪一个串口进行连接的。
sudo ./wheeltec_udev.sh
如果不可以,其实自己在launch文件里修改参数也可以 ,但是得知道是哪个口,可以使用这个命令查看
ll /dev/
查看外设情况
然后编译(catkin_make),编译完运行launch文件前记得返回catkin_imu工作空间下source一下功能包,再运行launch文件
source devel/setup.bash
roslaunch fdilink_ahrs ahrs_driver.launch
此时就会发布以下几个话题。
rostopic list
/clock
/imu_data
/mag_pose_2d
/rosout
/rosout_agg
rostopic echo /imu_data
在打开rviz里面也可以看到imu 信息,add 话题 增加imu信息,坐标系换成imu 即可。
这里后来使用了价格更贵一点的xsens mti300 IMU
这一款的软件套件比较简单可以直接去官网的知识库下载对应的软件套装,按照CSDN上的教程1或者2进行学习安装
或着在我的Github里面下载MT_Software_Suite_linux-64_2020.5 并执行里面的mtsdk_linux-x64_2020.5sh脚本 结果会在/usr/local/xsens/下生成一些文件 其中xsens_ros_mti_driver这个文件夹就对应我的Github里面的那个功能包,把这个功能包放在新建的工作空间的src下面编译catkin_make并运行就可以发出以下话题(必须得知道使用的是哪个串口,并提升权限)
ll /dev/
sudo chmod 777 /dev/ttyUSB0 //对应自己的USB口
source devel/setup.bash
roslaunch xsens_mti_driver display.launch
在MT_Software文件夹里面会有一个管理软件可以对这款imu进行设置输出以及其他参数,具体的运行方式为
cd MT_Software_Suite_linux-x64_2020.5/
./mtmanager_linux-x64_2020.5/mtmanager/linux-x64/bin/mtmanager
从这个管理器软件可以自动识别这个IMU使用的哪一个USB口,进而方便提升权限。
注意:1.管理器软件和功能包节点不能同时运行,不然必然会有一个检测不出来设备,因为USB口已经被一个使用了 2. 管理器软件修改的参数是直接写在这个IMU里面的,写完之后在其他地方使用就可以了 3.这个管理器软件不能在ARM架构的ubuntu上运行,至少我试了,没成功,跟技术人员联系了一下,他说不能在ARM上运行,只能运行功能包,如果有人可以那就把链接发给我,谢谢
同时我自己也试了试,在ARM架构上连功能包节点都编译不通过,因此只能另寻出路。所幸的是这家公司跟ros有合作,可以直接从ros那里下载,参考的这里具体方式如下:
(1)驱动安装
sudo apt-get install ros-kinetic-xsens-driver
(2)修改USB接口的权限
sudo chmod 777 /dev/ttyUSB0//将ttyUSB0换成自己的接口名
(3)启动MTI设备
roslaunch xsens_driver xsens_driver.launch
输出的话题为(交那个功能包少了点话题):
这里有一个奇怪的问题,就是在ARM上运行后不能使用 rostopic echo /imu/data 打印信息,一打印就报错或者很卡,最终在管理器软件上修改了参数使得这个问题得到解决。具体修改后的参数为:
它主要在上位机上是通过232进行控制,在我的Github里面对应autolabor_keyboard_control功能包和autolabor_porq_driver功能包后者是主要的功能包,前者是采用键盘对它进行控制的功能包
把这个两个功能包放在一个catkin_ws里面的src下面就可了,然后编译即可,记得source一下setup.bash
由于这个键盘控制的功能包不能在远程控制的软件下检测到键盘输入,即远程软件的键盘不能控制,它写的应该是直接检测硬件接口的输入,故不好使,于是我们便想到了学习ros时的小乌龟的键盘控制包,经过测试,可以在远程软件下使用,因此在autolabor_porq_driver功能包下的launch文件里面把keyboard_move.launch文件给改掉了,修改后的样子为:
<launch>
<node name="autolabor_driver" pkg="autolabor_pro1_driver" type="autolabor_pro1_driver" output="screen">
<param name="port_name" value="/dev/ttyUSB0" />
<param name="odom_frame" value="odom" />
<param name="base_frame" value="base_link" />
<param name="baud_rate" value="115200" />
<param name="control_rate" value="10" />
<param name="sensor_rate" value="5" />
<param name="reduction_ratio" value="1.0" />
<param name="encoder_resolution" value="1600.0" />
<param name="wheel_diameter" value="0.25" />
<param name="model_param_cw" value="0.80" />
<param name="model_param_acw" value="0.80" />
<param name="pid_rate" value="50.0" />
<param name="maximum_encoding" value="32.0" />
</node>
<node name="control_key" pkg="turtlesim" type="turtle_teleop_key"/>
<!--这里改了-->
</launch>
然后编译加source加运行的命令为:
catkin_make
source devel/setup.bash
roslaunch autolabor_pro1_driver keyboard_move.launch
然后操作键盘就可以了
因为要看车到底走到哪里了,所以加一个简单一点的相机查看,这里装了一个luvcview的软件,具体的教程去网上搜索就好了,在此就不多介绍了,安装好后使用命令即可打开
luvcview -d /dev/video1 -f yuv -s 640x480
可以把Github里面的功能包全部clone下来然后放到一个包里,直接编译加运行,具体命令如下
mkdir catkin_ws && cd catkin_ws
git clone https://github.com/Cloudytosunny/SLAM_hardware.git
mv SLAM_hardware/ src
cd src/
catkin_init_workspace
cd ..
catkin_make
source devel/setup.bash
roslaunch autolabor_pro1_driver keyboard_move.launch
Ctrl + Shift+ T
source devel/setup.bash
sudo chmod 777 /dev/ttyUSB0//结合自己的USB口
roslaunch xsens_driver xsens_driver.launch//或者roslaunch fdilink_ahrs ahrs_driver.launch
Ctrl + Shift+ T
source devel/setup.bash
roslaunch rslidar_sdk start.launch