驱动测试
本节将介绍机器人驱动的测试,为了确保您手中机器人各个驱动在运送的过程中没有受到损坏。如果有问题,请及时联系我们。
注意:要关掉有进程正在运行的终端,请在该窗口使用 Ctrl+C
来中断程序,然后在关掉该窗口。
1 硬件介绍
1.1 IMU
IMU(英文Inertial measurement unit,简称 IMU)即惯性测量单元,是测量物体三轴姿态角及加速度的装置。一般的,一个IMU包含了三个单轴的加速度计和三个单轴的陀螺,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度。
您可以理解为IMU可以测量物体的姿态和位置。它在我们机器人的导航中有着很重要作用。
1.2 Lidar
Lidar(指激光雷达)激光雷达,是以发射激光束探测目标的位置、速度等特征量的雷达系统。其工作原理是向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号(目标回波)与发射信号进行比较,作适当处理后,就可获得目标的有关信息,如目标距离、方位、高度、速度、姿态、甚至形状等参数,从而对一些物体目标进行探测、跟踪和识别。
Lidar在我们机器人建图和导航中都有着很重要作用。
1.3 rgbd_camera
rgbd_camera(RGB-D相机,也叫做深度相机) = 普通的RGB三通道彩色图像 + 深度图像
在3D计算机图形中,Depth Map(深度图)是包含与视点场景对象的表面距离有关的信息图像或图像通道。其中,Depth Map 类似于灰度图像,只是它的每个像素值是传感器距离物体的实际距离。通常RGB图像和Depth图像是配准的,因而像素点之间具有一对一的对应关系。
1.4 云台
云台是安装、固定摄像机的支撑设备,它分为固定和电动云台两种。giraffe和stone是电动的云台,所以我们需要对其进行测试。
2 机器人硬件连接测试
在正式进行测试之前,我们先检测一下各种设备的连接,这里以HandsFree Gemini和omni机器人为例,打开终端依次运行:
- lsusb
- ls /dev/HFRobot
- ls /dev/lidar_front
终端显示如下:
发现两个CP210x UART BridgeUSB设备,其中一个是前置激光雷达,并在操作系统层映射成 /dev/lidar_front 。另外一个是底盘运动控制板,并在操作系统层映射成 /dev/HFRobot 。底盘运动控制板上已经包含了IMU传感器。
如果以上测试出现问题,请检查机器人和各设备的连接是否正常,以及主机的HandsFree软件环境是否配置完整。然后再进行后面的测试。
如果运行 ls /dev/lidar_front
指令仍没反应的话
- 请进入
/etc/udev/handsfree-serial.rules
文件中,查看UART Bridge Controller 项后的SYMLINK 对应值是否为 “lidar_font” - 倘若不是的话,则要进入
~/handsfree/handsfree_ros_ws/src/handsfree/Documentation
目录中,在终端输入bash set_usb_env.sh
以执行usb规则文件,执行完后再查看步骤1中的SYMLINK对应值,倘若正常显示”lidar_front”,则可以正确执行ls /dev/lidar_front
指令
3 IMU测试
Tips:上电之前请不要晃动机器人,否则在进行IMU测试时,可视化界面会出现模型不水平,或在不断旋转。
打开终端(Ctrl+Alt+T),输入下面的指令,启动我们的机器人
roslaunch handsfree_hw handsfree_hw.launch
正常情况下,会显示:
打开第二个终端(Ctrl+Alt+T或Ctrl+Shift+T),输入下面的指令,打开rviz可视化界面
roslaunch handsfree_hw view_rviz.launch
正常情况下,会显示:(如果未出现下面的图像,可以如图勾选所有选项)
现在您晃动您的机器人,可以看到可视化界面的模型也会跟着晃动。
测试机器人的IMU 转动机器人,先尝试旋转180度,通过可视化界面查看模型是否跟着旋转了180度,然后再转动180度,让机器人旋转一圈,回到原来的位置。此时查看可视化界面中的模型是否回到了原来的位置,同样旋转了一圈。如果您实际旋转了180度,而可视化界面的模型旋转了360度,那么这个IMU就是有问题的。
tips1: 鼠标左键按下拖拽可以旋转视图,鼠标左键按下+Shift拖拽可以上下左右移动视图。
tips2: 如果画面显示陀螺仪不水平或在不断旋转,有可能是刚开始上电的时候晃动了机器人,请关闭所有程序,将机器人断电,然后重新上电,上电过程不要晃动机器人。
4 Lidar测试
HandsFree支持多种激光雷达,比如思岚的rplidar A1/A2/A3 , Hokuyo系列的雷达等。
打开新终端,输入下面的指令,打开激光节点
roslaunch handsfree_lidar lidar.launch
正常情况下,会显示
打开新终端,通过可视化界面检查雷达是否正常
roslaunch handsfree_hw view_rviz.launch
打开界面后,您可以通过可视化界面和机器人当前所处的真实环境进行对比,出现在画面中的彩色线条对应真实环境下的障碍物。
您可以在机器人周围摆放障碍物,来观察可视化界面信息改变的快慢,以检查雷达的实时性。如果10秒后可视化界面才出现变化,那么这台机器人雷达是有问题的。
5 rgbd_camera测试
HandsFree支持多种深度摄像头,包括Xtion Pro,奥比中光,Kinect等。请根据实际配备的摄像头型号启动摄像头驱动,该教程以gemini为例,启动大白摄像头
我们套餐中带有深度摄像头设备, 都是连接到USB 3.0,打开终端,运行下面的指令
roslaunch handsfree_camera view_camera.launch
会打开rviz可视化界面,出现两个Image框,上面的窗口将显示RGB图像,下面的窗口将显示深度图像。
您可以在镜头前晃动手掌,查看Image框中图像的变化,来检测摄像头是否正常。
如果您的rviz可视化界面没有那两个摄像头的窗口,那么需要您手动添加,点击左下角的
Add
按钮进行添加,会弹出一个小窗口,选中里面的Image
,然后点击ok
就会添加成功.添加成功后,需要进行设置,才能让Image框显示图像,找到侧边栏的Image点击使其展开,将Visiblity选框中的勾去掉,设置Image Topic的图像话题,一般我们选择的是/camera/rgb/image_raw或/camera/depth/image_raw
6 云台测试
本功能只有部分产品拥有
打开终端(Ctrl+Alt+T),输入下面的指令,启动我们的机器人(若之前已打开,请忽略此步骤)
roslaunch handsfree_hw handsfree_hw.launch
打开第二个终端,依次输入以下指令来让云台来完成一些动作
云台仰视45度:
rostopic pub -1 /mobile_base/pitch_position_controller/command std_msgs/Float64 -- 0.79
云台俯视45度:
rostopic pub -1 /mobile_base/pitch_position_controller/command std_msgs/Float64 -- -0.79
云台pitch居中:
rostopic pub -1 /mobile_base/pitch_position_controller/command std_msgs/Float64 -- 0
云台左转45度:
rostopic pub -1 /mobile_base/yaw_position_controller/command std_msgs/Float64 -- 0.79
云台右转45度:
rostopic pub -1 /mobile_base/yaw_position_controller/command std_msgs/Float64 -- -0.79
云台yaw居中:
rostopic pub -1 /mobile_base/yaw_position_controller/command std_msgs/Float64 -- 0
正常情况下,云台会完成各个角度的旋转。
7 底盘驱动测试
运行程序,通过键盘遥控测试机器人的运动的能力,这部分可以参考教程遥控机器人