< >
Home » Turtlebot入门教程 » Turtlebot入门-编写第一个脚本

Turtlebot入门-编写第一个脚本

编写第一个脚本

让我们写我们的第一个脚本,以获得为ROS编写程序脚本的感觉。如果你不明白每一个线的意思,不要担心!我们的例子是设计尽可能简单。

  1. 关闭turtlebot所有终端窗口。打开一个新的和运行:
roslaunch turtlebot_bringup minimal.launch
  1. 现在移动到工作站,我们克隆GitHub库和运行示例脚本:
mkdir ~/helloworld
cd ~/helloworld/
git clone https://github.com/markwsilliman/turtlebot/
cd turtlebot
python goforward.py

Turtlebot应该向前移动, 按CTRL + C 停止

  1. 现在让我们看一看代码。通过运行打开它:

    gedit goforward.py

你也可以查看GitHub上如果你喜欢。

如果你一路滚动到底部,你会看到:

if __name__ ==  '__main__':
    try:
        GoForward

注意:如果你还没看的Python代码之前,Mark Lutz学习Python是一个很好的资源。

上面的代码就是“当我们开始这个脚本尝试跑步前进的init(初始化)功能”。从这里的代码中的文档是相当简单的,但不是设计为所有包含。要充分了解出版商,等等,我们已经联系到一些伟大的书籍。

为了好玩让我们修改命令TurleBot循环往复。在终端窗口中运行:

cd ~/helloworld/
cp goforward.py goincircles.py
gedit goincircles.py

修改线性。x = 0.2到0和角度。Z = 0到0.5。保存和退出。
在一个新的终端窗口运行:

python goincircles.py

注:turtlebot只使用线性的。X和Z值的角,因为它在一个平面作品(2D)的世界,但无人机,海洋机器人与其他机器人占据的三维环境中,线性的。Y,X和Y的角,角的值是可用的。

精度

现在让我们试试另一个脚本是专为turtlebot画正方形。在终端窗口中运行:

cd ~/helloworld
python draw_a_square.py

turtlebot开始在地板上画正方形但你会发现它很快开始漂离出发的路径。这是机器人和计算机的作用非常不同的地方。如果你问一台电脑做2 + 1,你会总是收到1。如果你问一个机器人向前移动1米,它将去大约一米,而不是完全直。知道机器人是(定位)是一个经典的机器人的挑战之一,尤其是在室内环境中,全球定位系统是不可靠的或足够精确。

你可能会认为,因为你可以告诉机器人在0.2米/秒,这将是很容易编程的机器人,使它前进一米,通过发布一个线性的。x = 0.2米/秒5秒。如果机器人是一台计算机,这是完全正确的,但对于机器人,这是非常不准确的,由于打滑,不完善的校准,和其他因素。如果你写一个这样的脚本驱动在一个正方形,并运行10个周期,你会结束一个完全不同的地方,从你开始!幸运的是,令人惊讶的科学家和研究人员正走在我们的前面。

在下一篇文章中,我们将开始介绍这些复杂但迷人的挑战的解决方案,因为我们开始利用一些真正强大的工具,为我们提供了。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: turtlebot入门