我尝试通过按照OI中的建议每分钟将BRC引脚拉低一秒钟来禁用睡眠,但是我的Create 2在5分钟后仍然进入睡眠状态。 -3.2.6:4975 CLEAN

Create 2连接到Arduino,BRC由Arduino引脚之一驱动。我在DMM上验证了电压确实在翻转。我能够在Arduino和Create2之间发送和接收串行数据。

伪代码:


初始化roomba。以115200波特连接串行。切换BRC:高电平持续200 ms,低电平持续200 ms,然后再次高电平。保持较高状态。
请Roomba在被动模式下传输传感器数据。在BRC切换后等待1秒钟,以便有更多的时间唤醒。然后发送操作码7(复位),等待复位消息,方法是查找最后几个字符,然后再等待一秒钟,以取得良好效果。接下来,发送操作码128(开始进入被动模式),等待100毫秒使操作码停留,然后请求数据流(操作码148,后跟数据包ID的数量和数据包ID本身)。
主循环:回显数据从Create2到Arduino的串行USB输出,以便我可以查看Create2数据。由Create2发送的数据看起来有效(校验和良好),并且以大约15毫秒的预期时间间隔发送。主循环还会每分钟将BRC的低电平切换为1秒。 />

评论

这可能是机器人软件中的错误,或者OI文档已过时。机器人不能以任何理由停靠在码头或其他OI模式下吗?

我认为您的电缆可能不好。您是否已验证Mini-DIN末端上的引脚在改变电平?如果不是,并且您正在使用iRobot电缆,请参考此文章,联系create@irobot.com。

首先,我要承认,我对irobot create 2的了解不是很好,因为专有制造商不是这个星球上最好的公司,他们正在生产故障机器人,并且对他们的客户不是很支持。同样,我的计算能力不足以理解您的问题,也无法解决可能以某种C语言方言编写的源代码,这不是我为编程机器人选择的语言。也许在irobot官方商店中的家伙有更多有用的知识。在其网站的右上角有一个按钮“

如果此机器人在码头上,则此问题是robotics.stackexchange.com/questions/15433/…的重复。如果机器人不在码头上,我建议在robotics.stackexchange.com/questions/12846/…上使用@ hcl337的答案。请注意,我是iRobot的雇员,但此网站上的帖子属于我本人,不一定代表iRobot的立场,策略或观点。

#1 楼

我的Roomba 635出现了完全相同的问题。

我还使用了Arduino(特别是esp8266),每15秒将BRC端口脉冲为低电平100ms。

我得到:

Running sendInfoRoomba()...
ERROR: Incomplete packet recieved 0 bytes.
Pulsing awake pin & sending 128...


我每10秒发送一次的命令是:
128、149、3、21、25、26

但是,我在很多场合都没有得到回复。唯一的“解决方法”是按顶部的电源按钮-然后一切都会神奇地起作用-直到不再出现。 br />
  // Get the following sensors:
  // 21 (1 byte reply) - charge state
  // 25 (2 byte reply) - battery charge
  // 26 (2 byte reply) - battery capacity
  unsigned int command[] = { 128, 149, 3, 21, 25, 26 };
  byte numOfCommands = (sizeof(command) / sizeof(command[0]));
  for ( int i = 0; i < numOfCommands; i++ ) {
    Serial.print("TX: "); Serial.println(command[i], DEC);
    RoombaSerial.write(command[i]);
    delay(10);
  }


请注意,我有两个串口,Serial是PC的USB适配器,RoombaSerial是一个用于将Roomba的两个插针连接的SoftwareSerial。

评论


$ \ begingroup $
我无法确定这是解决方案还是问题的答案,或者是“我遇到同样的问题”帖子
$ \ endgroup $
– Greenonline
18年7月12日在7:14



$ \ begingroup $
欢迎使用机器人技术的史蒂文·海格(Steven Haigh)。在StackExchange上,答案需要回答问题。 StackExchange不是讨论论坛,而是一个提出问题并获得答案的地方。如果您想讨论问题或答案,可以在拥有聊天权限的情况下使用机器人聊天。如果您对如何改善问题有想法,可以在拥有评论权限的情况下发表评论。请查看“如何提问和浏览”以获取有关StackExchange工作原理的更多信息。
$ \ endgroup $
– Mark Booth♦
18年7月12日在11:23

$ \ begingroup $
注意:尽管我通常会删除未回答的内容,但我将其保留在此处,因为它可能会提供有助于回答lejiang问题的信息。
$ \ endgroup $
– Mark Booth♦
18年7月12日在11:28