ROS交流群
ROS Group
产品服务
Product Service
开源代码库
Github
官网
Official website
技术交流
Technological exchanges
激光雷达
LIDAR
ROS教程
ROS Tourials
深度学习
Deep Learning
机器视觉
Computer Vision

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


  • administrators

    小强主页

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

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

    原理

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

    操作步骤

    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
    
    2.c 在第二个窗口设置kinect俯仰角,这个角度不是任意的

    对于kinect一代

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

    对于kinect二代

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

    对于奥比中光astrapro

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

    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通就要检查网络设置是否正确。

    小强主页
    返回目录


  • administrators

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


  • administrators

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