SLAM硬件搭建(激光雷达+IMU+相机+移动底盘)

激光雷达

官方github下载安装

激光雷达采用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

编译:

  1. 打开CMakeList.txt将编译方法改为 CATKIN
#=======================================
# Compile setup (ORIGINAL,CATKIN,COLCON)
#=======================================
set(COMPILE_METHOD CATKIN)
  1. 打开rslidar_sdk里面的config文件夹配置里面的config.yaml,因为这个功能包包含很多类型的雷达,所以要配置成自己正在使用的雷达型号。例如RS-LiDAR-16
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
  1. 将rslidar_sdk中的package_ros1.xml复制到同目录下命名为package.xml
  2. 创建一个新的工作空间(catkin_ws),将rslidar_sdk这个功能包复制到src这个文件夹下
  3. 返回到catkin_ws文件夹下,执行以下命令进行编译
catkin_make
source devel/setup.bash
roslaunch rslidar_sdk start.launch

这里下载

从我的github下载功能包已经把上面的配置好了,直接创建一个新的工作空间(catkin_lidar)放到src进行编译(catkin_make)即可.

IMU

wheeltec imu n100

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

这里后来使用了价格更贵一点的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并运行就可以发出以下话题(必须得知道使用的是哪个串口,并提升权限)

/usr/bin/ld: 找不到 -lxscontroller
/usr/bin/ld: 找不到 -lxscommon
/usr/bin/ld: 找不到 -lxstypes
如果出现这个错误时,按照下面的执行

Building:
    - Copy xsens_ros_mti_driver folder from your MT SDK directory into your catkin workspace 'src' folder.
        Make sure the permissions are set to o+rw on your files and directories.

    - Build xspublic from your catkin workspace:
        $ pushd src/xsens_ros_mti_driver/lib/xspublic && make && popd

    - Build Xsens MTi driver package:
        $ catkin_make

    - Source workspace:
        $ source devel/setup.bash
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 打印信息,一打印就报错或者很卡,最终在管理器软件上修改了参数使得这个问题得到解决。具体修改后的参数为:
在这里插入图片描述

移动底盘

移动底盘采用的是Autolabor Pro1(AP1)
在这里插入图片描述

它主要在上位机上是通过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 
  • 2
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于ROS的激光雷达+小车+IMUSLAM建图、定位、路径规划c++实现源码+项目说明.zip # 单线激光雷达SLAM建图与路径规划 使用的硬件:autolabor pro1小车、小觅双目相机(S1030标准版本)、IntelNUC迷你主机、显示器、2D激光雷达 Delta-1A 使用的软件:ubuntu 16.04 LTS、ROS-kinetic、小觅驱动、autolabor pro1小车驱动、Delta-1A驱动、VINS-Fusion算法、ROS-navigation导航包、gmapping建图算法、cartographer_ros建图算法 ## tf介绍 tf变换:map(地图坐标系)-->odom(里程计坐标系)——>base_link(小车基座坐标系)——>传感器坐标系(lidar、camera) ---- map-->odom 由建图算法提供 ---- odom --> base_link 由小车驱动提供 ---- base_link --> 传感器坐标系 根据传感器在小车上安装的位置确定,使用static_transform_publisher静态坐标转换来设置 所需传感器数据类型: sensor_msgs/LaserScan 使用Delta-1A驱动发布的雷达扫描话题,话题名:/scan 所需里程计信息数据类型:nav_msgs/Odometry 使用autolabor pro1发布的里程计,话题名:/wheel_odom ## 建图 采用gmapping与 cartographer_ros建图算法分别进行建图 ### gmapping建图:(雷达+小车) 打开终端,执行如下指令: $ cd ~/catkin_ws_lidar_slam/ $ source devel/setup.bash $ roslaunch autolabor_box_launch create_map_gmapping.launch ####打开小车urdf模型、驱动、键盘控制节点、打开雷达驱动、打开gmapping节点、打开rviz可视化节点 ####此时使用键盘的上下左右键控制小车移动,开始建图 ####建图完成后,开启新的终端执行如下指令,保存地图: $ rosrun map_server map_saver -f map_name ####保存地图 map_name为保存地图的名称,运行结果,会生成2个文件,后缀名分别为 .pgm .yaml ### cartographer_ros建图:(雷达+小车) ##打开终端,执行如下指令: $ cd ~/catkin_ws_lidar_slam/ $ source devel/setup.bash $ roslaunch autolabor_box_launch create_map_cartographer.launch ####此时使用键盘的上下左右键控制小车移动,开始建图 ####建图完成后,开启新的终端执行如下指令,保存地图: $ rosrun map_server map_saver -f map_name ......
要在ORB-SLAM3中运行RGBD IMU模式,您需要进行以下步骤: 1. 首先,您需要将ORB-SLAM3安装到您的系统上。您可以按照引用中提到的文章中的说明进行配置和安装。请确保您的系统已正确配置ORB-SLAM3的运行环境。 2. 在ORB-SLAM3中,RGBD IMU模式是通过添加RGBD-inertial模式和其对应的ROS接口实现的。引用中提到了这个新特性。您可以根据ORB-SLAM3的官方文档或示例代码来了解如何使用RGBD IMU模式。 3. 在ORB-SLAM3中,有两种ROS接口可供使用:Mono_inertial和Stereo_inertial。您可以根据您的实际需求选择其中之一。这些接口可以帮助您在ROS环境中使用ORB-SLAM3的RGBD IMU模式。 4. 在使用ORB-SLAM3的RGBD IMU模式之前,您可能需要确保您的系统有正确的IMU数据来源。这可能涉及到硬件设备的连接和配置,以及相关驱动程序的安装。 总之,要在ORB-SLAM3中运行RGBD IMU模式,您需要正确安装ORB-SLAM3、配置相关运行环境,并根据官方文档或示例代码了解如何使用RGBD-inertial模式和对应的ROS接口。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Ubuntu 18.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+SLAM相关库的安装](https://blog.csdn.net/zardforever123/article/details/127138151)[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%"] - *3* [RGBD惯性模式及其ROS接口已添加到ORB_SLAM3。-C/C++开发](https://download.csdn.net/download/weixin_42134143/19108628)[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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值