我们遇到一个问题,即在充电器上将create 2从被动切换到主动,然后等待几秒钟并切换回被动后,所有串行通信在一定百分比的时间内失败。 (下面显示当前和串行通信的图像的链接,如下图所示)。长时间(数月)。

因为我们直接从电池中切断了电源(需要更大的电流),所以我们发现必须将模式从passive切换到full并返回,以便它检查电压并从trick流返回如果已经过了几个小时并且计算机已将电池放电,请充满电。这是因为the流充电算法不会检查电压,因为它假定Roomba上的负载不足以放电。

我们以这种方式开始失败,现在已经验证了是否仅插入一台笔记本电脑通过usb串行电缆进入创建状态,而没有插入其他任何东西,然后切换无源/完全/等待/无源,有百分之一的时间,如果没有任何单独的硬件,我们也会遇到通信故障。

因为在没有通信5分钟后,create 2会关闭,我们尝试每4分钟切换一次它,看看它确实发生了,所以这不是create 2进入睡眠模式的问题。

再现性

我们看到了一个非常可重复的问题,串行通信(使用iRobot的当前USB串行电缆)在开始充电时会丢失与机器人的串行通信的时间百分比机器人。之后,很长一段时间没有任何数据包从机器人进入。一段时间后,当我们反复尝试从被动切换到完全切换时,重新出现了通信。

我们已经使用ROS堆栈(create_autonomy)进行了验证,并且还通过直接在命令行echo -e "\x07" > /dev/ttyUSB0上回显字符来重置内容进行了验证。串行电缆无法正常工作,等等。我们必须从物理上将其从充电器上取下(或等待很长时间,直到我们的系统再次将其切换为正常为止。

我们已经验证了这种情况(当create 2在其充电器上时)位于:


Mac仅通过create电缆插入而系统未取电。
NUC直接从电池中取电通过DC / DC转换器。
NUC从创建的中间电池中取电。在所有电缆上都可以减轻高频噪声,但这似乎也无法解决。
我们还尝试了3种带有不同串行/ USB芯片的专用电缆,甚至构建了自己的电缆从头开始并没有固定它。 >我在下面附加了链接,其中包含失败时输出数据的图表。当电流/电压上有一条直线时,即重复的数据,表明它被卡住了并且没有更新。当系统增加电流以再次开始充电时,它总是会正确发生,因此它似乎与电流尖峰有关-但只会使其破裂1/5或10次-碰巧一旦破裂,它将保持这种状态

多次成功切换后通讯失败

详细显示通讯何时失败的详细信息

几分钟后,通讯又恢复正常了

发生故障时,我曾尝试关闭软件并通过直接向其回显数据以使OI关闭,打开,重置等方式对系统进行寻址,但看不到通信正确恢复。如果我们用手将Roomba从充电器上拔下(将其拔出),那么它确实可以工作很多次,但并非总是如此。如果我们随后按住按钮重置所有内容,则它似乎确实可以在95%的时间内正常工作,有时我们甚至不得不拉动电池才能使其正常工作。

如果有人遇到过这种情况之前,建议会有所帮助。我们曾以为这是接地回路问题,但鉴于它存在于许多不同的电缆,室内机,电源状况和计算设备中,因此我们正在尝试找出设置方面的根本错误。

谢谢!

#1 楼

在Create 2上实现睡眠/唤醒存在一个错误,该错误已在版本3.8.2中修复,适用于具有较旧处理器的机器人,或者版本stm32-3.7.7适用于具有较新处理器的机器人。要接收将(希望)解决您问题的代码更新,请发送电子邮件至create@irobot.com,并参考此帖子。

请注意,我是iRobot员工,这个网站是我自己的,不一定代表iRobot的立场,策略或观点。

评论


$ \ begingroup $
对不起,麻烦;尝试做正确的事情,并尽可能有效地获取信息。您对选择哪个职位做出“规范”答案有标准吗?我也计划在发布最终版本后使用修订版本编号进行更新。编辑规范答案是最好的方法吗?一旦您给了我指导,我将在美国东部时间早上进行清理。
$ \ endgroup $
–史蒂夫
18年7月18日在4:20



$ \ begingroup $
我已经阅读了这两页,并且正在选择这篇文章作为规范答案。我已从其他副本中删除了答案,而是用链接到此答案或12846中的答案的注释替换了它们。关于“如何成为垃圾邮件发送者”,请注意,我是iRobot的员工,但是此网站上的帖子属于我本人,不一定代表iRobot的立场,策略或观点。
$ \ endgroup $
–史蒂夫
18年7月18日在13:16

$ \ begingroup $
嗨,马克。感谢您的轻柔纠正和后续确认。我将继续浏览以前的帖子,并在适当的时候标记我的从属关系。
$ \ endgroup $
–史蒂夫
18年7月18日在13:37

#2 楼

当Create 2进入无法与之通信的状态时,您是否尝试过手动按下Clean按钮?

如果可靠地起作用,您是否考虑过将NUC控制的继电器添加到通过直接连接到“清洁”按钮触点来关闭这些触点。

另一种方法是添加带有臂的NUC螺线管或伺服器,以手动按下清洁按钮



评论


$ \ begingroup $
这是一个好主意!我们已经订购了2个4个中继板,将尝试从主电路板上断开电池连接,并从板上断开充电触点,以查看是否成功触发了它。看来系统可以进入睡眠状态而不是崩溃,并且我们可以使用BRC引脚可靠地将其打开一秒钟,但它不会自动关闭充电器。一旦完成,便会有更多更新!
$ \ endgroup $
– hcl337
18-4-20在22:09



$ \ begingroup $
在给BRC脉冲时,我也经历了“一分钟窗口”,它可以接受任何命令,除了运动命令。但是,在那1分钟的窗口中,如果我发送了Reset(7)命令,则我有5分钟的窗口来发送运动命令并将其退离码头
$ \ endgroup $
– Faengelm
18-4-20在23:33



#3 楼

我还有一个建议给您,因为拆开Create 2来访问Clean按钮的触点还需要很多工作。 。我可以高兴地报告,它确实唤醒了在其基座上向Roomba充电的细流。实际上,它的行为与按“清洁”按钮非常相似。您可以通过使用带有红外LED和软件的Arduino板替换红外遥控器来清理此模块。红外遥控器的作用类似于“清洁”按钮,但不完全相同。短按“清洁”按钮将打开绿色LED,再短按一次将启动清洁周期。长按不起作用。短按可用于中断并重新启动清洁周期

在红外遥控器上,对接时短脉冲(500毫秒)将不起作用,但是单个长脉冲(> 1500毫秒)将开始清洁周期。
您可以中断清洁周期并以短脉冲重新开始清洁周期。长脉冲似乎会切换绿色LED。

还有一件事……如果您选择使用控制器的OI移动命令停止清洁周期,这是我们真正想实现的远程呈现机械手,红外脉冲将不再能够控制Roomba。如果希望通过IR重新获得控制权,则必须发送Stop(173)命令。

您可以在此处找到一些其他详细信息。 http://www.ez-robot.com/Community/Forum/posts.aspx?threadId=10953&page=11