ROS用TagSlam实现Turtlebot3定位

PC系统:Ubuntu18.04 melodic

Robot:Turtlebot3-burger

树莓派系统:Ubuntu mate 18.04

摄像头:树莓派CSI摄像头

Tagslam用户手册:Tagslam

!!!!!!

在PC端安装TagSlam,不要在树莓派上安装TagSlam,在树莓派上编译需要改部分源码。

想安装的可参考TagSlam光学定位系统部署与调试

树莓派端只需要运行 usb_cam node

PC端运行apriltag_detector_node 和 tagslam

!!!!!!

一、CSI摄像头设置(在树莓派上操作)

        首先要做的是添加摄像头的驱动程序.ko文件和对应的raspiberry B3+的硬件使能问题:

        1.添加驱动程序文件进来:

sudo vim /etc/modules

        在最后添加如下代码 :

bcm2835-v4l2

        这样就完成了在启动过程中加载camera驱动的前提 

        2.修改Raspberry的启动配置使能项:

sudo raspi-config

 选择Interfacing Option,选中Select然后Enter进入,如下图所示:

接下来机会问你是否同意使能Pi camera,选择是然后会让你重启,,重启就好了。

        3. 接下来来看看/dev下面是否存在摄像头设备的问题:

ls -al /dev/ | grep video

可以看到,已经可以找到我们的摄像头video0 

二、摄像头的使用与矫正(树莓派端)

        1.安装usb_cam

cd catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
cd ..
ctakin_make

        2.编译usb_cam

cd usb_cam
mkdir build
cd build
cmake ..
make

        3.下载棋盘格:棋盘格

        4.校准

sudo apt install ros-melodic-camera-calibration

运行usb_cam节点:

roscore
roslaunch usb_cam usb_cam-test.launch

执行下面命令开启校准程序:

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/usb_cam/image_raw camera:=/usb_cam

将棋盘格对准摄像头,让摄像头识别不同角度下的棋盘格,然后点击calibrating,完成后再点击commit将校准文件保存。

二、安装gtsam库(PC端)

GitHub代码:https://github.com/borglab/gtsam.git

可以直接从GitHub上下载最新版的,我自己用的是4.0.2,最低也要用4.0.2版本。

gtsam4.0.2 网盘链接:链接: https://pan.baidu.com/s/1Q17vmfKd94q0Qs2ABKfpWg  密码: ll6t

cd gtsam
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j1
make install

编译时间较长。

三、TagSlam安装(PC端)

        1.官方安装指南:https://github.com/berndpfrommer/tagslam_root

        2.tagslam_root链接: https://pan.baidu.com/s/1LMKCKXCiGHzz_yW6L0cGfg  密码: tpoh

下载到Home文件夹下并解压:

cd tagslam_root
catkin config -DCMAKE_BUILD_TYPE=Release
catkin build -j1

注意:tagslam项目使用最新的catkin build编译,而非catkin_make,catkin build是catkin_make下一代,不兼容,必须使用不同的工作空间。

安装完成测试:(默认已经安装RVIZ)

rosparam set use_sim_time true
roslaunch tagslam tagslam.launch run_online:=true
roslaunch tagslam apriltag_detector_node.launch
rviz -d `rospack find tagslam`/example/tagslam_example.rviz &
rosbag play --clock `rospack find tagslam`/example/example.bag --topics /pg_17274483/image_raw/compressed

四、Turtlebot3测试

修改部分代码

(1)tagslam_root/src/tagslam/launch/apriltag_detector_node.launch

将remap...to 后面改成自己的摄像头节点名称

(2)tagslam_root/src/tagslam/example/cameras.yaml

将rostopic后面改成自己的摄像头节点名称,与(1)一致 

 至此,代码修改完毕,重新编译即可。

实例测试:

PC端

roscore

ssh连接树莓派后:

roslaunch usb_cam usb_cam-test.launch

 PC端:

rosparam set use_sim_time true
roslaunch tagslam tagslam.launch run_online:=true
roslaunch tagslam apriltag_detector_node.launch
rviz -d `rospack find tagslam`/example/tagslam_example.rviz &

得到RVIZ可视化界面:

然后把打印好的Apriltag放到摄像头前面,就可以看到Apriltag和camera的相对位置

Apriltag:tagslam_root/src/apriltag_image

 同样地,同时放多张Apriltag,就可以看到多张tag和camera之间的相对位置关系,这就实现了定位功能。

 Ref:TagSlam光学定位系统部署与调试_leida_wt的博客-CSDN博客

树莓派3 B+ 的摄像头简单使用(video-streamer) - 小淼博客 - 博客园

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值