2017-01-21
Dana Batali
Dana Batali12:04 PM

@Dana Batali has joined the channel

Dana Batali
Dana Batali12:04 PM

@Dana Batali set the channel purpose: track the state of the build

Dana Batali
Dana Batali12:11 PM

added an integration to this channel: github

Dana Batali
Dana Batali12:15 PM

removed an integration from this channel: github

Jack Stratton
Jack Stratton12:38 PM

added an integration to this channel: github

Jack Stratton
Jack Stratton12:39 PM

@Jack Stratton has joined the channel

Dana Batali
Dana Batali1:52 PM

added an integration to this channel:

Noah Martin
Noah Martin2:27 PM

@Noah Martin has joined the channel

2017-01-22
Lia Johansen
Lia Johansen1:32 PM

@Lia Johansen has joined the channel

Michael Nelson
Michael Nelson1:32 PM

@Michael Nelson has joined the channel

Riyadth Al-Kazily
Riyadth Al-Kazily1:32 PM

@Riyadth Al-Kazily has joined the channel

Binnur Alkazily
Binnur Alkazily1:32 PM

@Binnur Alkazily has joined the channel

Brian Hutchison
Brian Hutchison1:45 PM

@Brian Hutchison has joined the channel

2017-01-24
2017-01-25
Jack Stratton
Jack Stratton6:38 PM

o_ô

Binnur Alkazily
Binnur Alkazily9:24 PM

:slightlysmilingface: well — it is open sourced. do we have a license setup for our codebase?

Jack Stratton
Jack Stratton9:24 PM

probably not. feel like MIT?

Binnur Alkazily
Binnur Alkazily9:25 PM

ha! it is one of ours from FTC

Binnur Alkazily
Binnur Alkazily9:26 PM

I like MIT license — you guys can discuss and recommend

Jack Stratton
Jack Stratton9:28 PM

MIT license?

Jack Stratton
Jack Stratton9:28 PM

more or less "anyone copy and use the code as long as the code says it came from us"

Binnur Alkazily
Binnur Alkazily9:30 PM

you should take this to #programming

Binnur Alkazily
Binnur Alkazily9:30 PM

or prog_leadership

2017-01-26
2017-01-27
2017-01-29
Noah Martin
Noah Martin2:33 PM

@Noah Martin set the channel topic: Updates from GitHub and Travis

2017-01-30
2017-02-01
2017-02-02
2017-02-03
Dana Batali
Dana Batali10:11 AM

thanks for the pointer... i'll fix the weird characters in the comment... I'm not sure why builds didn't fail locally.

2017-02-04
2017-02-05
2017-02-07
2017-02-08
2017-02-09
Jack Stratton
Jack Stratton7:16 PM

again I won't be at any of the weekday meetings (minus 20th) until 4

Jack Stratton
Jack Stratton7:16 PM

wrong programming channel

2017-02-10
2017-02-11
2017-02-12
2017-02-13
2017-02-15
2017-02-16
2017-02-17
2017-02-18
James Slattery
James Slattery7:14 AM

@James Slattery has joined the channel

Timo Lahtinen
Timo Lahtinen12:45 PM

@Timo Lahtinen has joined the channel

2017-02-19
2017-02-20
2017-02-21
2017-03-01
2017-03-04
2017-03-07
2017-03-19
2017-03-21
2017-03-23
2017-03-25
2017-03-28
Jack Stratton
Jack Stratton10:46 AM

...okay then

Binnur Alkazily
Binnur Alkazily5:47 PM

:) sounds like we need clear requirements and use cases to be spelled out

2017-03-29
2017-04-05
2017-04-06
2017-08-13
Declan Freeman-Gleason
Declan Freeman-Gleason10:47 AM

@Declan Freeman-Gleason has joined the channel

2017-09-29
Randy Groves
Randy Groves8:34 PM

@Randy Groves has joined the channel

2017-10-16
Darwin Clark
Darwin Clark12:49 PM

@Darwin Clark has joined the channel

2017-11-09
Willie Barcott
Willie Barcott4:42 PM

@Willie Barcott has joined the channel

2017-11-19
2017-11-21
Dana Batali
Dana Batali6:59 PM

nice to see some traffic here! In prep for potentially two new subdirs, the challenge is to make sure travis is properly configured for those two new projects...

Declan Freeman-Gleason
Declan Freeman-Gleason8:18 PM

I think that configuration should be pretty much the same (I have a bit of experience with Travis, so it shouldn't be a problem). The only major consideration is that there could be some changes to the Powerup build process.

Dana Batali
Dana Batali8:59 PM

agreed - just a single yaml file irrc

2017-12-13
2018-01-10
2018-01-12
Dana Batali
Dana Batali12:37 PM

here's a script that could be placed in a "cron job" - to trigger behavior, like auto-track/build:

#!/bin/sh

UPSTREAM=${1:-'@{u}'}
LOCAL=$(git rev-parse @)
REMOTE=$(git rev-parse "$UPSTREAM")
BASE=$(git merge-base @ "$UPSTREAM")

if [ $LOCAL = $REMOTE ]; then
echo "Up-to-date"
elif [ $LOCAL = $BASE ]; then
echo "Need to pull"
elif [ $REMOTE = $BASE ]; then
echo "Need to push"
else
echo "Diverged"
fi


NB: a 'webhook' would be a notification-based solution, but requires an online webserver to receive a post (that we'd need to configure).

Why? since we now have a private repo, we can't use the free version of travis. I understand that @Declan Freeman-Gleason has a travis account that can build from it's own private repos (do I have this right?). One solution, then, is to create a (private) mirror repo on declan's account that is continuously updated whenever the spartronics repo is changed. (cron job does pull from spartronics, then push to declan, which triggers a build, which sends build results to this slackchan).

Declan Freeman-Gleason
Declan Freeman-Gleason3:17 PM

Travis actually has built in cron jobs for builds... I can get that working now.

2018-01-13
2018-01-14
2018-01-15
Justice James
Justice James10:27 AM

@Justice James has joined the channel

Ronan Bennett
Ronan Bennett1:05 PM

@Ronan Bennett has joined the channel

Mark Tarlton
Mark Tarlton4:46 PM

@Mark Tarlton has joined the channel

2018-01-16
2018-01-17
2018-01-18
2018-01-19
2018-01-20
Randy Groves
Randy Groves6:12 PM

So what's the skinny on classpath? At one point Declan put it into .gitignore. Just did a pull and my local classpath is modified. I'm going to ignore it for now.

Dana Batali
Dana Batali7:15 PM

The skinny is that eclipse modifies this file "on a whim" and, unless I'm missing something, it's likely that the mods came from your eclipse, not one of these changes. At first we hoped that .gitignoring it was a good idea. We found this made it difficult to start new eclipse. But the values that are checked in are good and helpful in starting a new eclipse project. What we want is to prevent future un-intended mods to this file. I regularly employ git checkout -- .classpath in my activities, fwiw.

2018-01-21
2018-01-24
2018-01-25
Declan Freeman-Gleason
Declan Freeman-Gleason3:34 PM

@Dana Batali I see that you're testing streaming webcam video from the Pi... I've been interested in using webRTC to stream video for our purposes, and I recently found a nice little tutorial/program targeted towards the Raspberry Pi that seems like what I'm looking for. I would test this myself, but only have a Pi 2 without a picam. It seems fairly straightforward (famous last words), so I'm going to post the link if you're interested in trying it out/have any feedback on it: https://www.linux-projects.org/uv4l/tutorials/custom-webapp-with-face-detection/ (You don't need to do the face detection part, of course).

Dana Batali
Dana Batali3:40 PM

did you look at the one I just checked in... Works fine, so I'm not sure we need to got to webRTC, since browsers don't understand that protocol without plugins... (correct me if I'm getting that wrong).

Dana Batali
Dana Batali3:46 PM

after a more thorough read of this, i believe its unique offering is a way to get your hands on the pixels before the browser does. I think our primary goal is to minimize latency, and the two primary sources of latency are video encoding on the raspi side and networking overhead. This doesn't seem to address either of those. It is really cool from a client-processing-images point of view!

Declan Freeman-Gleason
Declan Freeman-Gleason3:59 PM

I would argue that the unique offering of webRTC is that it provides an open and standard way to do real time communication, which is not necessarily what we need. We're optimizing for time of implementation and latency. On the other hand, there are a number of ways this could work better than an mjpeg stream for us (better support by browsers, easier to interact with through Javascript, compensation for noisy and lossy connections)... But none are really mission critical. At the end of the day, we should choose the first thing that works well enough (probably mjpeg). I just wanted to get this out there as a possibility :slightlysmilingface:

2018-01-26
2018-01-27
2018-01-28
2018-01-29
2018-01-30
Darwin Clark
Darwin Clark2:58 PM

@Dana Batali what are the changes in the newer version?

Dana Batali
Dana Batali2:59 PM

api changes, plus we should be on the same page with the robot

Darwin Clark
Darwin Clark3:02 PM

@Dana Batali Gracias. That's what I was looking for..

Dana Batali
Dana Batali3:02 PM

code as checked in isn't fully functional... I'm working on the kinks on a pi right now.

Dana Batali
Dana Batali3:03 PM

but next time you have access to the vision pi, please make sure it's up to 2018.0.1

Dana Batali
Dana Batali3:03 PM

via:

import networktables
networktables.version

Dana Batali
Dana Batali5:38 PM

@Darwin Clark: here's an initial sketch/test of robot code intended to point to the current vision target. Obviously we're not sending target data, and we will need to work out some kinks in both the protocol as well as the means to enter and exit the test tracking mode...

https://github.com/dbadb/2018-POWERUP/commit/226e55bc7080950b610547996c1cf7e4efd43af6

2018-01-31
2018-02-01
2018-02-02
Dana Batali
Dana Batali10:53 AM

@Darwin Clark: heads up, minimal subset of code migrated to solution subdir. Also: i'd like to do a review of the current code and algo with you. Need to disable print statements, ensure that it works without drawing results to screen, etc.

Dana Batali
Dana Batali11:00 AM

also: we need to be able to express "no target found".

Dana Batali
Dana Batali11:26 AM

perhaps that's as simple as setting ax and/or ay to -1000 (which is an invalid angle).

Dana Batali
Dana Batali11:27 AM

also: it might be worth sending this state to SmartDashboard as a vision subsystem message: `/SmartDashboard/Vision/State == "TargetAcquired"`

2018-02-03
2018-02-04
2018-02-05
2018-02-06
2018-02-07
2018-02-08
Dana Batali
Dana Batali2:09 PM

@Darwin Clark - here's the magic incantantion for streaming the results of an algo. Right now, I've wired in trivial hsvAlgo for proof of concept. Currently the defaultAlgo shows black in my home environment. I'll leave it to you to figure that out.

Darwin Clark
Darwin Clark2:28 PM

Thank you, thats all I need to have.

2018-02-09
Dana Batali
Dana Batali1:42 PM

@Darwin Clark: one observation about the current defaultAlgo: I see that you reject any box whose area is < 3000 (pixels)... Given that our acquired image is 320x240 and a 3000 pixel area would be a square 55pixels on a side, it's possible you can't see far because you can't see small. thoughts?

Darwin Clark
Darwin Clark1:52 PM

Definitely valid, that was in place for the lab stage of development, about a month ago. Now that we have reached a state of solid single-target acquisition, that number can be tuned down a lot.

Tarkan Al-Kazily
Tarkan Al-Kazily9:30 PM

@Tarkan Al-Kazily has joined the channel

2018-02-10
2018-02-11
2018-02-12
Dana Batali
Dana Batali9:18 AM

@Declan Freeman-Gleason - it appears that our travis auto builds are no longer available... Just in time :wink:

2018-02-13
2018-02-14
2018-02-15
2018-02-16
Ted Larson Freeman
Ted Larson Freeman8:30 PM

@Ted Larson Freeman has joined the channel

2018-02-17
2018-02-18
2018-02-19
2018-02-20
2018-02-21
2018-02-25
2018-02-26
2018-02-27
2018-02-28
2018-03-01
2018-03-02
2018-03-03
2018-03-07
2018-03-08
2018-03-09
2018-03-10
2018-03-13
2018-03-14
2018-03-15
Dana Batali
Dana Batali12:14 PM

@Darwin Clark: action items from today afaik:

1. need a fix to raspi code to ensure that after the robot connects (and sets the vision target to 0), that raspi causes the cube-not-found value to be sent.

2. need to figure out why it wasn't centering on the cube, seemed offset to one side.

3. get your changes to Robot code cleaned up and checked in.

Darwin Clark
Darwin Clark12:29 PM

For the first point: I added a temporary solution of setting the default target values to 100, but I want to look more in depth about why the target was not getting sent over. I'm convinced that there is a logic problem with the system that only pushes a new DX over the pipe, so I need to find a more concrete solution for that.

2018-03-16
Declan Freeman-Gleason
Declan Freeman-Gleason8:29 AM

@Darwin Clark Another action item: make the LEDs only turn on when vision is in use. Some judges are sensitive about having very bright lights on all the time.

2018-03-18
2018-03-20
2018-03-21
Dana Batali
Dana Batali8:52 AM

note that we haven't spent any time tuning the position-control values and that these are what turnToHeading depends upon...

Dana Batali
Dana Batali8:52 AM

(i noticed that we have a non-trivial settling time on the rotation, but it may be good enough )

2018-03-22
2018-03-23
Declan Freeman-Gleason
Declan Freeman-Gleason10:53 AM

@Dana Batali I actually have tuned the position control values.

Dana Batali
Dana Batali10:53 AM

:+1:

Dana Batali
Dana Batali10:54 AM

any progress on the high-level controller? did you agree that ffv should be 1?

Dana Batali
Dana Batali10:55 AM

also: any conclusions on the difference between robots 1 & 2?

Declan Freeman-Gleason
Declan Freeman-Gleason2:47 PM

The high level controller was still causing trouble. `P` cannot get to the setpoint without oscillations. My first attempt to deal with this was adding `ffv`. This didn't seem to generalize well, but I suspect that we might have better luck with this if we start with the `ffv` first. My second attempt was to get to the setpoint with `I` and `P`, and later `ffv` this also had trouble generalizing (probably because of the `ffv`, just `I` and `P` would work, but not get to the setpoint fast enough, and `I` would eventually wind up too much. My last attempt involved increasing `P` to get to the setpoint (but it oscillated), and then increasing `I` to level out the oscillation and some kV (which I think is actually like a `D`.) This worked ok, especially once I added an IZone analogue. This worked ok, but it still wasn't as smooth as I would like. I think that starting with a high `ffv` (like at 1) might be a better way to go in the future. I'm unsure what this will do on the first robot. When I used the values we had for the first robot on the second one it behaved in a similar way, but seemed to oscillate more.

Declan Freeman-Gleason
Declan Freeman-Gleason10:32 PM

@Dana Batali By changing the path that was causing problems, we were able to get the PID to play nice. We tested every path except driving to the far switch, and (on the practice field) they all worked! Hopefully this will carry into our matches on the real field. Ronan and I are going to try to get a two-cube autonomous working, or at least make it so the robot drives to a cube for the drivers to pick up.

Dana Batali
Dana Batali10:45 PM

Great news! Keep an eye on battery for negative correlation... Keep retrying switch auto between two-cube

2018-03-28
2018-03-29
Binnur Alkazily
Binnur Alkazily2:48 PM

> The autos seemed to work?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?

Binnur Alkazily
Binnur Alkazily2:48 PM

^^ you sure?? :smiley:

2018-04-02
2018-04-06
2018-04-07
2018-05-05
2018-05-12
GitHub
GitHub2:35 PM

@GitHub was added to this conversation

Declan Freeman-Gleason
Declan Freeman-Gleason2:42 PM

removed an integration from this channel: github

Declan Freeman-Gleason
Declan Freeman-Gleason2:44 PM

/github subscribe Spartronics4915/Atlas

Declan Freeman-Gleason
Declan Freeman-Gleason2:45 PM

We were using the legacy GitHub integration, so I updated to the newer one which is much nicer to use (no adding webhooks to repos, etc.)

GitHub
GitHub8:41 PM

GitHub
GitHub8:41 PM

GitHub
GitHub8:41 PM

GitHub
GitHub8:52 PM

GitHub
GitHub8:55 PM

GitHub
GitHub8:55 PM

2018-05-19
GitHub
GitHub10:51 AM

GitHub
GitHub11:12 AM

GitHub
GitHub11:44 AM

GitHub
GitHub12:09 PM

GitHub
GitHub12:09 PM

GitHub
GitHub12:29 PM

GitHub
GitHub2:23 PM

GitHub
GitHub2:23 PM

2018-05-20
GitHub
GitHub10:04 AM

GitHub
GitHub12:37 PM

GitHub
GitHub12:55 PM

GitHub
GitHub1:06 PM

GitHub
GitHub2:24 PM

GitHub
GitHub2:33 PM

GitHub
GitHub2:33 PM

GitHub
GitHub2:41 PM

GitHub
GitHub2:44 PM

GitHub
GitHub2:45 PM

GitHub
GitHub2:45 PM

GitHub
GitHub2:45 PM

2018-05-25
GitHub
GitHub7:45 PM

GitHub
GitHub7:47 PM

GitHub
GitHub7:47 PM

2018-05-26
GitHub
GitHub10:44 AM

GitHub
GitHub10:44 AM

GitHub
GitHub10:44 AM

GitHub
GitHub11:01 AM

GitHub
GitHub11:03 AM

GitHub
GitHub11:04 AM

GitHub
GitHub11:46 AM

GitHub
GitHub11:50 AM

GitHub
GitHub11:51 AM

GitHub
GitHub11:51 AM

GitHub
GitHub12:39 PM

GitHub
GitHub1:06 PM

GitHub
GitHub1:23 PM

GitHub
GitHub3:17 PM

GitHub
GitHub3:19 PM

GitHub
GitHub3:19 PM

GitHub
GitHub5:10 PM

GitHub
GitHub5:10 PM

GitHub
GitHub5:10 PM

GitHub
GitHub5:25 PM

GitHub
GitHub5:26 PM

GitHub
GitHub5:26 PM

GitHub
GitHub6:55 PM

GitHub
GitHub6:55 PM

GitHub
GitHub6:55 PM

2018-06-03
GitHub
GitHub11:16 AM

GitHub
GitHub11:16 AM

GitHub
GitHub11:23 AM

GitHub
GitHub11:31 AM

GitHub
GitHub11:31 AM

GitHub
GitHub11:31 AM

GitHub
GitHub11:31 AM

GitHub
GitHub1:13 PM

GitHub
GitHub1:20 PM

GitHub
GitHub1:20 PM

GitHub
GitHub1:21 PM

GitHub
GitHub1:21 PM

GitHub
GitHub1:21 PM

GitHub
GitHub2:18 PM

GitHub
GitHub6:48 PM

GitHub
GitHub6:49 PM

GitHub
GitHub6:49 PM

2018-06-09
GitHub
GitHub12:15 PM

GitHub
GitHub12:17 PM

GitHub
GitHub12:18 PM

GitHub
GitHub12:18 PM

GitHub
GitHub1:50 PM

GitHub
GitHub1:52 PM

GitHub
GitHub1:52 PM

GitHub
GitHub1:53 PM

2018-10-24
Camden Greenhalgh
Camden Greenhalgh7:17 PM

@Camden Greenhalgh has joined the channel

2018-11-10
GitHub
GitHub12:23 AM

2018-11-16
GitHub
GitHub8:47 PM

GitHub
GitHub8:47 PM

2018-11-28
GitHub
GitHub11:34 AM

2018-12-03
GitHub
GitHub3:25 PM

GitHub
GitHub3:25 PM

2018-12-14
GitHub
GitHub3:50 PM

2018-12-17
GitHub
GitHub9:40 AM

GitHub
GitHub10:26 AM

2018-12-21
GitHub
GitHub1:38 PM

GitHub
GitHub3:12 PM

Dana Batali
Dana Batali3:42 PM

/github subscribe list

GitHub
GitHub3:42 PM

GitHub
GitHub3:43 PM

Dana Batali
Dana Batali3:44 PM

/github subscribe list

GitHub
GitHub3:44 PM

2018-12-22
GitHub
GitHub1:13 PM

GitHub
GitHub6:16 PM

GitHub
GitHub6:24 PM

Declan Freeman-Gleason
Declan Freeman-Gleason6:24 PM

I accidentally pushed my changes to master, which merged the PR. I force pushed so I could do another PR. Whoops.

Darwin Clark
Darwin Clark6:36 PM

@Declan Freeman-Gleason Would there be a robotstatemap for vision, or is robotstatemap exclusively for odometry systems? (I'm not inplying vision ISN'T odometry :) )

Declan Freeman-Gleason
Declan Freeman-Gleason6:42 PM

Robot state map really just tracks the velocity and position of the robot over time.

Declan Freeman-Gleason
Declan Freeman-Gleason6:43 PM

So I think there would be something else to track vision targets. You should look at the 2017 254 code to see how they did it.

2018-12-26
GitHub
GitHub4:43 PM

GitHub
GitHub4:43 PM

Dana Batali
Dana Batali4:48 PM

most of this is @Declan Freeman-Gleason recent refactoring. I just did a code review and integrated.

2018-12-27
GitHub
GitHub11:00 AM

2018-12-28
GitHub
GitHub4:54 PM

GitHub
GitHub4:54 PM

2018-12-29
GitHub
GitHub12:49 PM

GitHub
GitHub3:56 PM

2018-12-30
GitHub
GitHub2:16 PM

Darwin Clark
Darwin Clark11:21 PM

/github subscribe list

GitHub
GitHub11:21 PM

GitHub
GitHub11:21 PM

Darwin Clark
Darwin Clark11:21 PM

/github subscribe list

GitHub
GitHub11:21 PM

GitHub
GitHub11:40 PM

2018-12-31
GitHub
GitHub9:56 AM

GitHub
GitHub9:56 AM

GitHub
GitHub10:02 AM

GitHub
GitHub12:21 PM

2019-01-01
GitHub
GitHub1:55 PM

2019-01-12
GitHub
GitHub12:50 PM

GitHub
GitHub1:12 PM

GitHub
GitHub1:12 PM

2019-01-13
GitHub
GitHub12:05 PM

GitHub
GitHub12:30 PM

2019-01-14
GitHub
GitHub12:12 PM

2019-01-16
Dana Batali
Dana Batali9:39 AM

/github subscribe Spartronics4915/2019-DeepSpace

GitHub
GitHub9:39 AM

Dana Batali
Dana Batali9:39 AM

/github subscribe list

GitHub
GitHub9:39 AM

2019-01-18
GitHub
GitHub3:28 PM

GitHub
GitHub5:01 PM

GitHub
GitHub5:37 PM

GitHub
GitHub6:06 PM

GitHub
GitHub7:42 PM

GitHub
GitHub7:56 PM

GitHub
GitHub7:58 PM

GitHub
GitHub8:07 PM

GitHub
GitHub8:08 PM

GitHub
GitHub8:27 PM

2019-01-20
GitHub
GitHub11:40 AM

GitHub
GitHub2:23 PM

GitHub
GitHub2:23 PM

GitHub
GitHub2:23 PM

Darwin Clark
Darwin Clark4:34 PM

/github subscribe Spartronics4915/DataProcessing

GitHub
GitHub4:34 PM

Darwin Clark
Darwin Clark4:34 PM

/github subscribe list

GitHub
GitHub4:34 PM

Darwin Clark
Darwin Clark4:36 PM

/github unsubscribe Spartronics4915/Atlas

GitHub
GitHub4:36 PM

Darwin Clark
Darwin Clark4:36 PM

/github unsubscribe Spartronics4915/Spartronics-254Base2018

GitHub
GitHub4:36 PM

Darwin Clark
Darwin Clark4:40 PM

/github subscribe list

GitHub
GitHub4:40 PM

GitHub
GitHub4:58 PM

GitHub
GitHub4:58 PM

GitHub
GitHub4:58 PM

GitHub
GitHub5:23 PM

2019-01-21
GitHub
GitHub9:16 PM

GitHub
GitHub9:16 PM

GitHub
GitHub9:16 PM

2019-01-22
GitHub
GitHub10:54 AM

GitHub
GitHub11:28 AM

GitHub
GitHub11:33 AM

GitHub
GitHub11:39 AM

GitHub
GitHub12:57 PM

GitHub
GitHub5:12 PM

2019-01-23
GitHub
GitHub10:09 AM

GitHub
GitHub3:43 PM

GitHub
GitHub4:18 PM

GitHub
GitHub4:52 PM

GitHub
GitHub5:35 PM

GitHub
GitHub6:00 PM

GitHub
GitHub6:09 PM

GitHub
GitHub6:09 PM

GitHub
GitHub6:24 PM

2019-01-24
GitHub
GitHub10:15 AM

GitHub
GitHub10:40 AM

GitHub
GitHub10:50 AM

GitHub
GitHub10:53 AM

GitHub
GitHub12:05 PM

GitHub
GitHub12:18 PM

GitHub
GitHub12:20 PM

GitHub
GitHub12:23 PM

GitHub
GitHub1:34 PM

2019-01-25
GitHub
GitHub12:57 PM

GitHub
GitHub4:06 PM

GitHub
GitHub4:09 PM

GitHub
GitHub4:38 PM

GitHub
GitHub5:35 PM

GitHub
GitHub5:35 PM

GitHub
GitHub7:30 PM

2019-01-26
GitHub
GitHub12:39 AM

GitHub
GitHub12:41 PM

GitHub
GitHub12:46 PM

GitHub
GitHub12:50 PM

Declan Freeman-Gleason
Declan Freeman-Gleason12:54 PM

@Darwin Clark I see you have framerate set to 60 in this commit… Have you tried increasing to 90fps?

Darwin Clark
Darwin Clark1:12 PM

@Declan Freeman-Gleason Played around with that a little bit. Rasising FPS seems to have no effect (in raspi.py). Probabbly limited by opencv functions (but CPU spinning at only 50% ???)

Declan Freeman-Gleason
Declan Freeman-Gleason1:13 PM

~
What about ~commenting out OpenCV processing?~ setting algo to empty? Throughput should jump to 90Hz if it’s the processing speed holding us back, right?

Declan Freeman-Gleason
Declan Freeman-Gleason1:13 PM

What’s our methodology for measuring update rate on the output of the pipeline?

GitHub
GitHub1:35 PM

GitHub
GitHub1:35 PM

GitHub
GitHub1:55 PM

Darwin Clark
Darwin Clark2:41 PM

@Declan Freeman-Gleason 90hz is correct when not running any opencv methods. In regard to update rate, It's not unreasonable to add a fps / copmputation time feature, but we don't posses a scientific way to measure that at this time. The generals premise is that we don't need anything more than 30 fps in deployment, as it would just be unnessiary and could actually be damaging if data sent over the pipe has a spike.

Declan Freeman-Gleason
Declan Freeman-Gleason2:52 PM

@Darwin Clark Just to be clear, I'm not referring to the update rate of the vision preview stream, but the update rate of `processFrame`. It seems to me that the throughput of that should be as close to 90hz as we can get. With that in mind, is there any reason not to set the default for `self.args.fps` to 90?

Declan Freeman-Gleason
Declan Freeman-Gleason2:53 PM

Also, have you been able to compare `--threads=4` to the default single-threaded mode?

Darwin Clark
Darwin Clark4:39 PM

@Declan Freeman-Gleason I may be unsure of what you're asking... I agree with your statement about processFrame, and beyond necessity, there's no reason to not set it to 90...

Declan Freeman-Gleason
Declan Freeman-Gleason5:13 PM

I was just wondering if you've noticed any difference between mutli-threaded and single-threaded mode... I suppose that it would be hard to tell because we're not measuring throughput. It seems like it might be good to set up some FPS measurement capabilities, just so we know if we need to improve performance or not.

2019-01-27
GitHub
GitHub10:19 AM

GitHub
GitHub12:13 PM

GitHub
GitHub12:13 PM

GitHub
GitHub1:50 PM

GitHub
GitHub5:17 PM

2019-01-28
GitHub
GitHub9:57 AM

GitHub
GitHub12:29 PM

GitHub
GitHub2:16 PM

GitHub
GitHub2:45 PM

GitHub
GitHub6:21 PM

2019-01-29
GitHub
GitHub1:37 PM

GitHub
GitHub2:49 PM

2019-01-30
GitHub
GitHub10:41 AM

GitHub
GitHub10:47 AM

GitHub
GitHub11:00 AM

GitHub
GitHub11:29 AM

GitHub
GitHub5:20 PM

GitHub
GitHub6:41 PM

GitHub
GitHub7:28 PM

GitHub
GitHub7:28 PM

2019-01-31
GitHub
GitHub8:39 AM

GitHub
GitHub12:23 PM

GitHub
GitHub12:28 PM

GitHub
GitHub2:00 PM

GitHub
GitHub4:49 PM

GitHub
GitHub5:26 PM

GitHub
GitHub7:29 PM

2019-02-01
GitHub
GitHub9:59 AM

GitHub
GitHub9:59 AM

GitHub
GitHub10:38 AM

GitHub
GitHub11:30 AM

GitHub
GitHub2:13 PM

GitHub
GitHub3:20 PM

GitHub
GitHub3:35 PM

GitHub
GitHub3:48 PM

GitHub
GitHub4:18 PM

GitHub
GitHub4:26 PM

GitHub
GitHub4:46 PM

GitHub
GitHub4:46 PM

GitHub
GitHub4:59 PM

GitHub
GitHub5:23 PM

GitHub
GitHub5:42 PM

GitHub
GitHub6:45 PM

GitHub
GitHub6:46 PM

GitHub
GitHub7:17 PM

GitHub
GitHub7:17 PM

GitHub
GitHub7:30 PM

2019-02-02
Lane Johnson
Lane Johnson8:44 AM

@Lane Johnson has joined the channel

GitHub
GitHub11:13 AM

GitHub
GitHub11:51 AM

GitHub
GitHub11:54 AM

GitHub
GitHub11:54 AM

GitHub
GitHub11:54 AM

GitHub
GitHub12:17 PM

GitHub
GitHub12:23 PM

GitHub
GitHub12:23 PM

GitHub
GitHub2:50 PM

GitHub
GitHub2:53 PM

GitHub
GitHub2:53 PM

GitHub
GitHub3:37 PM

GitHub
GitHub3:40 PM

GitHub
GitHub3:40 PM

GitHub
GitHub3:40 PM

GitHub
GitHub4:19 PM

GitHub
GitHub4:31 PM

GitHub
GitHub4:54 PM

GitHub
GitHub6:03 PM

2019-02-03
GitHub
GitHub3:17 PM

GitHub
GitHub4:03 PM

GitHub
GitHub4:03 PM

GitHub
GitHub4:03 PM

2019-02-04
GitHub
GitHub5:30 PM

GitHub
GitHub9:27 PM

GitHub
GitHub11:18 PM

2019-02-05
GitHub
GitHub12:41 PM

GitHub
GitHub12:44 PM

GitHub
GitHub1:25 PM

GitHub
GitHub3:54 PM

GitHub
GitHub4:50 PM

GitHub
GitHub5:02 PM

GitHub
GitHub5:07 PM

GitHub
GitHub11:26 PM

2019-02-06
GitHub
GitHub8:45 AM

GitHub
GitHub8:45 AM

GitHub
GitHub9:18 AM

GitHub
GitHub9:30 AM

GitHub
GitHub9:30 AM

GitHub
GitHub9:45 AM

GitHub
GitHub2:26 PM

GitHub
GitHub4:59 PM

GitHub
GitHub5:54 PM

GitHub
GitHub6:08 PM

GitHub
GitHub7:14 PM

GitHub
GitHub7:24 PM

GitHub
GitHub7:24 PM

GitHub
GitHub8:21 PM

GitHub
GitHub9:57 PM

GitHub
GitHub10:38 PM

2019-02-07
GitHub
GitHub2:14 PM

Lane Johnson
Lane Johnson4:01 PM

@Lane Johnson has left the channel

2019-02-08
GitHub
GitHub9:00 AM

GitHub
GitHub9:00 AM

GitHub
GitHub9:17 AM

GitHub
GitHub9:17 AM

GitHub
GitHub4:22 PM

GitHub
GitHub11:24 PM

2019-02-09
GitHub
GitHub1:44 PM

GitHub
GitHub2:26 PM

GitHub
GitHub2:55 PM

GitHub
GitHub4:58 PM

GitHub
GitHub5:13 PM

2019-02-10
GitHub
GitHub5:00 PM

GitHub
GitHub6:01 PM

GitHub
GitHub10:39 PM

GitHub
GitHub10:39 PM

GitHub
GitHub10:41 PM

Declan Freeman-Gleason
Declan Freeman-Gleason10:47 PM

@Justice James @Noah Solomon There’s a small issue with this code that was just merged. I see that the timer reset was added to the appropriate place on line 156 of Climber.java as I asked, but the resets were not removed from the other spots in the system state switch statement in `onLoop`. These should be removed because they are redundant.

GitHub
GitHub10:51 PM

GitHub
GitHub10:54 PM

2019-02-11
GitHub
GitHub10:59 AM

Justice James
Justice James11:40 AM

I think I got those in my 'Cleaned up code` commit

GitHub
GitHub2:01 PM

Jeffrey Tappen
Jeffrey Tappen2:09 PM

@Jeffrey Tappen has joined the channel

GitHub
GitHub3:42 PM

GitHub
GitHub3:47 PM

GitHub
GitHub3:53 PM

GitHub
GitHub11:24 PM

2019-02-12
GitHub
GitHub11:31 AM

GitHub
GitHub3:49 PM

GitHub
GitHub7:46 PM

2019-02-13
GitHub
GitHub9:35 AM

GitHub
GitHub1:12 PM

GitHub
GitHub1:25 PM

GitHub
GitHub1:55 PM

GitHub
GitHub2:15 PM

GitHub
GitHub4:53 PM

GitHub
GitHub6:25 PM

GitHub
GitHub6:34 PM

GitHub
GitHub8:06 PM

GitHub
GitHub8:13 PM

GitHub
GitHub8:25 PM

GitHub
GitHub8:50 PM

GitHub
GitHub9:03 PM

GitHub
GitHub9:04 PM

GitHub
GitHub9:13 PM

2019-02-14
GitHub
GitHub3:29 PM

GitHub
GitHub3:31 PM

GitHub
GitHub4:45 PM

GitHub
GitHub4:57 PM

GitHub
GitHub4:57 PM

GitHub
GitHub5:05 PM

GitHub
GitHub5:12 PM

GitHub
GitHub5:15 PM

GitHub
GitHub5:24 PM

GitHub
GitHub6:17 PM

GitHub
GitHub7:33 PM

GitHub
GitHub7:44 PM

GitHub
GitHub7:44 PM

GitHub
GitHub7:44 PM

GitHub
GitHub7:53 PM

GitHub
GitHub7:53 PM

GitHub
GitHub7:57 PM

GitHub
GitHub7:59 PM

GitHub
GitHub8:07 PM

GitHub
GitHub8:22 PM

2019-02-15
GitHub
GitHub9:38 AM

GitHub
GitHub9:39 AM

GitHub
GitHub9:45 AM

GitHub
GitHub10:11 AM

GitHub
GitHub1:56 PM

GitHub
GitHub2:01 PM

GitHub
GitHub2:09 PM

GitHub
GitHub2:19 PM

Noah Solomon
Noah Solomon3:28 PM

@Noah Solomon has joined the channel

GitHub
GitHub3:34 PM

GitHub
GitHub3:43 PM

GitHub
GitHub4:06 PM

GitHub
GitHub4:06 PM

GitHub
GitHub4:07 PM

GitHub
GitHub4:07 PM

GitHub
GitHub4:16 PM

GitHub
GitHub5:35 PM

GitHub
GitHub6:31 PM

GitHub
GitHub7:30 PM

GitHub
GitHub7:44 PM

GitHub
GitHub7:44 PM

GitHub
GitHub9:30 PM

GitHub
GitHub10:36 PM

GitHub
GitHub10:36 PM

GitHub
GitHub10:52 PM

GitHub
GitHub11:06 PM

GitHub
GitHub11:07 PM

GitHub
GitHub11:08 PM

2019-02-16
GitHub
GitHub10:48 AM

GitHub
GitHub11:10 AM

GitHub
GitHub11:17 AM

GitHub
GitHub11:19 AM

GitHub
GitHub11:32 AM

GitHub
GitHub11:37 AM

GitHub
GitHub11:45 AM

GitHub
GitHub12:24 PM

GitHub
GitHub12:25 PM

GitHub
GitHub12:29 PM

GitHub
GitHub12:38 PM

GitHub
GitHub1:28 PM

GitHub
GitHub1:42 PM

GitHub
GitHub1:57 PM

GitHub
GitHub8:31 PM

GitHub
GitHub8:35 PM

GitHub
GitHub11:33 PM

2019-02-17
GitHub
GitHub12:23 AM

GitHub
GitHub9:11 AM

GitHub
GitHub10:21 AM

GitHub
GitHub10:22 AM

GitHub
GitHub10:22 AM

GitHub
GitHub10:42 AM

GitHub
GitHub10:43 AM

GitHub
GitHub11:19 AM

GitHub
GitHub11:23 AM

GitHub
GitHub11:23 AM

GitHub
GitHub11:29 AM

GitHub
GitHub12:09 PM

GitHub
GitHub12:34 PM

GitHub
GitHub12:45 PM

GitHub
GitHub1:22 PM

GitHub
GitHub1:57 PM

GitHub
GitHub2:22 PM

GitHub
GitHub2:56 PM

GitHub
GitHub3:48 PM

GitHub
GitHub4:22 PM

GitHub
GitHub4:29 PM

GitHub
GitHub4:29 PM

GitHub
GitHub4:30 PM

GitHub
GitHub4:30 PM

GitHub
GitHub5:30 PM

GitHub
GitHub6:04 PM

GitHub
GitHub6:34 PM

GitHub
GitHub7:25 PM

GitHub
GitHub8:41 PM

GitHub
GitHub8:41 PM

GitHub
GitHub8:41 PM

GitHub
GitHub8:41 PM

GitHub
GitHub8:41 PM

GitHub
GitHub8:41 PM

GitHub
GitHub8:51 PM

GitHub
GitHub8:51 PM

GitHub
GitHub10:20 PM

GitHub
GitHub10:20 PM

GitHub
GitHub11:09 PM

2019-02-18
GitHub
GitHub9:15 AM

GitHub
GitHub11:50 AM

GitHub
GitHub11:53 AM

GitHub
GitHub11:57 AM

GitHub
GitHub12:13 PM

Dana Batali
Dana Batali12:13 PM

@Declan Freeman-Gleason (fyi)

Dana Batali
Dana Batali12:14 PM

@Darwin Clark: this goes with the Vision changes above

GitHub
GitHub12:20 PM

GitHub
GitHub1:19 PM

GitHub
GitHub1:27 PM

GitHub
GitHub1:30 PM

GitHub
GitHub1:30 PM

GitHub
GitHub1:44 PM

GitHub
GitHub2:14 PM

GitHub
GitHub2:15 PM

GitHub
GitHub2:19 PM

GitHub
GitHub2:26 PM

GitHub
GitHub2:34 PM

GitHub
GitHub2:45 PM

GitHub
GitHub2:48 PM

GitHub
GitHub3:08 PM

GitHub
GitHub4:58 PM

GitHub
GitHub5:13 PM

GitHub
GitHub5:58 PM

GitHub
GitHub5:59 PM

GitHub
GitHub6:01 PM

GitHub
GitHub6:12 PM

GitHub
GitHub7:52 PM

GitHub
GitHub10:34 PM

2019-02-19
GitHub
GitHub10:21 AM

Dana Batali
Dana Batali10:24 AM

@Declan Freeman-Gleason: if you have the time, please review. Goal is just to spend less time in each loop on telemetry.

GitHub
GitHub11:27 AM

Declan Freeman-Gleason
Declan Freeman-Gleason11:38 AM

Looks good. We should test both with round-robin and no `outputTelemetry` at all to see if either make a difference.

Declan Freeman-Gleason
Declan Freeman-Gleason11:45 AM

As another data point, I saw some people say that excessive NetworkTables use was causing overruns. A WPILib maintainer said it can definitely happen “if NT’s updateValues() call stalls”. He linked to this as what runs under the watchdog: https://github.com/wpilibsuite/allwpilib/blob/master/wpilibj/src/main/java/edu/wpi/first/wpilibj/IterativeRobotBase.java#L197-L260

Curiously, `SmartDashboard.updateValues()` is outside the watchdog.

GitHub
GitHub12:18 PM

GitHub
GitHub1:51 PM

GitHub
GitHub2:01 PM

GitHub
GitHub2:53 PM

GitHub
GitHub2:53 PM

GitHub
GitHub3:00 PM

GitHub
GitHub3:15 PM

GitHub
GitHub3:15 PM

GitHub
GitHub3:34 PM

GitHub
GitHub4:52 PM

GitHub
GitHub8:25 PM

2019-02-20
GitHub
GitHub9:40 AM

GitHub
GitHub10:49 AM

GitHub
GitHub12:57 PM

GitHub
GitHub3:10 PM

GitHub
GitHub4:46 PM

2019-02-21
GitHub
GitHub10:28 AM

GitHub
GitHub11:40 AM

GitHub
GitHub12:26 PM

GitHub
GitHub12:33 PM

GitHub
GitHub2:45 PM

GitHub
GitHub5:32 PM

2019-02-22
GitHub
GitHub7:04 PM

2019-02-23
GitHub
GitHub4:47 PM

2019-02-24
GitHub
GitHub1:04 AM

GitHub
GitHub11:53 AM

GitHub
GitHub12:18 PM

GitHub
GitHub3:30 PM

Dana Batali
Dana Batali3:31 PM

@Declan Freeman-Gleason @Jeffrey Tappen: check this out after syncing this change and starting dashboard.

http://localhost:5080/?demo=1#tab2

GitHub
GitHub3:39 PM

Dana Batali
Dana Batali3:41 PM

btw: hopefully our autos won't run into game elements the way this one does :wink:

Declan Freeman-Gleason
Declan Freeman-Gleason10:40 PM

Very cool! It slows down the other graphs on Firefox, but Chrome seems fine (on my laptop), although it is still a little jerky... I wanted to do this during break, but I didn't have enough time, so I'm happy it happened.

Maybe we should have someone extend it to display the position of vision targets from solvePNP.

2019-02-25
GitHub
GitHub10:06 AM

GitHub
GitHub3:36 PM

GitHub
GitHub3:51 PM

GitHub
GitHub4:13 PM

GitHub
GitHub4:13 PM

GitHub
GitHub5:47 PM

2019-02-27
GitHub
GitHub1:04 PM

GitHub
GitHub1:14 PM

GitHub
GitHub6:11 PM

GitHub
GitHub7:24 PM

GitHub
GitHub8:05 PM

GitHub
GitHub8:27 PM

2019-02-28
GitHub
GitHub9:07 AM

Dana Batali
Dana Batali9:15 AM

@Darwin Clark can you verify that --debug works? For runPiCam, recall that all output is sent to a file. If you want to see the file 'spew', try this bash trick `tail -f yourfile`

Darwin Clark
Darwin Clark10:34 AM

@Dana Batali Alright, sounds good. Later today I'm going to check-in cleaner logging practices in runPiCam.py.

GitHub
GitHub11:15 AM

2019-03-02
GitHub
GitHub8:33 AM

Dana Batali
Dana Batali8:35 AM

@Darwin Clark - i did the plumbing for this but leave it to you to do the central computations: I assumed in this checkin that you'd write the method `rectUtil.computeTargetOffsetAndHeightErrors` since you're the man of all rectangles!

2019-03-03
GitHub
GitHub9:41 AM

GitHub
GitHub10:35 AM

GitHub
GitHub10:35 AM

GitHub
GitHub10:35 AM

GitHub
GitHub11:02 AM

GitHub
GitHub11:52 AM

GitHub
GitHub3:28 PM

GitHub
GitHub5:32 PM

GitHub
GitHub10:35 PM

2019-03-04
GitHub
GitHub9:06 AM

GitHub
GitHub11:54 AM

GitHub
GitHub2:02 PM

GitHub
GitHub2:12 PM

GitHub
GitHub2:13 PM

GitHub
GitHub5:47 PM

2019-03-05
GitHub
GitHub9:50 AM

GitHub
GitHub11:12 AM

Dana Batali
Dana Batali11:17 AM

@Darwin Clark @Martin Vroom @Chris Mentzer: you may want to print this out and have it on hand in case of emergencies. Also: who is responsible for backup microsd cards?

https://github.com/Spartronics4915/Vision/blob/master/2019/CompetitionChecklist.md

Martin Vroom
Martin Vroom11:17 AM

@Martin Vroom has joined the channel

Chris Mentzer
Chris Mentzer11:17 AM

@Chris Mentzer has joined the channel

GitHub
GitHub11:18 AM

GitHub
GitHub11:36 AM

GitHub
GitHub11:47 AM

GitHub
GitHub12:01 PM

GitHub
GitHub12:02 PM

GitHub
GitHub12:23 PM

GitHub
GitHub12:50 PM

GitHub
GitHub12:55 PM

GitHub
GitHub2:16 PM

GitHub
GitHub2:27 PM

GitHub
GitHub3:31 PM

GitHub
GitHub9:38 PM

GitHub
GitHub9:40 PM

GitHub
GitHub9:40 PM

GitHub
GitHub9:51 PM

2019-03-06
GitHub
GitHub11:11 AM

Dana Batali
Dana Batali11:14 AM

@Darwin Clark: since i don't have a LED rig at home, I've been struggling to get the algorithm to produce results in order to debug realPNP. I've devised a scheme to support multiple configurations and i'm now starting to get to the meat of things. I did feel the need to clean up your recently cleaned-up logging. I hope you'll agree the result is a little simpler and we only really need a single logging stream (to keep things efficient and easy to follow). I noted the magic "tail" command when you want to debug via spew.

Dana Batali
Dana Batali11:15 AM

basic idea of the config:

config.py is a file with some python "dicts". This is where tweaking of a parameters should belong and it allows us to support a variety of test configs without muddying up the code with comments and old values.

GitHub
GitHub11:42 AM

Dana Batali
Dana Batali11:43 AM

in theory, this shouldn't get in your way modulo any integration headaches it causes. That said: we shouldn't expend precious pre-first-match robot-time on a difficult integration. And we should verify that the previous behavior hasn't been botched

GitHub
GitHub12:20 PM

Dana Batali
Dana Batali12:30 PM

@Darwin Clark: a slightly disconcerting realization: when you run inRange via the maskAlgo, we convert to hsv first, so the range values are h,s and v. But elsewhere, like realPNP you don't appear to do the conversion, so the range values are probably being interpretted as b,g,r... Is this intended?

GitHub
GitHub12:31 PM

Darwin Clark
Darwin Clark12:34 PM

@Dana Batali The method rectutil.findRects() does the inRange calculation. My logic behind doing it the way I did was based around what each inRange is trying to accomplish. For maskAlgo, the objective is to only show the range values, not to find any rectangles, where as in other algos, it is fairly common to run an inRange to find all the rectangles in the frame, so I moved that repetitive section of code into rectUtil.

Dana Batali
Dana Batali12:40 PM

so rectDebugAlgo has a bug then

Dana Batali
Dana Batali12:41 PM

actually just a redundant mask calc i guess

GitHub
GitHub1:38 PM

GitHub
GitHub2:28 PM

GitHub
GitHub3:13 PM

GitHub
GitHub4:27 PM

GitHub
GitHub4:27 PM

GitHub
GitHub4:34 PM

GitHub
GitHub4:50 PM

GitHub
GitHub5:02 PM

GitHub
GitHub6:01 PM

GitHub
GitHub6:11 PM

GitHub
GitHub6:27 PM

GitHub
GitHub6:46 PM

GitHub
GitHub6:46 PM

GitHub
GitHub7:30 PM

Martin Vroom
Martin Vroom7:43 PM

If I can get one of the PI MicroSD cards that are configured correctly, I'd like to make an updated image. However, when I tried this previously, my computer claimed I needed to format the drive, which I was not about to do.

2019-03-07
GitHub
GitHub8:25 AM

GitHub
GitHub8:25 AM

GitHub
GitHub9:29 AM

GitHub
GitHub9:51 AM

GitHub
GitHub2:34 PM

Dana Batali
Dana Batali2:37 PM

@Ronan Bennett: i roughed in a pressure gauge atop the field in the driver page of the dashboard. It's currently looking for a nettab entry: Robot/Pressure and currently assumes that valid values are 0-120, with good values starting around 95. The definition of good, here, is the color gradient which is defined in the layouts file. It will probably require a little tweaking to make it a "perfect" the driver experience. Let me know if you have questions or concerns. Martin has had some experience in Dashboard tech so will likely be able to assist if you require any changes.

GitHub
GitHub2:50 PM

2019-03-08
GitHub
GitHub9:44 AM

Dana Batali
Dana Batali9:49 AM

@Darwin Clark, @Declan Freeman-Gleason - this new variant has the angle corrected, the value for theta has been "fixed", Theta = 0 means robot is perpendicular. The sense of positive vs negative is "negotiable", and can be fixed either in robot code or vision code (see line 294 of poseEstimation.py)

Dana Batali
Dana Batali9:50 AM

(btw: the new diagnostic images display vectors of 1 foot length)

Dana Batali
Dana Batali9:51 AM

also: I would currently recommend that you use "couch" as the camera model assuming that we're not employing rotation to address camera-mounting issues. @Darwin Clark - i don't think you checked in your latest configs. Didn't they "unrotate" the camera for us?

Darwin Clark
Darwin Clark9:53 AM

@Dana Batali Yeah, they did. The only change was in the config file on the line which defines "rotation", set that to 0. Sounds good!

Dana Batali
Dana Batali10:15 AM

i think this means that in your config you're still using the camMat with the 1.3 multiplies in it. I don't think we want those, which is why setting cam to "couch" is recommended. I did add another called "theory" and the default is still your 1.3multiplied one

GitHub
GitHub10:47 AM

2019-03-09
GitHub
GitHub8:57 AM

GitHub
GitHub10:22 AM

GitHub
GitHub2:03 PM

2019-03-10
GitHub
GitHub10:20 AM

GitHub
GitHub10:37 AM

GitHub
GitHub12:22 PM

2019-03-11
GitHub
GitHub12:17 PM

2019-03-12
GitHub
GitHub10:52 AM

GitHub
GitHub10:53 AM

Dana Batali
Dana Batali10:54 AM

@Declan Freeman-Gleason @Ronan Bennett: heads up gradleRIO 4.1

also: a new method (and Tests!) for trivial on-the-fly path generation. I'll leave it to @Declan Freeman-Gleason to decide whether to employ it and where. The test shows usage.

Dana Batali
Dana Batali11:03 AM

actually - the new code kicks in if you ever pass a waypoint array of length 2

GitHub
GitHub2:59 PM

GitHub
GitHub3:47 PM

2019-03-13
Declan Freeman-Gleason
Declan Freeman-Gleason9:29 AM

This works and is probably a reasonable change, but it only really makes sense for straight paths... If you try to use an S-curve I'm pretty sure you won't get the path you're looking for.

Dana Batali
Dana Batali10:58 AM

Agreed... You could do a line, an arc but not an s... And it won't crash

Dana Batali
Dana Batali11:32 AM

And so if you are using 2 waypoints to request an s curve, we'll need to modify the logic slightly. Some examples: distance < 15 inches (couldn't do an s-curve in that distance probably), start & end heading within a tolerance (ie: straight), or just another parameter.

2019-03-14
GitHub
GitHub6:10 PM

GitHub
GitHub6:19 PM

GitHub
GitHub8:31 PM

2019-03-15
GitHub
GitHub12:46 PM

GitHub
GitHub12:54 PM

GitHub
GitHub12:59 PM

GitHub
GitHub1:07 PM

GitHub
GitHub3:44 PM

2019-03-16
GitHub
GitHub2:25 PM

GitHub
GitHub3:26 PM

GitHub
GitHub3:49 PM

2019-03-17
GitHub
GitHub10:28 AM

GitHub
GitHub10:58 AM

GitHub
GitHub4:50 PM

GitHub
GitHub6:21 PM

GitHub
GitHub6:24 PM

GitHub
GitHub6:27 PM

GitHub
GitHub6:47 PM

2019-03-18
GitHub
GitHub10:09 AM

GitHub
GitHub12:40 PM

GitHub
GitHub12:48 PM

GitHub
GitHub1:14 PM

GitHub
GitHub2:47 PM

GitHub
GitHub3:26 PM

GitHub
GitHub4:28 PM

GitHub
GitHub5:14 PM

2019-03-19
GitHub
GitHub9:13 AM

GitHub
GitHub9:15 AM

Dana Batali
Dana Batali9:19 AM

@Declan Freeman-Gleason @Darwin Clark: here's a control (`lazycleanup`) over whether we keep multiple streams open simultaneously (`lazycleanup:true`). I've played with `lazycleanup:false` and it appears to work fine with a few caveats:

1. when you go from front to back, front will not be available for 5 seconds (due to the respawn behavior of the frc supervisor). I manually edited runCamera and set it to 2sec and was able to switch more quickly without troubles. When you do run into troubles, the video will be frozen and this message would appear in the browser debug console:`h264player.js:4428 WebSocket connection to '' failed: Error in connection establishment: net::ERRCONNECTIONREFUSED`. The behavior isn't terrible insofar as the workaround is to "hold" on a valid stream for 2-5sec before switching to the desired stream.
2. i've checked in a change to the layouts file that makes this the default on the grounds that the dual camera feed we looked at at the end of yesterday's meeting, looked more chunky and more stuttery. The untested hypothesis here is that this will result in fewer dropped frames.

Comments, concerns, questions?

GitHub
GitHub10:10 AM

GitHub
GitHub1:06 PM

Declan Freeman-Gleason
Declan Freeman-Gleason1:36 PM

What is the delay between camera switches?

Dana Batali
Dana Batali2:01 PM

going from front to back, back appears in under 1 sec (unscientifically). The issue addressed by the "lazycleanup" was going back from back to front (immediately after front appears).

Dana Batali
Dana Batali2:01 PM

(but this is definitely something to experiment with and be sensitive to)

GitHub
GitHub2:57 PM

GitHub
GitHub9:51 PM

GitHub
GitHub9:51 PM

GitHub
GitHub9:51 PM

GitHub
GitHub11:15 PM

2019-03-20
GitHub
GitHub10:02 AM

GitHub
GitHub10:04 AM

GitHub
GitHub10:25 AM

GitHub
GitHub11:13 AM

GitHub
GitHub11:25 AM

Dana Batali
Dana Batali11:33 AM

@Darwin Clark @Declan Freeman-Gleason: update on camera calibration:

1. my two cameras are quite different
2. the values i obtained for dbcam8 were "pretty accurate" with the camera matrix checked in to poseEstimation.py
3. the values i checked in for dbcam7 are less accurate (8in off at 100in distance)
4. i tried the dbcam8 values on dbcam7 and got better results, so it may be a good idea to try this matrix on the robot1 vision cam.

So... camera calibration is important and that we may need to have a different matrix for each camera. I'm not sure if we'll have enough time to do any of this with all the other stuff going on. Likely true that driver-cam validation is more important. And making sure all the electronics are stable more important still. If most of tonight's time in centered on robot-stabilization, it's possible we'll just be twiddling our fingers. Any sense of this? Let me know if you can.

GitHub
GitHub11:37 AM

Dana Batali
Dana Batali12:52 PM

@Darwin Clark: hey! it's my sense that if you flip vertically that you must also flip horizontally . Are you sure only the -vf is what we want?

Darwin Clark
Darwin Clark12:56 PM

@Dana Batali That occurred to me too...You probably also want flip, I chose not to wire it in untill I can confirm.

GitHub
GitHub1:09 PM

Dana Batali
Dana Batali1:10 PM

i just confirmed (and added a variable so I can run the same layout without the flip)

Declan Freeman-Gleason
Declan Freeman-Gleason1:12 PM

Could you bring the camera you know to be good today (dbcam8)? I think that while I might be working on robot stabilization you and Darwin could be working on getting good values. If we only have one camera that works then we might as well just use that (I don't think we have time right now to get a good matrix characterization scheme working before competition, but we might as use the one that works).

Dana Batali
Dana Batali1:15 PM

one more point on this thread:

if we only run a single drivercam (ie: lazycleanup: false), we can afford a bigger bitrate (and thus better image quality)

GitHub
GitHub1:56 PM

GitHub
GitHub1:59 PM

GitHub
GitHub2:08 PM

GitHub
GitHub2:09 PM

GitHub
GitHub4:56 PM

GitHub
GitHub7:41 PM

2019-03-21
GitHub
GitHub10:03 AM

Dana Batali
Dana Batali10:08 AM

@Darwin Clark: heads up lazycleanup renamed to multistream

GitHub
GitHub10:24 AM

GitHub
GitHub11:43 AM

GitHub
GitHub3:58 PM

2019-03-22
GitHub
GitHub3:09 PM

GitHub
GitHub4:47 PM

Dana Batali
Dana Batali4:49 PM

@Declan Freeman-Gleason: probably not worth your time during the match weekend. The new code is entirely related to paths and you can now both visualize and edit/design more paths (via texteditor of paths.js)

Dana Batali
Dana Batali4:50 PM

shouldn't cause any problems if it's synced but those are famous last words, so don't let the driverstation folks sync this without your approval. (cc-ing @Darwin Clark @Ronan Bennett)

GitHub
GitHub6:56 PM

GitHub
GitHub10:14 PM

GitHub
GitHub11:39 PM

Darwin Clark
Darwin Clark11:43 PM

@Dana Batali (cc @Declan Freeman-Gleason) Today Declan and I decided it would be a worthwhile use of time to get some image data from the robot #1 vision camera, and this is the result of running the calibration script. Few notes:
- The new profile is called GPCalib, and is recorded under calibration.md and poseEstimation.py
- The camera matrix for GPCalib seemed reasonable and didn't set off any red flags, however a few of the corelation coeficants had their signs flipped compared to the (current alleged) high-quality calibrations.
- I've commited all the images used for data as reference (to help with remote debugging this weekend) however in the future we'll remove them from the git repo.

When gathering reference data, our objective was to simply gather the largest variation of angles and distances we could in the pit, is this similar to what you did? If we were to re-gather data would you recommend a different strategy? What mentality produced dbcam8 calibration?

2019-03-23
Dana Batali
Dana Batali8:01 AM

Great that you're finding time to gather the data!

Questions/comments:
1. the .gitignore currently prevents the checking in of images below the calibrate dir (to prevent accidents). If you do want to check in your images, you'll need to modify .gitignore or place them in a nearby directory.
2. the sign of the distortion coefficients are fine if negative, the fact that they are small numbers is a good sign. Did the "corrected images" look good? It probably goes without saying, but it's very important that your checkerboard be a rigid flat plane with no wrinkles, etc.
3. the idea of gathering the large variety of angles seems like the right idea. I think i was trying to get angles in which the checkerboard mostly filled the screen and included "scraping" views where the perspective effect (size variation with distance) was evident.
4. another sign of "goodness" is that if you collect different sets of images, how different does the matrix appear? Also: i see you didn't include the RMS number into calibrate.md (RMS is a goodness of fit measure, smaller is better). https://en.wikipedia.org/wiki/Rootmeansquare

But the big question: did it work with PNP to produce accurate measurements?

Dana Batali
Dana Batali10:10 AM

@Darwin Clark: just saw the test match. Promising! Is the camera feed working?

Declan Freeman-Gleason
Declan Freeman-Gleason10:14 AM

No

Declan Freeman-Gleason
Declan Freeman-Gleason10:15 AM

Here’s the error:

Declan Freeman-Gleason
Declan Freeman-Gleason10:16 AM

I wasn’t able to SSH in and see if another process was running.

Dana Batali
Dana Batali10:17 AM

looks like another process was listening on port 8080...

Declan Freeman-Gleason
Declan Freeman-Gleason10:18 AM

I don’t know why that would be. Maybe we should try listening on a more specific IP or the IPv4 analogue of :::: like 0.0.0.0

Declan Freeman-Gleason
Declan Freeman-Gleason10:38 AM

@Dana Batali We’re going to upload a script that prints out netstat -lntu, pstree, systemctl status ssh… Any command requests?

GitHub
GitHub11:07 AM

Dana Batali
Dana Batali11:08 AM

i just checked in changes to appRaspi.js with more diagnostics. And a force to listen only on the IPv4 interface.

The key command is: netstat -anp | grep 8080

Dana Batali
Dana Batali11:09 AM

if someone is listening on 8080 we can also just point the browser at it

Dana Batali
Dana Batali11:11 AM

we can also install our service on another port:

1. edit appRaspi.js
2. modify cam specs in layout file

Dana Batali
Dana Batali11:34 AM

before the first match i saw some furious typing... Any new data?

Dana Batali
Dana Batali12:07 PM

fwiw: i just checked in some more diagnostic changes

Dana Batali
Dana Batali12:19 PM

great second match! (auto looks good until the backoff, why the twist?)

GitHub
GitHub12:19 PM

Declan Freeman-Gleason
Declan Freeman-Gleason12:20 PM

That was the driver controlling things

Declan Freeman-Gleason
Declan Freeman-Gleason12:20 PM

I set it up to not shoot the cargo and wait for the driver

Dana Batali
Dana Batali12:23 PM

seems like it could shoot (any more on the video?)

Declan Freeman-Gleason
Declan Freeman-Gleason12:29 PM

Looks like the process is already running

Declan Freeman-Gleason
Declan Freeman-Gleason12:34 PM

We threw a `pkill node` into uploaded.py

Dana Batali
Dana Batali12:36 PM

sigh.. the node process appears to have become "detached". And the result is that uploaded.py is repeatedly respawning. Given that the process is running I don't understand why we can't see a camera feed?

Dana Batali
Dana Batali12:36 PM

can you post the contents of uploaded.py?

Dana Batali
Dana Batali12:41 PM

here's what i expect to see:

`runCamera`

#!/bin/sh
echo "Waiting 2 seconds..."
sleep 2
exec ./startH264player.sh


`./startH264Player.sh`

#!/bin/sh
cd /home/pi/spartronics/Vision/h264player
node appRaspi.js

Dana Batali
Dana Batali12:43 PM

(the exec is important, i think)

Dana Batali
Dana Batali12:47 PM

before the connection attempt we should see:

├─svscanboot─┬─readproctitle
│ └─svscan─┬─supervise───startH264player───node───6[{node}]
│ ├─supervise───netconsoleTee
│ └─supervise───configServer───8
[{configServer}]
├─syslogd

Dana Batali
Dana Batali12:50 PM

after the connection is established it should look like this:


├─svscanboot─┬─readproctitle
│ └─svscan─┬─supervise───startH264player───node─┬─raspivid─┬─{HCEC Notify}
│ │ │ ├─{HDispmanx Notif}
│ │ │ ├─{HTV Notify}
│ │ │ ├─{VCHIQ completio}
│ │ │ ├─{vc.ril.camera}
│ │ │ ├─{vc.ril.videoen}
│ │ │ └─{vc.ril.video
re}
│ │ └─6[{node}]
│ ├─supervise───netconsoleTee
│ └─supervise───configServer───8
[{configServer}]

Dana Batali
Dana Batali12:50 PM

here's what `netstat -anp | grep 8080` looks like with an active websocket:

tcp 0 0 192.168.0.7:8080 0.0.0.0:* LISTEN 21917/node
tcp 0 0 192.168.0.7:8080 192.168.0.4:62137 ESTABLISHED 21917/node

Declan Freeman-Gleason
Declan Freeman-Gleason12:53 PM

Dana Batali
Dana Batali12:57 PM

`exec node appRaspi.js`

why can't we just be using the official/tested versions of these scripts?

Declan Freeman-Gleason
Declan Freeman-Gleason1:01 PM

That makes sense. I thought we had started from a vanilla image when we added the debug info. Anything else to do other than reverting that file to the original?

Dana Batali
Dana Batali1:03 PM

just tried this:

#!/bin/sh
echo "Waiting 2 seconds..."
sleep 2
#exec ./startH264player.sh
#export PYTHONUNBUFFERED=1
#exec ./startSleeper.py
cd /home/pi/spartronics/Vision/h264player
node appRaspi.js


and got this

├─svscanboot─┬─readproctitle
│ └─svscan─┬─supervise───runCamera───node─┬─raspivid─┬─{HCEC Notify}
│ │ │ ├─{HDispmanx Notif+
│ │ │ ├─{HTV Notify}
│ │ │ ├─{VCHIQ completio+
│ │ │ ├─{vc.ril.camera}
│ │ │ ├─{vc.ril.videoen+
│ │ │ └─{vc.ril.video
re+
│ │ └─6[{node}]
│ ├─supervise───netconsoleTee
│ └─supervise───configServer───8
[{configServer}]


Which means that my "exec" theory isn't "it".

Dana Batali
Dana Batali1:05 PM

btw: i'm currently running the version of appRaspi.js that i checked in an hour ago. It ensures that we're using tcp, not tcp6.

Dana Batali
Dana Batali1:07 PM

on the driverstation:

$ netstat -an | grep 8080
TCP 192.168.0.4:63546 192.168.0.7:8080 ESTABLISHED


on the raspi:

$ netstat -an | grep 8080
tcp 0 0 192.168.0.7:8080 0.0.0.0:* LISTEN
tcp 0 915 192.168.0.7:8080 192.168.0.4:63546 ESTABLISHED

Dana Batali
Dana Batali1:11 PM

note that each time you upload a script, frcvision rewrites the runCamera script. I tend to favor ssh + vi.

Dana Batali
Dana Batali1:17 PM

it occurs to me that given the fact that you saw a raspivid process in an earlier pstree, that things were actually working. Are you aware of the fact that the browser window receiving the pixels must be visible when the connection is made? Workaround is to "refresh from that window" (i wrote this up in the Vision/Checklist and went over this with Darwyn).

Declan Freeman-Gleason
Declan Freeman-Gleason1:29 PM

We need to deploy the version that only uses regular (non IPv6) TCP. We will make sure the window is refreshed.

By the way, the image I just uploaded was of `uploaded.py`, not the wpilib script that starts `uploaded.py`.

Dana Batali
Dana Batali1:30 PM

runCamera is key: if you upload a python script that is really a bash script, it's possible it's trying to invoke python on it!

Declan Freeman-Gleason
Declan Freeman-Gleason1:31 PM

Yes, we fixed run camera so that it doesn’t run python on it.

Dana Batali
Dana Batali1:32 PM

good, and each time you press upload in the frcvision app it rewrites runCamera. so best not to do that

Declan Freeman-Gleason
Declan Freeman-Gleason1:32 PM

Ok, we’ll use scp.

Declan Freeman-Gleason
Declan Freeman-Gleason2:00 PM

Now we’re getting this:

Declan Freeman-Gleason
Declan Freeman-Gleason2:01 PM

Now we’re getting this dependency issue:

Declan Freeman-Gleason
Declan Freeman-Gleason2:01 PM

@Dana Batali

Dana Batali
Dana Batali2:02 PM

this is with my new changes?

Dana Batali
Dana Batali2:04 PM

are you in the correct working directory?

Dana Batali
Dana Batali2:08 PM

@Declan Freeman-Gleason

Declan Freeman-Gleason
Declan Freeman-Gleason2:10 PM

Yes (sorry about the delay, cell service is spotty)

Dana Batali
Dana Batali2:11 PM

seems like you should log in and try to replicate


cd h264playerdir
node
require("express")

Declan Freeman-Gleason
Declan Freeman-Gleason2:15 PM

Same thing as before

Dana Batali
Dana Batali2:16 PM

ls -R node_modules

Declan Freeman-Gleason
Declan Freeman-Gleason2:17 PM

Express is also there in node modules

Dana Batali
Dana Batali2:20 PM

npm update

Declan Freeman-Gleason
Declan Freeman-Gleason2:21 PM

Declan Freeman-Gleason
Declan Freeman-Gleason2:21 PM

Dana Batali
Dana Batali2:22 PM

lib dir has gone missing?

Dana Batali
Dana Batali2:22 PM

I'll put a tarball on my google drive...

Dana Batali
Dana Batali2:39 PM

(or you could copy it from one of the other raspis)

GitHub
GitHub3:24 PM

Declan Freeman-Gleason
Declan Freeman-Gleason3:26 PM

Ok, that worked. We're going to try out the IPv4 changes, and we also set it to use a port explicitly allowed by the FMS.

Dana Batali
Dana Batali3:27 PM

sounds good! try to do a netstat from the driverstation if possible (see above)

Declan Freeman-Gleason
Declan Freeman-Gleason3:38 PM

You want us to do `netstat -an` in mingw?

Declan Freeman-Gleason
Declan Freeman-Gleason3:38 PM

@Dana Batali

Dana Batali
Dana Batali3:39 PM

yes

Dana Batali
Dana Batali3:39 PM

after a connection to the field is established

Dana Batali
Dana Batali3:43 PM

netstat -an | grep 8080 (or the port you've selected)

Declan Freeman-Gleason
Declan Freeman-Gleason4:07 PM

We got the rear camera working with your ipv4 changes and port 5805 instead of 8080!

Dana Batali
Dana Batali4:08 PM

nice work!!! a little tenacity goes a long way!@

2019-03-24
GitHub
GitHub4:38 PM

2019-03-25
GitHub
GitHub10:17 PM

GitHub
GitHub10:17 PM

GitHub
GitHub10:17 PM

2019-04-03
GitHub
GitHub2:18 PM

GitHub
GitHub2:55 PM

GitHub
GitHub2:59 PM

GitHub
GitHub3:40 PM

2019-04-25
GitHub
GitHub10:38 PM

GitHub
GitHub10:39 PM

GitHub
GitHub10:39 PM

2019-05-23
GitHub
GitHub1:11 PM

2019-06-21
GitHub
GitHub2:11 PM

2019-07-19
GitHub
GitHub11:00 AM

2019-08-04
GitHub
GitHub9:13 PM

GitHub
GitHub9:40 PM

2019-08-05
GitHub
GitHub8:42 PM

2019-09-06
GitHub
GitHub7:00 PM

GitHub
GitHub7:00 PM

GitHub
GitHub7:01 PM

GitHub
GitHub7:01 PM

GitHub
GitHub7:02 PM

GitHub
GitHub7:02 PM

2019-09-18
GitHub
GitHub11:22 PM

GitHub
GitHub11:22 PM

GitHub
GitHub11:23 PM

GitHub
GitHub11:24 PM

2019-09-19
Dana Batali
Dana Batali8:42 AM

minor detail: i claim we should be writing docs in .md and not .html, curious what is afoot here.

2019-09-22
GitHub
GitHub10:28 PM

GitHub
GitHub10:28 PM

2019-09-24
Dana Batali
Dana Batali11:21 AM

@Declan Freeman-Gleason - can you clue me in on this new github-pages notification? Is there a public url to read our docs?

Dana Batali
Dana Batali11:33 AM

think i just answered my own question:

https://spartronics4915.github.io/2019-DeepSpace/

shows that a .md file can’t be meaningfully published as index.html.

I guess this is where @Binnur Alkazily’s expertise for generating website content via jekyll or some-such might be valuable

Binnur Alkazily
Binnur Alkazily3:32 PM

@Dana Batali will need to do bit more digging on how to do auto generation of index.html, but here is the auto html generation of poem.md

https://binnur.github.io/doc-test/poem

repo: https://github.com/binnur/doc-test

Process:
1. settings, enable github pages
2. in .md file include `---title: page-tag ---` block to auto generate html

Binnur Alkazily
Binnur Alkazily3:32 PM

I haven’t digged into custom domains, so it is hosted off my 1st github page setup

Binnur Alkazily
Binnur Alkazily3:47 PM

There maybe ways to generate auto TOC as the index, but will require digging

2019-10-06
GitHub
GitHub11:22 AM

GitHub
GitHub11:22 AM

2019-10-08
GitHub
GitHub7:33 PM

GitHub
GitHub7:33 PM

2019-10-10
GitHub
GitHub8:37 PM

GitHub
GitHub8:38 PM

2019-10-12
GitHub
GitHub10:02 AM

GitHub
GitHub10:02 AM

2019-11-07
Max Morse
Max Morse12:23 AM

@Max Morse has joined the channel

2019-11-08
2019-11-09
Binnur Alkazily
Binnur Alkazily6:30 PM

@Justice James did you break the build? ^^^

2019-11-12
Henry Tuohy
Henry Tuohy9:05 AM

@Henry Tuohy has joined the channel

Justice James
Justice James2:26 PM

:sweat_smile: I broke a branch I made... I haven't touched `master`.

2019-11-13
Freeman Tuohy
Freeman Tuohy12:37 PM

@Freeman Tuohy has joined the channel

2019-11-16
2019-11-20
Austin Smith
Austin Smith8:22 PM

@Austin Smith has joined the channel

2019-12-04