机器人中的Linux知识(一)

1、为什么需要学习Linux?​​​​​​​

Linux 无处不在

每当你使用 Google、Facebook 或任何其他大型互联网网站时,你都在与运行 Linux 的服务器进行通信。大多数 DVR、飞机和汽车娱乐系统,甚至智能电视都是运行 Linux 的。此外,如果你使用的是安卓手机,你也在使用 Linux。事实上,在全球 500 台速度最快的超级计算机中,有 498 台使用了 Linux。

多功能性

Linux 遵循 GNU GPL 许可证,这意味着只要遵守许可证条款,几乎可以在你开发的任何产品或服务上自由使用。此外,Linux 的开发是以社区为基础的。这意味着你可以与其他 Linux 开发人员合作,分享知识和学习经验。

安全

Linux 是最安全的操作系统之一。从设备/文件到程序、访问机制和安全信息传递,你能想到的都有。

2、什么是Bash脚本?

Bash 脚本是 Linux 开发人员非常有用和常用的工具。基本上,它是用于创建 Linux 程序的工具。下面我们来看一下几个机器人中Bash脚本的应用列子。

这被称为 Shell 的提示符。它包含一些基本信息,如当前用户(本例中为 user)或当前路径。你还会看到它有一个白色块在闪烁。这意味着 Shell 处于活动状态,等待接收您的指令!

先快速解释一下它是如何工作的。在这种情况下,我们要执行的bash 脚本期待一个参数。然后,脚本将评估收到的参数,并做一件或另一件事。对于本例子中的Bash,我们可以可以发送 3 个不同的参数:

  • forward:这将使 BB8 机器人向前移动。
  • rotate:这将使 BB8 机器人以自己为轴旋转。
  • stop:这会让 BB8 机器人停止任何动作。

通过以下方式执行bash 脚本。​​​​​​​

./demo.sh rotate

执行上述命令后,您将在 Shell 上看到以下输出:​​​​​​​

user:/home/simulations/public_sim_ws/src/all/ros_basics_examples/linux_demo$ ./demo.sh forward
publishing and latching message. Press ctrl-C to terminate

此外,还会看到 BB-8 机器人是如何开始旋转的:​​​​​​​

我们已经运行了bash 脚本,它正在让 BB8 机器人旋转。但现在......如何停止它呢?其实很简单。你只需点击 Ctrl + C同时点击键盘上的但是......这一点非常重要!为了能够发送 Ctrl + C信号来停止bash 脚本,您需要将焦点放在脚本正在运行的  Shell 上。

停止程序后,就可以重新在  Shell 中输入了。但是,尽管停止了脚本,机器人仍在继续旋转。这是因为在这种情况下,机器人会继续执行最后收到的命令(即旋转)。因此,为了停止机器人的运动,您必须再次执行脚本,这次使用不同的参数

./demo.sh stop
./demo.sh forward

现在,BB8 机器人将先停止然后向前行进。记住,它会一直向前走,直到你让它停下来。使用不同的参数执行bash 脚本,看看 BB8 机器人是如何根据发送的参数做出相应动作的。

我们来具体看看这个demo.sh

#!/bin/bash

ARG1=$1

function help(){
    echo "Please enter one of the following: forward, rotate, stop"
    echo
    echo "Example: ./demo.sh rotate"
    exit 1
}

if [ "$ARG1" == 'forward' ]; then
    rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: -0.1
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"

elif [ "$ARG1" == 'rotate' ]; then
    rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.2"

elif [ "$ARG1" == 'stop' ]; then
    rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0

  y: 0.0                                                                      
  z: 0.0"                                                                                                                                         
else                                                                          
    echo "Oh, you didn't type the correct argument"                          
    help                                                                      
fi 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值