-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
TODO
1660 lines (1329 loc) · 55.4 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
* Mech warfare
* turret
* tracking
* Try a red/blue target
* Try a black/white target with white outer ring, black middle
ring, and white center
* record training corpus with green/red circle and aruco targets
* annotate
* measure detection and runtime performance of aruco
* try to come up with something better for other system
* propagate position based on IMU
* need calibration of camera FOV vs IMU
* change base target position based on range
* better response when target drops in and out of view
* add D term
* report up size of detection in addition to location
* see how barrel interferes with detection
* add a way to tweak where relative to automatic track we are aiming
* maybe re-interpret rates as positions relative to target
size in tracking mode?
* switch to something more suitable than aruco
* works at longer range and is faster... maybe implementable on GPU?
* switch to searching a smaller region when actively tracking for fast frame
rate
* create performance tests for target tracker
* render target in rf_command somehow
* do I want to try and register it to the FPV camera
* numerical turret angle isn't as handy as seeing a diagram of the
robots current configuration relative to the turret
* get a shorter ffc cable for pi camera
* make magnet spacers get the magnets closer to the chips for
improved velocity estimates
* Need cover for main power switch so a BB doesn't hit it
* build "plugs" to cover and protect the cable entry points on
exterior motors... clamp around cables and somehow snap onto upper
motor joint and onto bare motor
* also for blank power switch
* and for cable exit points from chassis (maybe could double as
switch cover?
* measure walking battery life
* render mech orientation graphically in rf_command in turret mode
* make some control mechanism to squat or pitch/roll to aim at low
things
* test walking, shooting, and accuracy with targets at range
* build a single USB plug control fixture for the 3 USB/RF things
* nrfusb
* xbox controller
* fpv receiver
* Running faster than 400Hz gives odd timing results
* Had to power cycle master nrfusb to get reception working?
* flip
* Get it to go again with reduced joint velocities
* Need to update mass and moments for legs and chassis in sim
* not sure gains are increased after landing so that it can stand
again
* Further jump work
* jump parameters are pretty twitchy... the "landing" phase doesn't
follow any controlled velocity trajectory very well. Sometimes
landing is entered too early because retracting didn't follow
well.
* legs need to move *past* idle when in retract phase to have maximum travel
* need to somehow control gait cycle time to manage speed and not
run out of travel
* Need a retracting condition to switch to landing (skipping
falling) if the legs start moving up or we start applying
significant force... that implies our legs have caught on the
ground.
* need to limit overall power so as to not exceed the batteries'
limit
* RF Control
* With chip antenna nrf, I unexpectedly see more than 50 per second
received on the robot side?
* The raspberry pi aux hat got into a state where either it, or the
master was only sending slot 0 and 1 with the app going, and when
the app was stopped it alternated between 0/1 and 8.
* receive data seems worse when the app is running... could be EMI,
but could also be a problem in aux fw
* have never seen a single packet reported dropped on the robot,
maybe the aux pi is always reporting slots even when they don't
make it? Maybe it is just really good at receiving?
* pi aux should have a deadman on transmitting slots? or some other
way for rf_command to know when the control app is dead?
* simulator
* get mass to be correct for each leg and the main body
* measure moment of all the moveable parts
* start in an appropriate position rather than falling
* Add sheathing to remaining cables
* legacy gait
* need a "sit down" mode again
* stop lowering when contact occurs, possibly go further than the
lift height
* make "quad" sticker to go under the mjbots one
* Just use "id" for all joint and leg ids
* Lifecycle
* Provide means to change control board LED flash pattern over CAN
* Start out in one flash pattern until host application starts
* Set one flash pattern when rezeroing is needed, and solid green
when good to go
History
~~~~~~~
DONE 2020-05-06
* Made movement relative to turret when present
* built slide switch for FPV power
DONE 2020-05-05
* created a mechanism to have a slightly different configuration for
the mech warfare case
DONE 2020-05-04
* turret
* need more functional joystick rates, either expo or piecewise linear
* limited angular acceleration
DONE 2020-05-03
* voltage feedback over RF needs to be finer grained than volt, at
least 0.25 volt
* start turret SW at boot
* soft-shutdown
DONE 2020-05-02
* turret
* Got everything replaced so that real battery fits
* mid-plate needs cutout for battery terminal
* battery cover exit should line up with new battery's terminal
* battery cover could use thicker detents on the tabs
* top shell interferes with antenna
* top shell interferes with pi power cable, will even more with
3mm more space
* top/bottom shell needs space around power dist board power
plugs for wires to escape
* top shell needs more material behind lens inserts
* bottom shell needs more material around lens inserts
* top shell top bolt pattern doesn't match right frame or back of
loader cap
DONE 2020-05-01
* Verified camera works with raspivid
DONE 2020-04-30
* moved turret pi 3mm closer to bracket
* got rf_command receiving telemetry from both things simultaneously
* got rf_command sending commands to turret
* limit pitch based on absolute limits
DONE 2020-04-27
* got flip to work in sim!
DONE 2020-04-26
* turret app
* wrote control loop
* set cpu affinity
* wrote app side RF link
DONE 2020-04-25
* Finished basic assembly of turret
* Verified CAN works to both moteus boards and the power distribution
board
* turret application
* stub application
* reports IMU and servo values in some form to log
* configure zero position on servos
* Support sign changes on servos
* make IMU orientation configurable
* made a simple web app
DONE 2020-04-16
* Ordered AEG board
DONE 2020-04-15
* Progress on turret... rough layout of aeg_driver done. CAD for
left side and yaw roughed in. Loader and hop up printed and tested
to work.
DONE 2020-04-07
* Improved jump heuristics some... now does a better job of hitting
the lower height, although for some reason I can't manage to
recursively calculate an accurate constant acceleration profile to
reach it.
DONE 2020-04-03
* Got video rendering working in rf command
DONE 2020-04-02
* Got gait transition working smoothly. Re-enabled "rest while
stopped" in rf_command
DONE 2020-04-01
* First command over RF
DONE 2020-03-31
* POC work on client, got GL rendered on top of webcam data
* webcam frame rate decoupled from rendering framerate
* Read mjpeg
* aspect ratio
DONE 2020-03-28
* Got basic nrf hooked up to pi3 hat and working with cmdline client
DONE 2020-03-27
* Fixed many signs
DONE 2020-03-26
* Got basic control hooked up in sim, it walks and jumps! (kinda)
DONE 2020-03-25
* Got basic simulator geometry working
* Switched everything over to clipp to make dynamic selection easier
DONE 2020-03-24
* Got dart GUI compiling and running
DONE 2020-03-21
* Rewired legs to not have "wrap-around", got sheath on two before
running out of heat shrink
* Brought up power dist r3
* Reflashed and calibrated all servos
DONE 2020-03-18
* Work on jump gait
* Used correct acceleration for pushing phase
* Fixed a glitch where extra_Z wasn't set on the final step of the
landing phase
DONE 2020-03-11
* Integrated new telemetry into robot and tplot
DONE 2020-03-09
* Fixed longstanding issue with jump landing being cut short
DONE 2020-03-05
* Got rezeroing interlock into place
* Flipped sign of front knees, now it walks in a more anthropomorphic
way. Fixed enough stuff to make that work.
DONE 2020-03-04
* Got full rate IMU data into log!
DONE 2020-03-03
* Got jumping working again
DONE 2020-03-02
* Got stub of walking control working
* Got walking largely working
* Got idle position decoupled from standup position
* Got mostly constant acceleration trajectories for lift and lower
DONE 2020-03-01
* Implemented stub of walking control
DONE 2020-02-27
* rpi3 mounted on chassis
* Updated all legs to new geometry
* zerod all servos
* debugged a too high SPI speed
* created A1 config
* updated start-robot
* first movement!
* jumped!
DONE 2020-02-26
* More work on pi3 hat... now have multi-device queries working for 2
devices per bus, going across 8 devices in all. When doing 3 at
once per bus something seems to drop one of the commands.
* Got everything working. Cycle time could still be optimized more,
but decent enough for now.
DONE 2020-02-25
* Got pi3 hat communicating with servos
* Started writing "my first" AsioClient for the pi3 hat based on
spidev. Will probably have to do a bit-bang one eventually, but
this will get me started
DONE 2020-02-23
* Updated to mjlib w/ move-only callbacks
* Updated moteus_tool to work with new extensibility framework
DONE 2019-10-29
* Numbered legs
DONE 2019-10-28
* Moved everything to chassis v2
DONE 2019-10-24
* Worked to integrate L frame motion into the jump mode
* Added a non-latching zero velocity mode to servo
* First kinda-moving jump mode, each resulting in a fault of some
sort, most of which resulting in losing all relevant logs so it is
hard to debug. The battery didn't fall out, so I think they all
had an overall power system fault that rebooted the pi.
DONE 2019-10-23
* Integrated websocket/joystick UI into quadruped application, got it
working for resting and zero
DONE 2019-10-22
* Created websocket joystick PoC that sends joystick data to the
server and retrieves data from the server to the UI
DONE 2019-10-21
* "rest" mode needs to smoothly slew to idle height
* make single jump revert to rest mode, so you can just send the
jump command again
DONE 2019-10-19
* Implemented "rest" control mode
DONE 2019-10-18
* Printed new chassis top plate with turret mounts
* Work on standup control mode
DONE 2019-10-17
* Implemented most of a new standalone control app, got joint and leg
modes done
DONE 2019-10-15
* Wrote tools to compare IK solutions and generate plots
DONE 2019-10-13
* Got inverse force in revised IK
DONE 2019-10-12
* Got inverse velocity in revised IK
DONE 2019-10-11
* Installed new bottom plates
* Sorted out Amass inventory
* Keep working on revised IK
DONE 2019-10-10
* Test fit of chassis v2, tried sanding a corner... wow, one corner
took almost 2 hours and isn't even perfect
DONE 2019-10-08
* Made up a draft of the nrfusb... will wait on something else with
the stm32g4 on it working before I send off yet another untested
layout.
* First chassis v2 front plate printed
DONE 2019-10-07
* Ordered fdusbcan from macrofab
DONE 2019-10-04
* Got improved fault handling working, we now command zero velocity
for all remaining servos on a fault
DONE 2019-10-03
* Replaced busted leg #1
DONE 2019-09-30
* rev power distribution / pre-charge
* put 5 XT30 power plugs and pre-charge on one board
* include power switch
* CAN bus too for soft power control?
DONE 2019-09-20
* Working on no-resting leg sit-stand sequence. Have standing and
starting to walk working. Sitting down is having frame
transformation issues when stepping to a place where sitting down
is possible.
* Figured out that I had the signs of all femurs and tibias
backwards. This was causing the IK to have an inversion across the
x axis, as well as making the pitch motion of the body be
inaccurate, as well as other problems (like making it walk
backwards).
* Smoothed out body offsets
DONE 2019-09-05
* Worked up latency analysis for current implementation. Looking to
see what can be done to reduce rpi turnaround time, so trying newer
kernel and rt-preempt. Also need to test that to see if the newer
kernel fixes the bug that locks up the serial port when it
overruns.
DONE 2019-08-22
* JUMP!
DONE 2019-08-20
* Set shoulder gains to 800/15 and swing_percent to 30, seems to walk
decently well, although there are still some underdamped yaw
oscillations.
* Turning still doesn't work at all. I think that I may have the
legs not all configured correctly
* Reconfigured legs, got turning working, although pitch still
doesn't seem to work properly. Really need to get legtool level
diagnostics working again.
DONE 2019-08-16
* First walking with new chassis!
* Got manual mode working through cmdline option "--opt.manual_mode 1"
DONE 2019-08-15
* Flashed another rpi3
* Flashed another rpi3 hat
* Installed mech sw on rpi3
* Mounted rpi3
* Zeroed and set range for all 12 servos
* First draft of mech config
* Made the legs cycle for the first time. It doesn't look like the
legs are lifting the correct amount though, not sure what is up
with that.
* Leg lifting problems were due to a scale factor on the velocity
sent to the joints.
DONE 2019-06-14
* Finished refurbing SN4 and SN3. SN12 is proving more problematic,
trying to print a new back housing to see if bearing misalignment
is causing its problems.
DONE 2019-06-11
* Lengthened 3x motor leads to use as lower leg joints
DONE 2019-06-10
* Installed remaining 6x reinforcing rings
DONE 2019-06-09
* Processed final reinforcing rings
DONE 2019-06-06
* Finished printing everything but 1 reinforcing ring set!
* Removed all legs from old chassis
* Installed first full rotation leg on chassis
* Installed 3x legs worth of heat set inserts
* Re-printed tensioners, as the first batch all failed during bearing
installation
* Pressed bearings into 3x upper legs
* Disassembled all 3 remaining old legs
DONE 2019-06-01
* Processed 3x reinforcing rings from the printer
* Started a shoulder and upper motor joint print
* Tried to mill the sun gear holder in 2-op mode. First time, failed
because I plain screwed up the program and plunged directly into
uncut material.
* Second time got all the way through the 3mm Datron portion, then
drove the long reach mill way to hard and stalled it, then it
exploded when I tried to spin it up a second time with way
reduced parameters.
DONE 2019-05-31
* Test assembled full rotation leg... largely looks to work
* Upper leg a tad too small, the belt rubs against the upper insert support
* Lower leg bolt holes didn't go all the way through
* Ordered more belts and pulleys
* Printed 2x more reinforcing rings
DONE 2019-05-30
* Got 5mm gt3 upper and lower pulley off printer... upper was busted
and had to be re-printed
* Updated upper and lower leg for 28/28 gearing, made both a little
bit longer to handle the longer belt I had assuming a bigger lower
gear size
* Installed reinforcing ring on SN13
* Assembled all the motors for the full rotation leg, just missing
actual leg!
* Stripped down umbilical
* New upper pulley seems to work fine
* Debugged turret EMI problem... wasn't able to exactly reproduce on
the lab bench, but scoping the power supply showed massive voltage
ripple. Added a lot of capacitors and things looked a whole lot
better.
DONE 2019-05-23
* Got upper leg print, mounted on motor with reinforcing ring along
with pulley, old lower leg, and new knee stud.
* Printed shoulder with increased spacing
* Installed longer power leads and a jump RS485 cable onto SN6 for
full rotation upper leg test
* Drilled out second reinforcing ring
DONE 2019-05-21
* Unpacked
* Printed test reinforcing ring
* Printed test full rotation shoulder
DONE 2019-05-15
* Installed second target panel adapter
* Tested ethernet from laptop to rpi
* Tested 5.8ghz tx, while sending controller video over it!
* Looks like my wifi frequency doesn't overlap with any of the FPV
frequencies, and changing it is just tweaking
/etc/hostapd/hostapd.conf.
* Designed and printed a "desk bracket" to clamp a freestanding motor
to a desk/table
* Connectorized and flashed spare rpi3 hat fresh from macrofab
* Built 3.5A 20V 3.5mm bullet supply from an old thinkpad wall wart
* Build spare gearbox SN13
* Cutout a bunch of fiducials
DONE 2019-05-14
* Printed lower pulleys at 0.15mm, installed
* Printed extra belt tensioners, have two in each leg
* Re-zeroed the gimbal yaw
* Re-glued the 3 loosest resting feet
* Fixed jumping shoulder joints... they were being started outside of
their absolute position limits. Noted it in the moteus TODO
* Installed turret shroud
* Took "qualification" video, including firing some BBs
* Installed first 8 gearbox protectors
* Printed and double sided taped target panel adapter
* Build new harnesses between femurs and tibias and tied them up
* Built mech software and tested control from laptop
* Verified I could build moteus firmware and run openocd on laptop
* Did some minimal experiments with fiducials... they seem probably
about as good as they were before in the lighting conditions I was
able to get tonight.
* Printed out a bunch of fiducials
DONE 2019-05-13
* Got first 8 gearboxes assembled
* I feel like a gunsmith before interchangeable parts!
* Smoothness binning
* SN7 & 8 are the worst, but not terrible even
* 5, 6, 9, 10, 11, 12 are all pretty good
* iFlight stators are in SN7 and SN10
* Assembled and installed all 4 motors. Walked on them!
DONE 2019-05-12
* Started assembling gearboxes
* Post-machined the back plates to give more room
* R3 SN9 was formerly an id #5 and needed its encoder integral limit
relaxed to cal
DONE 2019-05-11
* much progress on gearboxes
* working print of leg
* working print of shoulder
DONE 2019-05-10
* fine machining on all rotors
* Finished reprint of 100tooth gear mandrel
* Kinda turned down remaining two gears... they seem a little out of
true, but maybe they will work? Diameter varies by +- 0.1mm around
the circumferences, so I aimed for 54.80-55.00.
DONE 2019-05-09
* Ordered more HW for gearbox builds
* Turned down 6 more gears, fixture broke doing last two :(
* Designed gearbox leg and shoulder bracket
DONE 2019-05-08
* Separated the rest of the motors, including disassembly all but one
of the direct drive legs
* Tried to turn down inner gears... mandrel is now too loose to hold
gears without some kind of clamp. Designed a clamp and will print
it tonight.
* Rough machined 10 rotors
* Rough machined 10 stators
* Built 100tooth mandrel cap, installed inserts into mandrel and test
fit... seems like it will work
* Final removal of all stators
DONE 2019-05-07
* Got multiplex_tool in the deployed image
* Updated servos to allow re-zeroing after boot, wrote a script to
re-zero all servos
* Pretty much gave up on the direct drive motors. :( #5 just is never
good enough, and it is close enough to the edge power wise, that
even slight problems result in it overheating or over-currenting.
* Filed down 10 more sun gear holders
* Separated a bunch of motors
DONE 2019-05-06
* Investigated high power draw from servo #5. AFAIK the problem is
just some slight assymmetry in either the leg or the chassis that
makes it need a little more torque to hold the same position. When
the robot tips a bit to the left, then it needs even more torque,
which results in a bad feedback loop that results in maybe 2x the
current consumption in that servo. I attribute this to poor
position control bandwidth also.
* Tried decreasing kp by 4.5x... it was much more damped, but also
unable to stand unassisted. :(
* Finished up 3 more controller boards. Servo 5 was SN 24, going to
swap it out with newly readied 33 to see if it works any better.
* Pulled SN 29 off of servo 10, since it has a busted temp sensor.
Replaced with SN 39
* Seems to walk significantly better with new #5 servo, but that
servo is still getting hotter than the other lower leg ones by a
fair amount. :( Guess I'll check the heatsink compound on the other
side too.
* Tried fiddling with leg lift height. 20cm is the minimum that
doesn't catch on the ground when moving. 30cm clears reliably, but
is really stompy. Legs are also slipping a fair amount even on
foam, maybe when the others stomp down? Need to look at high speed
video.
* Re-applied thermal paste on back of #5's heat sink
* Got high fps video, several problems
* It still sags somewhat when legs are in flight
* When legs land, they hit hard enough to bounce the other legs out
of contact with the ground, causing slippage.
* More work to improve smoothness of walking
* Gently ramp in feed-forward term after landing
* Drop p-term when in flight and gradually ramp it back up when on
the ground
* Replacement #5 board still has calibration drift! :( It must be
either related to how hot it is getting, how much current is going
through it, or the bracket.
* Made legs switch into world frame *before* landing, so they have
zero translational velocity when they hit.
DONE 2019-05-05
* Tested feedforward current... seems to have the desired effect of
reducing sag when stepping in place. Doesn't seem to help walking
a whole lot yet.
* Figured out at least one IK problem. The tibia joint no longer had
the relationship I thought it did now that I have a geared belt in
place. Applied correction in code, and re-zeroed all the servos.
* The preposition_z_offset seems to work as expected now, yay!
* Still doesn't walk very well, although now it looks like something
is up with servo #5. It keeps getting way hotter than everything
else for the same gait cycles, and also keeps having its cal drift.
DONE 2019-05-04
* Updated to torque max command
* Set gimbal power to 0.95, lowered pitch limit to -20 deg
* Got left leg shroud #2 off printer
* Installed remaining retaining clips
DONE 2019-05-03
* Got pre-charge board installed, first untethered operation!
* Finished printing turret shroud
* Printed turret shroud adapters, glued to turret
* Tried test fitting retaining rings onto leg shafts... was using the
wrong tool and broke it after getting two on. Hopefully ordered
the right and higher quality tool.
* Assembled first leg shroud, cut out front leg holes
* Printed leg shroud adapters, glued first set to chassis, mounted
leg shroud on chassis
DONE 2019-05-02
* Updated bootloader to take new multiplex command
* Re-flashed bootloader on all servos
* Tried to make moteus_tool more robust when flashing... somehow
ended up bricking board SN 21. It reported as read protected and
even the windows st-link util couldn't un-read protect it. Swapped
out for SN 35.
* Designed leg shroud mounting adapters
* Verified tview can talk to everything, although only one device at
a time for some reason... probably latency and timeouts are
screwing things up
* Installed squash balls on resting feet
* Reproduced skipping the sitting phase
* Iterated on sitting and standing. Got it pretty reliable.
* Test printed a fiducial on card-stock with new printer. Seems like
it will work out to at least 10ft w/ official 3in max size.
* Got monitoring of servos working, and shutdown in the case of
fault... although it polls infrequently enough that it isn't likely
to help
* When stopping, got the gait to keep stepping until the legs are in
a good position. Also applied acceleration in both directions,
since slowing down was causing problems too.
DONE 2019-05-01
* Kept trying to print chassis leg shroud... first time failed, tried
again with thicker walls so that maybe it will deflect less while
printing.
* Modeled up the turret in f360, then made a shroud. Initially tried
to use freecad, since I had it there already, but freecad really
doesn't have a good way to created mirrored bodies which are
slightly different from one another.
* Installed polycarbonate lens for camera
* Updated tview to support network connections, then fought for an
absurdly long time trying to make it work. It turns out the rpi's
uart fifo is only 16 bytes big! Also, the kernel driver has a bug
that locks out the IRQ if data comes in too fast. tview reliably
triggers this by asking for large binary schemas. I compiled and
installed a preempt_rt build, which significantly decreased overall
performance, but didn't actually help with the serial lockup issue.
I tried setting the CPU affinity, but that didn't work at all. I'm
kind of at a loss. I guess I could update the multiplex protocol
to allow the master to control the maximum size of a tunnel reply,
which would at least allow me to work around the issue.
DONE 2019-04-30
* Implemented support for moteus turret, connected it up and operated
it from the joystick!
* Installed resting feet
* Tested integrated robot, including resting feet
DONE 2019-04-29
* Ordered FPV transmitter and receiver
* Implemented standup and sitdown phase
DONE 2019-04-28
* Finished bringing up gimbal board
DONE 2019-04-27
* Recalibrated servo 5. Everything else is holding just fine, I'm
not sure what is different about that one yet.
DONE 2019-04-26
* Got all moteus changes committed and pushed
* Got all legs configured properly, first reasonable walking!
DONE 2019-04-20
* Started porting gimbal code to rules_mbed / mjlib
* Got a basic rs485 multiplex build functioning on the board, and
every sub-module compiling
DONE 2019-02-21
* More work on updated pi3 hat
* completed routing
* completed BOM
* fine silk placement
* BOM optimized down to 20 line items
DONE 2019-02-20
* Worked on pi3 hat r2 w/ rs485 and higher voltage input
DONE 2018-09-11
* design shroud
* ensure weapon can rotate freely in both mounting positions
* add joining face at half boundary so it mates at more than a wall
thickness point
* split into two halves
* ensure rear and front will clear panel mounting supports
* cutout bottom area for gimbal
* cutout to turn on/off weapon activator switch
* ensure there is appropriate space for power wire to exit
* add structural connection to gimbal on sides
* consider upping thickness to 1.5 or 2mm
* cutout top for loading
* cutout front slot for barrel, laser, and camera
* add clips to hold two halves together
* Get 3d printed
* new base plate
* new vertical plates
* shroud
DONE 2018-08-31
* Finished up design of new base plate and vertical plates
DONE 2018-08-28
* Made video of target tracking working
DONE 2018-08-26
* Got aruco targets detected and rendered in frontend GUI
DONE 2018-08-22
* Switched to unicast, couldn't figure out a way to set mcast rate on
bcm43455c0
* Updated configs and startup script
* Discovered that 720p is all the rpi3 can encode with current
optimizations
DONE 2018-08-20
* Mounted turret in correct orientation
DONE 2018-08-19
* first walking with rpi3!
* discovered I mounted the turret backwards, need to reassemble
correctly
DONE 2018-08-18
* Built cable to connect rpi3 to gimbal
* Verified rpi3 could communicate with gimbal over herkulex protocol
DONE 2018-08-13
* get tview and tplot operating again
* boot up turret board again, recalibrate the gyro and both motors
DONE 2018-08-12
* Packaged python and boost::python
* Got tview working
DONE 2018-08-10
* Removed level translators from mammal odroid board
* Received pi3 shields r1
* Updated everything to bionic
* Modded pi3 hat to have correct voltage, tested and seems to power
the pi3 just fine
DONE 2018-07-30
* Wrote setup script
DONE 2018-07-23
* Got gimbal building on xenial
* Upgraded everything to bazel 0.15.1
DONE 2018-07-17
* Modified brackets to move rpi3 and weapon further forward. Seems
to balance relatively well in that position, although you can't put
a nut on the top weapon bolt
DONE 2018-07-16
* Verified serial functionality
* Basic fit check of rpi3 mounting hardware
* Got rpi3 hat sent off to mfg
DONE 2017-06-26
* joule camera working
* all software running on ref-os-iot
DONE 2017-06-12
* Got root ssh login on joule
* All deps running on joule
DONE 2016-12-02
* Verified that UART0 and UART1 work in joule ubuntu, up to 4M baud
each
DONE 2016-11-10
* Sent in order for beefier mammal shoulder bracket to 3dhubs after
emachineshop couldn't do it out of al plate.
DONE 2016-11-06
* Sent in order for mammal shoulder bracket to emachineshop
DONE 2016-11-05
* Finalized emachineshop drawing for mammal shoulder bracker
DONE 2016-11-04
* Mostly recreated mammal bracket in e-machineshop after windows ate
everything
DONE 2016-03-12
* Connected up scoring LED board on mammal robot
* Populated through hole things on spare v3 gimbal board
* Moved offset config from mw_command into MechWarfare
DONE 2016-03-11
* ordered competition BBs
DONE 2016-03-10
* fixed video recording
* need a way to stop sending commands to robot and to view if it
thinks the servos have been idled or not
* OSD -- targeting grid, just fixed in the center to make it easier
to see where the laser would be
DONE 2016-03-05
* add button to prevent rotation from happening temporarily
* implement a minimal simulated turret and enable it by default
DONE 2016-03-04
* the additional mode buttons appear to apply in parallel with drive mode
DONE 2016-03-03
* control: make sure agitator control activates occasionally when
firing somehow
DONE 2016-03-02
* re-routed USB camera harness on first gimbal to reduce likelihood
of camera falling off USB bus
DONE 2016-03-01
* reconnector the lizard scoring harnesses to JST
DONE 2016-02-29:
* start_robot: option to run without recompiliing
* fix video recording
* test lizard robot walking w/ both xbox and logitech joystick
* test and tune constants for limiting translation when rotating
DONE 2016-02-28
* control: bring in joystick control code to video_controller_app process.
* Assemble second weapon
* add JST connector to second webcam
* build power/data cable to main chassis
* build USB cable to main chassis
DONE 2016-02-27
* Assembled second weapon
* Started filling up toolbox with parts
* Ordered more baggies so that I can finish
* Built weapon to gimbal stabilizer cable
* Built IMU cable
* Hot glued laser into place
* Populated AS5048B board
* built pitch encoder cable
DONE 2016-02-26
* Verified that OSD correctly shows voltage and turret
position... likely the fire time is correct too
DONE 2016-02-25
* Status reporting from the robot
DONE 2016-02-24
* finished assembling all 8 target panels
DONE 2016-02-23
* Mostly assembled 4 .1" target panels
* Partially assembled 4 JST target panels
DONE 2016-02-22
* Got lizard chassis operating using the MechWarfare
* assembled third transponder board and remaining 2 LED boards
DONE 2016-02-14
* Create gimbal board protective 3D printed cover and ordered from
shapeways
DONE 2016-02-13
* designed and ordered new turret gimbal
* install shapeways barrel lock
DONE 2016-02-11
* video: ensure --camera.write_video on sender produces playable file
* video: decrease the latency of the network link / receiver (currently ~200mS)
DONE 2016-02-10
* video: finish McastVideoLink
- packetize frames into packets, merge them back
- send on fixed schedule (but apply corrections if this is too slow)
- ensure we log all packets
DONE 2016-02-10
* added eeprom support to herkulex_tool
* made MechWarfare verify minimum voltage configuration on start
* recorded full turret config, tuned yaw to have almost no overshoot
DONE 2016-02-08
* if a servo goes power off, we need to report it in a big way, but
not automatically re-enable it
* make turret rate commands able to operate in a fine mode somehow,
either a gradiated rate scheme, or a toggle for fine mode
* ordered new versions of weapon plates, jaws, and lizard turret
mount from emachineshop
DONE 2016-02-07
* Need to re-calibrate turret gyro any time torque is enabled
DONE 2016-02-03
* prepared freecad and dxf files for new turret plate, new turret
jaws, and new lizard turret adaptor
DONE 2016-02-02
* rev gimbal board and get 2x of the clean version made
* ordered some nylon spacers to use for "feet" under the bottom body
plate
DONE 2016-01-31
* verify that absolute yaw and pitch control work in gimbal
DONE 2016-01-30
* Update commands for single person operation
* right stick controls gimbal
* left stick translates
* onboard logic tries to keep machine moving in optimal direction
without obviously moving camera
DONE 2016-01-29
* Switch turret rate commands to use the onboard rate motion
* Tune gaits for loaded mech (may need to increase range of joints?)
DONE 2016-01-27
* Finish testing scoring transponder
* Mount scoring transponder
* Mount and wire scoring panels
DONE 2016-01-26
* mounted savage solder camera and IMU to inside of weapon plate
* finished populating second scoring transponder, basic power on test
DONE 2016-01-25
* ordered spare gimbal motors
DONE 2016-01-21
* Build power/data harness to go from top plate to turret
* Build USB harness to go from top plate to turret
* Test mount bottom plate and battery
* Mostly populated a new transponder board
DONE 2016-01-20
* gimbal harness rebuilds
* motor wires
* weapon wires
* Build final IMU harness and mount