Navigation

    蓝鲸ROS机器人论坛

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

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

    产品服务
    11
    28
    46732
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • frank
      frank last edited by weijiz

      小强主页

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

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

      原理

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

      操作步骤

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

      在第一个机器人命令行窗口启动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
      

      在第二个机器人命令行窗口设置kinect俯仰角,这个角度不是任意的

      对于kinect一代

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

      对于kinect二代

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

      对于奥比中光astrapro

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

      对于intel RealDense D400系列

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

      在第三个机器人命令行窗口启动底盘导航程序

      roslaunch nav_test fake_move_base_blank_map.launch
      

      全部正常,会出现类似下图的界面。

      0_1477464735127_4.PNG

      在第四个机器人命令行窗户启动rviz

      rviz
      

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

      0_1477465271618_6.PNG

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

      0_1477465971588_1.png

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

      0_1477466042343_2.png

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

      0_1477466074277_3.png

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

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

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

      小强主页
      返回目录

      weijiafeng 小勋 2 Replies Last reply Reply Quote 0
      • frank
        frank last edited by xiaoqiang

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

        1 Reply Last reply Reply Quote 0
        • frank
          frank last edited by

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

          1 Reply Last reply Reply Quote 0
          • weijiafeng
            weijiafeng @frank last edited by

            @frank 想问下大家在用Intel RealSense深度摄像头作避障时有遇到深度数据缺失、数据误差以及测量环境要求高的问题吗?是怎么解决的?谢谢!

            xiaoqiang 1 Reply Last reply Reply Quote 0
            • weijiafeng
              weijiafeng last edited by

              @weijiz 想问下大家在用Intel RealSense深度摄像头作避障时有遇到深度数据缺失、数据误差以及测量环境要求高的问题吗?是怎么解决的?谢谢!

              1 Reply Last reply Reply Quote 0
              • 柠檬蔚
                柠檬蔚 last edited by

                请问为啥我的kinect2_bridge包里没有kinect2-xyz.launch这个执行文件

                xiaoqiang 1 Reply Last reply Reply Quote 0
                • xiaoqiang
                  xiaoqiang @柠檬蔚 last edited by xiaoqiang

                  @柠檬蔚 需要安装蓝鲸版本才有: http://git.bwbot.org/publish/iai_kinect2.git

                  1 Reply Last reply Reply Quote 0
                  • xiaoqiang
                    xiaoqiang @weijiafeng last edited by

                    @weijiafeng 第四代之后的RealSense模块,在室内无阳光下使用没有遇到这些情况,比较稳定

                    1 Reply Last reply Reply Quote 0
                    • 柠檬蔚
                      柠檬蔚 last edited by

                      为什么我在工控机上直接启动kinect2_bridge.launch就能正常启动kinect2,但三用SSH连接到工控机后无法启动kinect2,会报以下错误:
                      [ INFO] [1566907799.390059214]: [Kinect2Bridge::initialize] parameter:
                      base_name: kinect2
                      sensor: default
                      fps_limit: -1
                      calib_path: /home/user/catkin_ws/src/iai_kinect2/kinect2_bridge/data/
                      use_png: false
                      jpeg_quality: 90
                      png_level: 1
                      depth_method: opengl
                      depth_device: -1
                      reg_method: cpu
                      reg_device: -1
                      max_depth: 12
                      min_depth: 0.1
                      queue_size: 5
                      bilateral_filter: true
                      edge_aware_filter: true
                      publish_tf: true
                      base_name_tf: kinect2
                      worker_threads: 4
                      [Error] [OpenGLDepthPacketProcessorImpl] GLFW error 65544 X11: The DISPLAY environment variable is missing
                      [Error] [OpenGLDepthPacketProcessor] Failed to initialize GLFW.
                      [FATAL] [1566907799.393948046]: Failed to load nodelet ‘/kinect2_bridgeof typekinect2_bridge/kinect2_bridge_nodeletto managerkinect2’
                      [FATAL] [1566907799.393980129]: Failed to load nodelet ‘/kinect2_points_xyzrgb_qhdof typedepth_image_proc/point_cloud_xyzrgbto managerkinect2’
                      [kinect2_bridge-3] process has died [pid 2949, exit code 255, cmd /home/user/catkin_ws/devel/lib/nodelet/nodelet load kinect2_bridge/kinect2_bridge_nodelet kinect2 __name:=kinect2_bridge __log:=/home/user/.ros/log/963b5b74-c8c3-11e9-8415-008ef26ef65c/kinect2_bridge-3.log].
                      log file: /home/user/.ros/log/963b5b74-c8c3-11e9-8415-008ef26ef65c/kinect2_bridge-3
                      .log
                      [kinect2_points_xyzrgb_qhd-5] process has died [pid 2951, exit code 255, cmd /home/user/catkin_ws/devel/lib/nodelet/nodelet load depth_image_proc/point_cloud_xyzrgb kinect2 rgb/camera_info:=kinect2/qhd/camera_info rgb/image_rect_color:=kinect2/qhd/image_color_rect depth_registered/image_rect:=kinect2/qhd/image_depth_rect depth_registered/points:=kinect2/qhd/points __name:=kinect2_points_xyzrgb_qhd __log:=/home/user/.ros/log/963b5b74-c8c3-11e9-8415-008ef26ef65c/kinect2_points_xyzrgb_qhd-5.log].
                      log file: /home/user/.ros/log/963b5b74-c8c3-11e9-8415-008ef26ef65c/kinect2_points_xyzrgb_qhd-5
                      .log**
                      这个是什么问题吖?怎么解决?谢谢谢谢

                      weijiz 1 Reply Last reply Reply Quote 0
                      • weijiz
                        weijiz @柠檬蔚 last edited by

                        @柠檬蔚 在 小强ROS机器人教程(10)___使用kinect进行自主移动避障 中说:

                        为什么我在工控机上直接启动kinect2_bridge.launch就能正常启动kinect2,但三用SSH连接到工控机后无法启动kinect2,会报以下错误:

                        因为ssh没有图形界面821bff23-f654-4f94-9020-103dcb4a1ef4-image.png

                        柠檬蔚 1 Reply Last reply Reply Quote 0
                        • 柠檬蔚
                          柠檬蔚 @weijiz last edited by

                          @weijiz那这个kinect是只能从工控机打开吗?可以通过远程打开工控机的图像界面然后再打开Kinect吗?

                          weijiz 1 Reply Last reply Reply Quote 0
                          • weijiz
                            weijiz @柠檬蔚 last edited by

                            @柠檬蔚 可以用vnc试试,或者ssh的时候加上-X参数

                            柠檬蔚 1 Reply Last reply Reply Quote 0
                            • 柠檬蔚
                              柠檬蔚 last edited by

                              This post is deleted!
                              1 Reply Last reply Reply Quote 0
                              • 柠檬蔚
                                柠檬蔚 @weijiz last edited by

                                @weijiz -X不行,vnc就可以了,谢谢大佬

                                1 Reply Last reply Reply Quote 0
                                • Wallong
                                  Wallong last edited by

                                  你好,有个问题,kinect为什么要调到-19度,根据教程,这个文件occupancy_xyz.yaml是配置什么信息的?

                                  weijiz 1 Reply Last reply Reply Quote 0
                                  • weijiz
                                    weijiz @Wallong last edited by

                                    @Wallong 因为Kinect的tf矩阵当时是按照-19度标定的,同时-19度是kinect的最小角度,也能够保证kinect能够完整的看到小车前方,保证没有盲区。如果你想要换其他角度也可以,只要按照这里重新标定角度就可以了。

                                    Wallong 1 Reply Last reply Reply Quote 0
                                    • Wallong
                                      Wallong @weijiz last edited by

                                      @weijiz 好的,不过我矫正出来的-19度下的矩阵和小强本来给差的实在太多了,不知道为什么
                                      以下是结果对比☹
                                      #-19度的时候,自己的
                                      FINAL R: [[ 0. 0.99809446 0.0617046]
                                      [-1. 0. 0. ]
                                      [ 0. -0.0617046 0.99809446]]

                                      #备份,小强的
                                      R: [0., -0.32713696, 0.94497693, -1., 0., 0., 0., -0.94497693, -0.32713696]

                                      frank 1 Reply Last reply Reply Quote 0
                                      • frank
                                        frank @Wallong last edited by

                                        @Wallong 通过旋转矩阵的性质看你校准出来的矩阵是水平角度的,不是-19度的

                                        1 Reply Last reply Reply Quote 0
                                        • lyh1997
                                          lyh1997 last edited by

                                          This post is deleted!
                                          1 Reply Last reply Reply Quote 0
                                          • lyh1997
                                            lyh1997 last edited by

                                            你好 机器人在避障过程中方向偏离正确方向,且绕圈最后停止 行进的路线会被标记成是红色的 是因为电机出现了问题吗还是其他方面出现了问题

                                            xiaoqiang 1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Copyright © 2015-2023 BlueWhale community