小强ROS机器人教程(10)_使用kinect进行自主移动避障

小强主页

本教程适用于2016年9月20号之后购买且带kinect版的用户,对于其它用户,请联系、咨询技术支持

先看最后效果图, 演示视频

原理

freenct_stack包提供kinect驱动,其发布的点云通过image_pipeline转换成障碍物栅格分布图。nav_test软件包启动底盘导航程序后会自动处理分析障碍物分布图,之后根据rivz发布的目标导航点自主移动。

操作步骤

注意在插入kinect的时候先插入在小强主机上插入kinect usb接口。等待kinect灯亮再插入kinect供电口。否则可能会烧毁主机和kinect

1.配置小车主机和本地虚拟机的hosts文件,使两者能互相访问对应的ros数据

1.a 配置本地虚拟机
sudo gedit /etc/hosts

将下图中的ip地址换成小车实际数值 0_1477463825729_2.PNG

1.b 配置小车主机
# 局域网ssh登入小车主机
ssh xiaoqiang@192.168.0.101 -X
sudo gedit /etc/hosts

将下图中的ip地址换成本地虚拟机实际数值,主机名称改为虚拟机名称 0_1477463790362_1.PNG

2.在本地虚拟机中新开3个窗口,分别ssh登入小车,启动原理部分提及的相关软件包

2.a ssh登入

0_1477464185283_3.PNG

2.b 在第一个窗口启动kinect驱动

对于kinect一代

roslaunch freenect_launch kinect-xyz.launch

对于kinect二代

roslaunch kinect2_bridge kinect2-xyz.launch

对于奥比中光astrapro

roslaunch astra_launch astrapro.launch

对于intel RealDense D400系列

roslaunch realsense2_camera rs_camera_xiaoqiang.launch
2.c 在第二个窗口设置kinect俯仰角,这个角度不是任意的

对于kinect一代

rostopic pub /set_tilt_degree std_msgs/Int16 '{data: -19}' -1

对于kinect二代

因为kinect二代没有俯仰角电机,因此请手动把kinect掰到最大俯角位置

对于奥比中光astrapro

因为astrapro没有俯仰角电机,因此请手动把astrapro掰到最大俯角位置

对于intel RealDense D400系列

因为RealDense D400系列没有俯仰角电机,配带的支架已经预设好角度,因此不用任何操作。

2.d 编辑底盘导航程序配置文件/home/xiaoqiang/Documents/ros/src/nav_test/config/fake/base_local_planner_params2.yaml ,使能kinect

0_1477465423181_8.PNG

2.e 在第三个窗口启动底盘导航程序
roslaunch nav_test fake_move_base_blank_map.launch
2.f 全部正常,会出现类似下图的界面,到此小车端配置启动完成

0_1477464735127_4.PNG

3.在本地虚拟机中新开1个窗口,用来启动rviz

3.a 加入ros局域网后,打开rviz
export ROS_MASTER_URI=http://xiaoqiang-desktop:11311
rviz

注意如果小强的模型无法显示,要在本地安装小强的模型包 xiaoqiang_udrf

0_1477464940348_5.PNG

3.b 点击rviz界面左上角的open config,选择小车主机上的/home/xiaoqiang/Documents/ros/src/nav_test/config/nav_addwa_kinect.rviz配置文件

0_1477465271618_6.PNG

3.c 正常的话,现在rviz中将出现类似下图的画面,现在所有配置都已经完成,开始发布导航目标点

0_1477465971588_1.png

3.d 任意发布一个目标点,小车会开始自主移动

0_1477466042343_2.png

3.e 小车到达目标点,请继续尝试其它位置,本教程结束

0_1477466074277_3.png

请将kinect数据线插入小车主机蓝色usb3.0端口,才能保证驱动的正常工作。型号为1473的kinect用户请先看教程(9)中的准备办法,在成功发布角度之后(kinect低头)需要关闭这个角度发布命令,不关闭会导致kinect深度点云数据没有输出。

如果小强一直后退,rviz中可以看到小车前面有一块黑色区域,黑色区域一直跟随小车移动。这种情况说明kinect安装或者kienct低头角度没有到位,请检查kinect安装支架、去除kienct贴膜后重新执行教程中的指令

注意此处避障时的建图由于没有使用map_server,所以并不能保存出来。如果想要建立地图需要用其他的算法。

常见问题

Q: 地图能够显示,小车也能够遥控,但是通过rviz向小车发布目标点,小车并不移动
A: 一般这个问题是网络设置问题。这个教程需要小强和本地机器相互设置hosts记录,并且能够相互访问。在设置好ip记录之后可以分别在小强和本地电脑上ping对方看看是否能ping通。 如在本地电脑上执行

ping xiaoqiang-desktop

在小强上执行

ping ubuntu  # 这里假设本地计算机名为ubuntu

如果无法ping通就要检查网络设置是否正确。

小强主页 返回目录

results matching ""

    No results matching ""