首页 > 应用与设计 > 工业应用 > 电器 > Service Robots > 类人机器人 > TI机器人系统学习套件(TI-RSLK) >

类人机器人

最新课程

热门课程

TI-RSLK 模块 4 - 讲座视频 - C 语言编程

大家好,我是 在本次讲座中, 我建议您找一本 比较好用的 以便在本课程中使用。 本讲座的目标是 一些您需要在 时刻注意的 在实验中,您将通过 完成转换, 将其拟合到该曲线, 思考机器人 所以,当机器人来到 您将会询问, 能右转吗? 或者能左转吗? 您将会通过 解决这个问题。 好,让我们开始吧。 如果您知道 我们建议您使用这种图, 以图表的形式描述 一组步骤, 遵循的执行序列。 我们具有起始点 具有可以选择向左 我们可以进行输入、输出。 可以执行计算。 我们甚至可以让一个函数 因为它的构建形式 如果我们有一个序列, 这种情况便称为序列。 我们可能会有 如果测试结果为 如果测试结果为 此外,还有两种循环。 我们可以先执行测试, 我们将循环执行 直至测试结果成为 或者,我们将 然后进行测试。 同样,如果 我们将循环 直至测试结果成为 再强调一次,如果您知道 而且您绘制的软件 我们建议您, 再写代码。 逻辑运算 非常重要。 我们将会在两种情况下 我们可以将其作为 如果使用 我们将选择相应的位。 如果使用 这个运算就在这里, 它会选择第 是恒定的。 我们可以使用 如果我们用 我们还可以使用 我们可以取两个不同的值, 使用“或”运算 合并到一个变量中。 然后是“异或”运算, 切换即翻转,当我们使用 如果原来是 如果原来是 这是幅度与时间的关系。 使用 这种运算以按位方式完成。 所以,对于这里的 x 我的意思是从第 Y 当我执行所有这些 逻辑运算时, 因此,举例来说, 这个过程适用于 以切换为例-- 我们将在整个课程中 但这是第一个端口。 这是微控制器上的 它是一个输出引脚。 如果我们想要 我们可以执行这行 其他 我们可以在这些时间 同样,这也是 如果我们在这个时间 我们将会生成 所以,我们将会 我们会在多种 如果我们想做除法, 那么,让我们除以 如果我们想做乘法, 我们可以针对 我们可以 但是,具体的移动方式 因为您需要了解 因为如果没有符号, 如果有符号, 所以符号位-- 所以,进行移位的负数 仍然为负数。 要做到这一点的方式是, 不是以 则是有符号类型。 当您使用左移 这两种类型都没有问题。 再强调一下,移位运算用于 它通常是先进行各自的移位运算, 并集。 同样,您需要 自己清楚地了解 还是无符号的。 算术运算也同样如此。 所以您同样需要 有符号。 但是我们还会遇到 如果我取两个 我实际上会得到 如果我尝试将这个 32 系统将会给出一个 这种现象称为溢出。 乘法运算时的情况会更糟糕。 取两个 我实际上会得到 同样,如果您尝试将这个 32 因此,加法、减法 发生溢出。 您将可以通过两种 溢出。 一种方法是 例如,如果您知道 如果您知道它不是 那么它的范围为 然后,您使用 数字与该数字进行运算。 举个简单的 1,000 如果您乘以这个数字, 4 不可能再比它更大了。 我们知道 32 所以,您知道, 如果我对输入进行限制, 我们可以看到, 将其与一个 您会得到 所以,您用于处理 了解您所有输入 然后,通盘考虑 确保没有 中间结果。 另外一种处理方式是, 然后降级。 我们将在下面进行说明。 如果您有两个 您想要将 那么您将会得到一个 这时便没有什么转圜的余地。 但是,如果您将 我已经进行了升级。 这是一个 我在 然后检查 8 如果超出,我会 然后降级至 这并不是正确的答案, 但要比允许 在处理算术运算时, 正确处理您的 还是有符号数字。 同样,在 类型来做到这一点。 无论您使用的是 还是 对于除法, 关于除法的 掉出,即信息丢失。 这种情况很常见。 如果我任意取一个数字, 这是一个整数除法。 它从本质上是一个右移运算。 我们将会 就是这样。 这个运算将会 并切掉它后面的 所以每次在做除法 我们都会遇到掉出的问题, 当我们执行计算, 在计算中的 我们将会再次 所以这两个问题是加法和 以及右移运算 条件语句, 因为我们可以看到, 总共 逻辑运算。 而双与,还有双或, 则是布尔运算。 布尔值是 0 双与、双或和非 是布尔运算。 也就是说, 进行 关系运算是 一个数字 当我执行关系运算时, 比如大于、小于、 或不等于,我将会 而且我可以将这些 决策中,如果 执行这一步, 我可以在 使用“与”运算。 如果设置了第 如果清除了第 要再次提醒您的是, 自己谈论的是 进行的数字运算, 进行的布尔运算。 上述情况同样适用于循环结构。 while 因此,这样会计算得到 我们将在这里放置 因此,在本例中, 如果 执行该主体, 直至 然后停止执行主体。 do 一次,然后进行测试。 同样,如果 则会执行主体一次, 执行,直至 有时,我们会一遍 更具体一点,我们可以 但是如果您注意一下 简单,本质上也是 我们将会取用 并使其执行一次。 我们将会取用 这部分将用作测试。 我们将会执行主体。 然后这部分代码会在 一遍又一遍地执行。 这种情况下 您可以使用向上计数或向下计数。 这都没有关系。 while 仍然为 某个操作。 上次我们看到, 非常重要。 允许您将 与低层次的 分离开来。 我们会在 将它的功能作为 我们将会实施 文件中展示 同时尽量隐藏这些细节。 实施文件或代码文件中 包含公有函数的 所有细节和原型。 也就是说, 了解的内容都将 这种抽象 实现非常高的复杂性。 函数的第三个方面是 在本课程中, 许多主程序,用来 我们可以在这里看到, 来调用函数。 而且我们可以 这个是 数字 x 是静态全局变量 然后,我们也可以 并将其存储到一个位置。 同样,这里的 将会传回一个参数。 这是一个 这不是一个非常好的 但是它会返回 因此,函数 非常重要。 建议您看看 如何设置的,以了解 变量,这张幻灯片, 可能是本讲座中 因为,它们介绍了 程序员的各种变量。 我们可以讨论 而且一个变量的名称应该 但是今天我想要 我想要讨论的是范围, 分配则是关于 所以,当我们限制 私有变量,不限制范围时, 分配则分为临时 也就是说, 所以,全局变量是一个 这意味着任何函数都可以使用它。 如果我定义 并将其置于 软件中的 其他模块便可以 并拥有对这个变量的读写权限。 这是一件很糟糕的事情。 它具有永久性分配, 也就是说,它会永远 某个地址上。 有时,我们确实需要 可以不使用全局变量。 这时,我们会创建 这里便是一个 它具有永久性分配, 但是其范围是私有的-- 针对该文件的私有范围。 因此,只有该文件中的 其他函数无法将其用作 这种范围限制 局部变量具有私有 其中动态分配 意味着它临时存储在 这是一件好事, 重复使用该资源。 这种变量的范围 例如,这里便有 这里是另外 它们具有相同的名称, 变量。 所以,这个局部变量的 而这个局部变量的 事实证明,我们还需要 这个参数 这个函数。 所以这是一个局部变量。 因此,还有另外 这种静态变量 和私有范围。 但是,如果我将 那么它的范围 这是一个仅发生一次的 因此,它在存储器的 永久性分配,而且会在 之后每次 它都会递增。 所以,您可以看到 它将会对调用 随机数生成器的 如果这是 所以,在这里, 了解范围和分配。 我们想要做的是, 我们对范围的 我们的系统就越简单。 因此,我们必须了解, 或者说访问该变量。 如果我能减小它的范围, 这个原则同样 如果我能够动态分配变量, 在寄存器中使用变量, 那么我就可以重复使用该资源。 有时,我真的需要永久性地 那么,我将会为其提供 但是,正如在上一张幻灯片中 以便仅允许相应 跟其他问题 几乎每张相关的幻灯片内 即处理对象是有符号的 再说明一次,无符号 有符号变量 请注意并明确自己 还是 我们在前面提到过, 进行升级,因为 数字与一个 您无法将一个有符号 进行比较,但是您 您将要做的是, 同一类型,在这一 然后将其降级 这向您展示了一种可以 进行升级的方式。 所以,一个 一个 无符号 有符号的 在讨论变量的同时, 让我们来讨论一下 I/O 我们将会在后面 这里只是想说明 所以其行为方式与变量类似。 当您从德州仪器 它存在于一个大家 都知道的地址上。 由于它具有 而且大家到知道 因此,它在形式上和规则上 它支持公共访问, 我说过这样很糟糕。 任何软件都可以访问该端口。 但是,为了 我们将会从另外一种角度 不是关注谁可以访问, 如果我们限制谁会访问 这将会大大降低 因此,从实践 我们将把 类似静态变量的 所以,您对程序中 限制越严格,您的 常量,我们可以将它们放在这里, 这里又用到了这个 我们取输入值, 该曲线的形状 数字进行编码。 如果我们有许多常量, 这一点可通过 有时,我们可能想要 这时,您将会 所以,如果机器人-- 这是我的机器人, 这是墙壁。 如果我离右侧 我可能想要说, 而不是简单地说 虽然这也是在表示离右侧墙壁 使用枚举类型。 这是一个标头, 它实际上 而只是一个结构。 如果我想要一个变量, 比如说 下划线 然后,我将会创建一个变量。 如果我的情况是 我可以将 总的来说, 同一件事情。 只是这可以让您的 这同样也是一个常量, 将会是 但是,这让我的软件 这便是创建常量的 我们可以讨论您的 如果您有一个 执行 那么执行 执行 我们会看到一些事件, 所以,我们可以创建一些触发器。 当您触摸按钮时, 执行某个操作, 如果撞到墙壁, 这便是一个中断。 我们将会看到的 每秒钟执行 比如,我们可能会每秒 好的,总结一下, “与”运算相关的 并且我还提醒您注意 还是无符号的, 还是 对于变量, 其范围,也就是谁可以访问, 尽可能地将其作为 以限制其范围。 然后是关注分配, 也就是变量存在于哪里。 希望您喜欢本课程,

大家好,我是

在本次讲座中,

我建议您找一本

比较好用的

以便在本课程中使用。

本讲座的目标是

一些您需要在

时刻注意的

在实验中,您将通过

完成转换,

将其拟合到该曲线,

思考机器人

所以,当机器人来到

您将会询问,

能右转吗?

或者能左转吗?

您将会通过

解决这个问题。

好,让我们开始吧。

如果您知道

我们建议您使用这种图,

以图表的形式描述

一组步骤,

遵循的执行序列。

我们具有起始点

具有可以选择向左

我们可以进行输入、输出。

可以执行计算。

我们甚至可以让一个函数

因为它的构建形式

如果我们有一个序列,

这种情况便称为序列。

我们可能会有

如果测试结果为

如果测试结果为

此外,还有两种循环。

我们可以先执行测试,

我们将循环执行

直至测试结果成为

或者,我们将

然后进行测试。

同样,如果

我们将循环

直至测试结果成为

再强调一次,如果您知道

而且您绘制的软件

我们建议您,

再写代码。

逻辑运算

非常重要。

我们将会在两种情况下

我们可以将其作为

如果使用

我们将选择相应的位。

如果使用

这个运算就在这里,

它会选择第

是恒定的。

我们可以使用

如果我们用

我们还可以使用

我们可以取两个不同的值,

使用“或”运算

合并到一个变量中。

然后是“异或”运算,

切换即翻转,当我们使用

如果原来是

如果原来是

这是幅度与时间的关系。

使用

这种运算以按位方式完成。

所以,对于这里的

x

我的意思是从第

Y

当我执行所有这些

逻辑运算时,

因此,举例来说,

这个过程适用于

以切换为例--

我们将在整个课程中

但这是第一个端口。

这是微控制器上的

它是一个输出引脚。

如果我们想要

我们可以执行这行

其他

我们可以在这些时间

同样,这也是

如果我们在这个时间

我们将会生成

所以,我们将会

我们会在多种

如果我们想做除法,

那么,让我们除以

如果我们想做乘法,

我们可以针对

我们可以

但是,具体的移动方式

因为您需要了解

因为如果没有符号,

如果有符号,

所以符号位--

所以,进行移位的负数

仍然为负数。

要做到这一点的方式是,

不是以

则是有符号类型。

当您使用左移

这两种类型都没有问题。

再强调一下,移位运算用于

它通常是先进行各自的移位运算,

并集。

同样,您需要

自己清楚地了解

还是无符号的。

算术运算也同样如此。

所以您同样需要

有符号。

但是我们还会遇到

如果我取两个

我实际上会得到

如果我尝试将这个

32

系统将会给出一个

这种现象称为溢出。

乘法运算时的情况会更糟糕。

取两个

我实际上会得到

同样,如果您尝试将这个

32

因此,加法、减法

发生溢出。

您将可以通过两种

溢出。

一种方法是

例如,如果您知道

如果您知道它不是

那么它的范围为

然后,您使用

数字与该数字进行运算。

举个简单的

1,000

如果您乘以这个数字,

4

不可能再比它更大了。

我们知道

32

所以,您知道,

如果我对输入进行限制,

我们可以看到,

将其与一个

您会得到

所以,您用于处理

了解您所有输入

然后,通盘考虑

确保没有

中间结果。

另外一种处理方式是,

然后降级。

我们将在下面进行说明。

如果您有两个

您想要将

那么您将会得到一个

这时便没有什么转圜的余地。

但是,如果您将

我已经进行了升级。

这是一个

我在

然后检查

8

如果超出,我会

然后降级至

这并不是正确的答案,

但要比允许

在处理算术运算时,

正确处理您的

还是有符号数字。

同样,在

类型来做到这一点。

无论您使用的是

还是

对于除法,

关于除法的

掉出,即信息丢失。

这种情况很常见。

如果我任意取一个数字,

这是一个整数除法。

它从本质上是一个右移运算。

我们将会

就是这样。

这个运算将会

并切掉它后面的

所以每次在做除法

我们都会遇到掉出的问题,

当我们执行计算,

在计算中的

我们将会再次

所以这两个问题是加法和

以及右移运算

条件语句,

因为我们可以看到,

总共

逻辑运算。

而双与,还有双或,

则是布尔运算。

布尔值是

0

双与、双或和非

是布尔运算。

也就是说,

进行

关系运算是

一个数字

当我执行关系运算时,

比如大于、小于、

或不等于,我将会

而且我可以将这些

决策中,如果

执行这一步,

我可以在

使用“与”运算。

如果设置了第

如果清除了第

要再次提醒您的是,

自己谈论的是

进行的数字运算,

进行的布尔运算。

上述情况同样适用于循环结构。

while

因此,这样会计算得到

我们将在这里放置

因此,在本例中,

如果

执行该主体,

直至

然后停止执行主体。

do

一次,然后进行测试。

同样,如果

则会执行主体一次,

执行,直至

有时,我们会一遍

更具体一点,我们可以

但是如果您注意一下

简单,本质上也是

我们将会取用

并使其执行一次。

我们将会取用

这部分将用作测试。

我们将会执行主体。

然后这部分代码会在

一遍又一遍地执行。

这种情况下

您可以使用向上计数或向下计数。

这都没有关系。

while

仍然为

某个操作。

上次我们看到,

非常重要。

允许您将

与低层次的

分离开来。

我们会在

将它的功能作为

我们将会实施

文件中展示

同时尽量隐藏这些细节。

实施文件或代码文件中

包含公有函数的

所有细节和原型。

也就是说,

了解的内容都将

这种抽象

实现非常高的复杂性。

函数的第三个方面是

在本课程中,

许多主程序,用来

我们可以在这里看到,

来调用函数。

而且我们可以

这个是

数字

x

是静态全局变量

然后,我们也可以

并将其存储到一个位置。

同样,这里的

将会传回一个参数。

这是一个

这不是一个非常好的

但是它会返回

因此,函数

非常重要。

建议您看看

如何设置的,以了解

变量,这张幻灯片,

可能是本讲座中

因为,它们介绍了

程序员的各种变量。

我们可以讨论

而且一个变量的名称应该

但是今天我想要

我想要讨论的是范围,

分配则是关于

所以,当我们限制

私有变量,不限制范围时,

分配则分为临时

也就是说,

所以,全局变量是一个

这意味着任何函数都可以使用它。

如果我定义

并将其置于

软件中的

其他模块便可以

并拥有对这个变量的读写权限。

这是一件很糟糕的事情。

它具有永久性分配,

也就是说,它会永远

某个地址上。

有时,我们确实需要

可以不使用全局变量。

这时,我们会创建

这里便是一个

它具有永久性分配,

但是其范围是私有的--

针对该文件的私有范围。

因此,只有该文件中的

其他函数无法将其用作

这种范围限制

局部变量具有私有

其中动态分配

意味着它临时存储在

这是一件好事,

重复使用该资源。

这种变量的范围

例如,这里便有

这里是另外

它们具有相同的名称,

变量。

所以,这个局部变量的

而这个局部变量的

事实证明,我们还需要

这个参数

这个函数。

所以这是一个局部变量。

因此,还有另外

这种静态变量

和私有范围。

但是,如果我将

那么它的范围

这是一个仅发生一次的

因此,它在存储器的

永久性分配,而且会在

之后每次

它都会递增。

所以,您可以看到

它将会对调用

随机数生成器的

如果这是

所以,在这里,

了解范围和分配。

我们想要做的是,

我们对范围的

我们的系统就越简单。

因此,我们必须了解,

或者说访问该变量。

如果我能减小它的范围,

这个原则同样

如果我能够动态分配变量,

在寄存器中使用变量,

那么我就可以重复使用该资源。

有时,我真的需要永久性地

那么,我将会为其提供

但是,正如在上一张幻灯片中

以便仅允许相应

跟其他问题

几乎每张相关的幻灯片内

即处理对象是有符号的

再说明一次,无符号

有符号变量

请注意并明确自己

还是

我们在前面提到过,

进行升级,因为

数字与一个

您无法将一个有符号

进行比较,但是您

您将要做的是,

同一类型,在这一

然后将其降级

这向您展示了一种可以

进行升级的方式。

所以,一个

一个

无符号

有符号的

在讨论变量的同时,

让我们来讨论一下

I/O

我们将会在后面

这里只是想说明

所以其行为方式与变量类似。

当您从德州仪器

它存在于一个大家

都知道的地址上。

由于它具有

而且大家到知道

因此,它在形式上和规则上

它支持公共访问,

我说过这样很糟糕。

任何软件都可以访问该端口。

但是,为了

我们将会从另外一种角度

不是关注谁可以访问,

如果我们限制谁会访问

这将会大大降低

因此,从实践

我们将把

类似静态变量的

所以,您对程序中

限制越严格,您的

常量,我们可以将它们放在这里,

这里又用到了这个

我们取输入值,

该曲线的形状

数字进行编码。

如果我们有许多常量,

这一点可通过

有时,我们可能想要

这时,您将会

所以,如果机器人--

这是我的机器人,

这是墙壁。

如果我离右侧

我可能想要说,

而不是简单地说

虽然这也是在表示离右侧墙壁

使用枚举类型。

这是一个标头,

它实际上

而只是一个结构。

如果我想要一个变量,

比如说

下划线

然后,我将会创建一个变量。

如果我的情况是

我可以将

总的来说,

同一件事情。

只是这可以让您的

这同样也是一个常量,

将会是

但是,这让我的软件

这便是创建常量的

我们可以讨论您的

如果您有一个

执行

那么执行

执行

我们会看到一些事件,

所以,我们可以创建一些触发器。

当您触摸按钮时,

执行某个操作,

如果撞到墙壁,

这便是一个中断。

我们将会看到的

每秒钟执行

比如,我们可能会每秒

好的,总结一下,

“与”运算相关的

并且我还提醒您注意

还是无符号的,

还是

对于变量,

其范围,也就是谁可以访问,

尽可能地将其作为

以限制其范围。

然后是关注分配,

也就是变量存在于哪里。

希望您喜欢本课程,

视频报错
手机看
扫码用手机观看
收藏本课程

相关下载

查看全部

视频简介

TI-RSLK 模块 4 - 讲座视频 - C 语言编程

所属课程:TI机器人系统学习套件(TI-RSLK) 发布时间:2018.08.27 视频集数:69 本节视频时长:00:26:30

在该模块中,你将会开发和测试迷宫机器人可能会用到的软件功能。

技术支持

已有15人参与了讨论去论坛跟帖交流
new
关闭广告