最新消息:

4.5 使用操纵杆控制TurtleBot

ROS1/一代机器人系统 少儿编程 1644浏览 0评论

4.5.1 引言

本例程演示通过使用“ExampleHelperTurtleBotCommunicator”类,实现对TurtleBot的键盘控制。该说明描述了如何设置物体和开始键盘控制。如何使用键盘控制的说明在启动函数之后显示。为了更改函数的参数,可以编辑“exampleHelperTurtleBotKeyboardControl”函数或“ExampleHelperTurtleBotKeyInput”类。有关MATLAB下如何使用TurtleBot的信息,请参考:4.2开始使用Gazebo和仿真的TurtleBot或4.1开始使用实际的TurtleBot。

4.5.2 连接到TurtleBot

确保用户有一个运行的TurtleBot,可以是通过Gazebo的仿真也可以是真实的硬件。有关启动过程请参考4.2开始使用Gazebo和仿真的TurtleBot或4.1开始使用实际的TurtleBot。如果用户使用仿真,那么“Gazebo TurtleBot World”适合用于本例程的探索。

初始化ROS。通过TurtleBot的IP地址替换示例IP地址(192.168.1.1)并连接到TurtleBot。

ipaddress = '192.168.1.1'
rosinit(ipaddress)

如果用户使用实际的TurtleBot硬件,确保启动了Kinect相机,命令是“roslaunch turtlebot_bringup 3dsensor.launch”,在TurtleBot上的终端执行该指令。创建“ExampleHelperTurtleBotCommunicator”类的实例,该实例使得控制TurtleBot变得容易。

tbot = ExampleHelperTurtleBotCommunicator();

通过调用运行在“ExampleHelperTurtleBotCommunicator”对象的函数使能里程计和激光扫描话题,如下所示。

enableOdom(tbot);
enableLaser(tbot);

如果用户连续的执行上述代码,可以暂停脚本以等待订阅器恰当地设置。

pause(2)

4.5.3 控制机器人

运行“exampleHelperTurtleBotKeyboardControl”函数,允许用户通过键盘控制TurtleBot。

exampleHelperTurtleBotKeyboardControl(tbot);

用户通过键盘远程操作之后的命令窗口、环境绘图和Gazebo环境如下图所示。

4.5 使用操纵杆控制TurtleBot

图4.5.1

4.5 使用操纵杆控制TurtleBot

图4.5.2

4.5 使用操纵杆控制TurtleBot

图4.5.3

如果用户移动TurtleBot过快,那么障碍物绘图可能变得混乱,因为在高速情况下里程计话题相对精度不精确。混乱的环境绘图如下所示。

4.5 使用操纵杆控制TurtleBot

图4.5.4

真实TurtleBot在办公室环境移动的示例绘图如下所示。

4.5 使用操纵杆控制TurtleBot

图4.5.5

4.5.4 断开与机器人的连接

当用户完成工作后,清楚工作空间中的发布器、订阅器和其它有关ROS的对象是个良好的习惯。

clear

建议当完成ROS网络有关的工作之后,使用“rosshutdown”指令关闭全局节点和断开与Gazebo的连接。

rosshutdown

4.5.5 下一步

参考下一个例程:4.6 使用TurtleBot进行壁障。

转自公众号:
Robot404

您必须 登录 才能发表评论!