Turtlebot入门-编写第一个脚本
编写第一个脚本
让我们写我们的第一个脚本,以获得为ROS编写程序脚本的感觉。如果你不明白每一个线的意思,不要担心!我们的例子是设计尽可能简单。
- 关闭turtlebot所有终端窗口。打开一个新的和运行:
roslaunch turtlebot_bringup minimal.launch
- 现在移动到工作站,我们克隆GitHub库和运行示例脚本:
mkdir ~/helloworld
cd ~/helloworld/
git clone https://github.com/markwsilliman/turtlebot/
cd turtlebot
python goforward.py
Turtlebot应该向前移动, 按CTRL + C 停止
现在让我们看一看代码。通过运行打开它:
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个周期,你会结束一个完全不同的地方,从你开始!幸运的是,令人惊讶的科学家和研究人员正走在我们的前面。
在下一篇文章中,我们将开始介绍这些复杂但迷人的挑战的解决方案,因为我们开始利用一些真正强大的工具,为我们提供了。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号