准备开始

这部分我们将介绍如何使用机器人端工控机(或PC)对机器人进行控制。通过控制机器人的测试,我们可以验证工控机的ROS环境和HandsFree的环境是否配置正确、机器人嵌入式系统是否工作正常、机器人嵌入式系统层和PC端ROS层的通讯是否正常等问题。

1 工控机环境配置

如果购买了我们的工控机,那么系统环境都已经配置完成,请略过这一步。 如果使用自己的工控机或者使用笔记本电脑替代我们提供的工控机,我们提供了两种方案配置工控机

  • 1,安装我们提供的镜像,请参考如何使用镜像
  • 2,在系统是Ubuntu 14.04的工控机上安装ros-indigo,然后按照教程配置HandsFree运行需要的环境

注意:安装镜像时,用户名必须是:HandsFree,电脑的名字必须是:Robot

2 启动机器人

将工控机的USB口和机器人的航空插座通过USB转航空插头的线将两者相连,连接屏幕与键鼠,然后连接工控机与电源,最后上电,开机。
此时可以听到主控的蜂鸣器鸣叫声。确保工控机与机器人连接正常、工控机开机正常。然后开始下一步操作。

3 启动机器人抽象节点

在工控机上打开一个终端,并运行:

roslaunch handsfree_hw handsfree_hw.launch

正常情况下,会显示:

auto-starting new master
process[master]: started with pid [9562]
ROS_MASTER_URI=http://Robot:11311

setting /run_id to ffa41cce-05bd-11e8-8df0-001e64f02337
process[rosout-1]: started with pid [9575]
started core service [/rosout]
process[handsfree_hw_node-2]: started with pid [9585]
process[mobile_base/controller_spawner-3]: started with pid [9589]
process[robot_state_publisher-4]: started with pid [9591]
[ERROR] [1517317423.863958024]: hf link initialized failed, please check the hardware
[INFO] [WallTime: 1517317424.295263] Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] [WallTime: 1517317424.298319] Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [WallTime: 1517317424.301498] Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [WallTime: 1517317424.304670] Loading controller: joint_state_controller
[INFO] [WallTime: 1517317424.351596] Loading controller: servo1_position_controller
[INFO] [WallTime: 1517317424.399306] Loading controller: servo2_position_controller
[INFO] [WallTime: 1517317424.419282] Loading controller: mobile_base_controller
[INFO] [WallTime: 1517317424.469234] Controller Spawner: Loaded controllers: joint_state_controller, servo1_position_controller, servo2_position_controller, mobile_base_controller
[INFO] [WallTime: 1517317424.479183] Started controllers: joint_state_controller, servo1_position_controller, servo2_position_controller, mobile_base_controller

该条命令打开了机器人抽象节点,该节点的作用是完成PC与机器人底层的通讯和相关指令与数据传输。运行结果如上图,图中有一个error,该error不影响后面的操作,可以忽略。确保没有其他问题,若出现timeout的问题,则说明该节点运行不成功。失败请参考常见问题及解答

第三步没有问题时,说明硬件方面已正常,可以进行下一步了。

4 打开控制节点

打开一个新的终端,并运行:

roslaunch handsfree_hw keyboard_teleop.launch

正常情况下,会显示:

ROS_MASTER_URI=http://Robot:11311

core service [/rosout] found
process[turtlebot_teleop_keyboard-1]: started with pid [9903]

Control Your Turtlebot!
---------------------------
Moving around:
   u    i    o
   j    k    l
   m    ,    .

q/z : increase/decrease max speeds by 10%
w/x : increase/decrease only linear speed by 10%
e/c : increase/decrease only angular speed by 10%
space key, k : force stop
anything else : stop smoothly

CTRL-C to quit

currently:    speed 0.2    turn 1

该条命令打开键盘控制节点,按照终端中的提示,我们就可以利用键盘控制机器人运动。如果一切正常的话,你可以和移动ROS小乌龟一样,用键盘控制移动底盘运动了。到此,完成ROS控制机器人功能的实现,如果一切正常的话,说明移动底盘的软硬件没有问题,ROS端机器人抽象节点也没有问题。
但是由于工控机在机器人上,我们只能跟着机器人跑来跑去。不用担心,我们马上在下个教程就能实现遥控机器人这个功能。

Copyright © handsfree.org.cn 2017 all right reserved,powered by Gitbook该文件修订时间: 2018-02-02 07:22:38

results matching ""

    No results matching ""