Error message

  • Deprecated function: Return type of DatabaseStatementBase::execute($args = [], $options = []) should either be compatible with PDOStatement::execute(?array $params = null): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2244 of /home2/crephoto/public_html/lcc1740.org/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/crephoto/public_html/lcc1740.org/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/crephoto/public_html/lcc1740.org/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/crephoto/public_html/lcc1740.org/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/crephoto/public_html/lcc1740.org/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/crephoto/public_html/lcc1740.org/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseCondition::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 1652 of /home2/crephoto/public_html/lcc1740.org/includes/database/query.inc).
  • Deprecated function: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in drupal_random_bytes() (line 2268 of /home2/crephoto/public_html/lcc1740.org/includes/bootstrap.inc).
  • Deprecated function: Return type of DateObject::__wakeup() should either be compatible with DateTime::__wakeup(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 143 of /home2/crephoto/public_html/lcc1740.org/sites/all/modules/date/date_api/date_api.module).
  • Deprecated function: Return type of DateObject::format($format, $force = false) should either be compatible with DateTime::format(string $format): string, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 143 of /home2/crephoto/public_html/lcc1740.org/sites/all/modules/date/date_api/date_api.module).
  • Deprecated function: Return type of DateObject::setTimezone($tz, $force = false) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 143 of /home2/crephoto/public_html/lcc1740.org/sites/all/modules/date/date_api/date_api.module).
  • Deprecated function: rtrim(): Passing null to parameter #1 ($string) of type string is deprecated in url() (line 2349 of /home2/crephoto/public_html/lcc1740.org/includes/common.inc).
  • Deprecated function: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in url_is_external() (line 2393 of /home2/crephoto/public_html/lcc1740.org/includes/common.inc).
  • Deprecated function: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in url_is_external() (line 2395 of /home2/crephoto/public_html/lcc1740.org/includes/common.inc).
  • Deprecated function: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in url() (line 2311 of /home2/crephoto/public_html/lcc1740.org/includes/common.inc).
  • Deprecated function: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in url_is_external() (line 2393 of /home2/crephoto/public_html/lcc1740.org/includes/common.inc).
  • Deprecated function: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in url_is_external() (line 2395 of /home2/crephoto/public_html/lcc1740.org/includes/common.inc).
  • Deprecated function: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in url() (line 2311 of /home2/crephoto/public_html/lcc1740.org/includes/common.inc).

FRC 2017 Recap

Team Updates

Great year for the team, our best finish ever at WPI district taking second on the alliance with teams 1519 and 190. Here are my programming notes for the year.

Sensors & Autonomous

Sensor feedback is not optional. All systems MUST have appropriate sensors in order to properly code autonomous mode. This includes encoders or counters for all motors, rangefinders for distance sensing, gyros for steering, and limit switches where appropriate. The new IMU worked great for steering in auto mode this year, but really requires drive motors to be coded with PID motor control. The magnetic encoders on the drive wheels were great, but only two of four worked, then we lost those when we replaced all four drive motors at WPI. ALL drive motors on ALL platforms (test bed, etc) should be fitted for these magnetic encoders. The counter on the shooter wheel worked great until it came loose (taped on), then the code kicked in trying to compensate and over-powered the shooter.

Vision

Continues to be just beyond our grasp. A major issue with vision processing in general is that it bogs down the Rio's CPU and should really be done by a separate processor. However, this is meaningless if we can't actually get vision tracking code working to steer the robot in autonomous mode. Good off-season project for software team. Partial vision code is in the final 2017 github commit, but commented out since it wasn't working.

PID

Again, this should not be optional, but it's been a tricky thing to work out. We had a fair amount of success using the feedback from the IMU gyros and a PI (no D) algorithm to handle the auto driving for the left & center gear modes, but there's significant room for improvement. Right side gear never worked due to those pesky real-world issues like weight distribution & friction.

GitHub

Worked like a charm this year, but mostly because there wasn't more than one programming working on the code at any given time. Some git notes:

Git Shell Color Scheme

  • Cyan means the branch matches its remote
  • Green means the branch is ahead of its remote (green light to push)
  • Red means the branch is behind its remote
  • Yellow means the branch is both ahead of and behind its remote

Merging & Syncing

When a fork is AHEAD of the master, you need a git push When a fork is BEHIND the master, you need a git pull upstream master Lastly, git status will tell you where you stand