ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
小强ROS机器人教程(10)___使用kinect进行自主移动避障
-
本教程适用于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
全部正常,会出现类似下图的界面。
在第四个机器人命令行窗户启动rviz
rviz
点击rviz界面左上角的open config,选择小车主机上的/home/xiaoqiang/Documents/ros/src/nav_test/config/nav_addwa_kinect.rviz配置文件
正常的话,现在rviz中将出现类似下图的画面,现在所有配置都已经完成,开始发布导航目标点
任意发布一个目标点,小车会开始自主移动
小车到达目标点,请继续尝试其它位置,本教程结束
请将kinect数据线插入小车主机蓝色usb3.0端口,才能保证驱动的正常工作。型号为1473的kinect用户请先看教程(9)中的准备办法,在成功发布角度之后(kinect低头)需要关闭这个角度发布命令,不关闭会导致kinect深度点云数据没有输出。
如果小强一直后退,rviz中可以看到小车前面有一块黑色区域,黑色区域一直跟随小车移动。这种情况说明kinect安装或者kienct低头角度没有到位,请检查kinect安装支架、去除kienct贴膜后重新执行教程中的指令
注意此处避障时的建图由于没有使用map_server,所以并不能保存出来。如果想要建立地图需要用其他的算法。
-
请将kinect数据线插入小车主机蓝色usb3.0端口,才能保证驱动的正常工作。型号为1473的kinect用户请先看教程(9)中的准备办法,在成功发布角度之后(kinect低头)需要关闭这个角度发布命令,不关闭会导致kinect深度点云数据没有输出。
-
如果小强一直后退,rviz中可以看到小车前面有一块黑色区域,黑色区域一直跟随小车移动。这种情况说明kinect安装或者kienct低头角度没有到位,请检查kinect安装支架、去除kienct贴膜后重新执行教程中的指令
-
@frank 想问下大家在用Intel RealSense深度摄像头作避障时有遇到深度数据缺失、数据误差以及测量环境要求高的问题吗?是怎么解决的?谢谢!
-
@weijiz 想问下大家在用Intel RealSense深度摄像头作避障时有遇到深度数据缺失、数据误差以及测量环境要求高的问题吗?是怎么解决的?谢谢!
-
请问为啥我的kinect2_bridge包里没有kinect2-xyz.launch这个执行文件
-
@柠檬蔚 需要安装蓝鲸版本才有: http://git.bwbot.org/publish/iai_kinect2.git
-
@weijiafeng 第四代之后的RealSense模块,在室内无阳光下使用没有遇到这些情况,比较稳定
-
为什么我在工控机上直接启动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 type
kinect2_bridge/kinect2_bridge_nodeletto manager
kinect2’
[FATAL] [1566907799.393980129]: Failed to load nodelet ‘/kinect2_points_xyzrgb_qhdof type
depth_image_proc/point_cloud_xyzrgbto manager
kinect2’
[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**
这个是什么问题吖?怎么解决?谢谢谢谢 -
@柠檬蔚 在 小强ROS机器人教程(10)___使用kinect进行自主移动避障 中说:
为什么我在工控机上直接启动kinect2_bridge.launch就能正常启动kinect2,但三用SSH连接到工控机后无法启动kinect2,会报以下错误:
因为ssh没有图形界面
-
@weijiz那这个kinect是只能从工控机打开吗?可以通过远程打开工控机的图像界面然后再打开Kinect吗?
-
@柠檬蔚 可以用vnc试试,或者ssh的时候加上-X参数
-
此回复已被删除! -
@weijiz -X不行,vnc就可以了,谢谢大佬
-
你好,有个问题,kinect为什么要调到-19度,根据教程,这个文件occupancy_xyz.yaml是配置什么信息的?
-
-
@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] -
@Wallong 通过旋转矩阵的性质看你校准出来的矩阵是水平角度的,不是-19度的
-
此回复已被删除! -
你好 机器人在避障过程中方向偏离正确方向,且绕圈最后停止 行进的路线会被标记成是红色的 是因为电机出现了问题吗还是其他方面出现了问题