使我的2个马达(车轮)采取一个平滑的左,因为它的跟踪左侧使用范围传感器
Making my 2 Motors (with wheels) take a smooth left as its tracking the left side using a range sensor
所以直接进入它,我目前有我的设置使用一个紧急激光传感器,arduino pro mini(从),树莓派(主)和Sabertooth 2x12 PWM控制2个电机。
顺便说一句,我正在用cpp编程
我把所有的东西都设置好了,使用我从urg激光传感器获得的激光传感器数据,我能够得到我的小系统的前、左、右、前、右、后和后,这是由2轮驱动(电机)和2个可变轮在前面驱动的。
我正在跟踪一堵废弃的墙,当左后传感器没有检测到任何东西时,它应该左转。
一切顺利!直到它做了一个转弯(转弯设置为45,当它检测到,做一个u型转弯,绕过废弃的墙),中途停止,因为后左检测墙仍然在中途转弯。这很难解释,除非你想象它。
我将通过asci 尝试--------------------
----> [] <-- my device (backleft detects nothing at this point)
中期转
-------------------- [] <-- it now detects a backleft and stops
无论如何,让它做一个平稳的左转,没有延迟。我想让它尽可能地无缝衔接。已经实现了PID,所以这是最后一部分:(
谢谢! !
一旦你开始转弯,你可能需要开始看左前方的传感器值,而不是左后方。也许可以继续转弯,直到左前方的数值达到合适的低值,然后开始向前移动。转弯后,您可能需要继续纠正转向,直到左前和左后传感器给出与墙壁相同的距离(假设您希望平行结束)。
相关文章:
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 光线跟踪器灯光反射错误
- 人脸跟踪arduino代码的优化
- 跟踪滚动条上的鼠标事件
- 如何使用新运算符跟踪在循环中创建的 QLabel
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- C++:跟踪类对象
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 跟踪日志中的T.11803()是什么意思?
- 程序无法启动,因为缺少 libmpc-3.dll
- 数组类型 int[n][n] 不可赋值,因为表达式必须具有常量值
- 在这个函数中是有缺陷的,因为取消引用 null 是无效的,所以我想更改代码
- 无法为 X.radio 创建中等可视化,因为找不到网络节点可视化 - Omnet++
- 在编译时,C++项目抛出错误 C2228,这是预期的,因为控件在运行时未达到该点
- C++ 程序不会因为内存而终止
- 我能做些什么来跟踪矢量元素?
- 两个进程可以通过跟踪附加到同一个 PID 吗?
- 为什么"fun(i)"被推导出为"fun<int&>"而不是"fun<int>",因为"i"是"int"的类型而不是参考?
- 提升堆栈跟踪不显示函数名称和行号
- 使我的2个马达(车轮)采取一个平滑的左,因为它的跟踪左侧使用范围传感器