代码拉取完成,页面将自动刷新
* mk2 leg
* print
* lower leg
* verify
* lower pulley
* upper leg v2
* upper pulley v3
* shoulder v4 (with dimension slightly smaller again, figure out
what went wrong)
* design al knee stud
* get lower foot to a working state
* mk2 chassis
* just need to redo front and back plates
* rpi3 hat
* make plan
* device tree eeprom
* spi slave
* define spi protocol
* devkit nice to haves
* Hard-fault or assert needs to reset the device and latch a fault
* add multiplex_tool register stuff to reference
* add tview delays and multi unit features
* document how to change id
* the "fault" state should flash the LEDs in a pattern that is
distinct from the hard fault state (or I guess the same if
hard-faults start resetting into a fault state)
* would be nice if tview could show enum names for fault codes
* New telemetry format
* fdcanusb bridge
* javascript tree viewer from network
* rationalize all the debug tools w.r.t. serial/network/fdcanusb/robot
* tview
* multiplex_tool
* c++ moteus_tool
* make tview poll for more data immediately if something was present
* New telemetry format
* C++ file writer
* Binary -> Javascript
* Json -> Binary
* Binary <-> JSON
* Javascript <-> Binary
* Python -> Binary
* C++ network server
* Javascript file reader
* Javascript live + logged analysis tool
* design new absolute position sense board
* need to do something better if starting position control outside
the absolute limit, than slew as hard as possible to get into the
limit. Perhaps the control_position should have a special mode for
when it is started outside?
* Bringup improvements
* bringup procedure needs to automatically verify temperature is
sane, including when powering motor
* zeroing procedure needs a way to verify it online
* Add a "brake" mode that just shorts the terminals all to ground
* Make moteus_tool servo auto-detection more robust
* especially in the face of things spewing
* Turn on -Wdouble-promotion for STM32 builds
* Figure out why -O2 and -O3 start linking in assert
* Get all mbed ticker stuff out of the link, we never want it used
* use less power when driver is not active
* implement CAN for the power distribution board
Code cleanup
* get link time optimization working
* Try to figure out a way so that we can actually bind callbacks without
having to shrink all over the place?
DONE 2020-02-02
* upper motor joint seems to work
* battery stud seems to fit well
DONE 2020-01-31
* Tested first mk2 leg shoulder
* Tested first mk2 leg upper joint
* Wrote power dist firmware
* Worked on getting better enamel stripping solution
* Got mk2 leg pulleys and stud printed, untested yet
* ordered al stock for knee stud
DONE 2020-01-30
* Started printing mk2 leg shoulder adapter
* Ordered more 6704 bearings for mk2 leg
* Ordered belts for mk2 legs
* Made draft bom for mk2 leg
* Tested updated battery stud for fit with battery, made slight
tweaks to model. Also updated the model so that the contact can be
soldered before insertion, so there is no risk of heat damage.
DONE 2020-01-28
* Made fdcanusb w/ moteus_tool and multiplex_tool much more robust
DONE 2020-01-27
* fdcan frames padded with nops
DONE 2020-01-22
* devkit assembly
* moteus controller's programmed w/ ship fw 6/6
* including 6008 pid constants, unwrapped_position_scale, and position limits
* test all DB9-CAN cables 8/6
* test all stm32 programmers 10/6
* packed 6/6 kits
DONE 2020-01-21
* Added warranty disclaimer to product page
* Turned on power light
* assembly
* stands assembled 6/6
* fdcanusb's programmed w/ ship fw 8/6
* fixed drop read lines in moteus_tool
* filed away mk2 wire covers
* made devkit intro video
* made devkit flyer
DONE 2020-01-20
* Took final devkit product photos
* assembly
* devkit brackets machined: 7/6
* CAN cables made: 8/6
* stm32 cables made: 10/6
* desk stands printed: 7/6
* power cables made: 10/6
* magnet adapters 7/6
* moteus_tool device info
DONE 2020-01-19
* Got all magnet adapters printed and magnets installed
DONE 2020-01-17
* moteus_tool rezeros when done calibrating
* pulled multiplex_tool binary into moteus repo
* implemented temperature derating
* multiple open channels now works in tview
* replaced controller which seems to have had a gate drive get
shorted to a phase wire :(
* tuned 6008 loops:
* current loop: p0.003 i200
* position: p3 d.07 i0
* built stm32 cables
* made errata gdoc
DONE 2020-01-16
* Machined more brackets
* Implemented CAN bootloader
DONE 2020-01-15
* Built devkit power supplies
* Figured out how to set the option bytes from openocd
* Updated README for r4.x
* Verified that ID change works
* Got git hash into firmware
* Made product page
DONE 2020-01-14
* Made devkit CAN cables
* Printed and machined devkit parts
* Powered up r4.2 for the first time, updated firmware accordingly
* Removed unused tview tab
* Added timeout and variable speed to calibration cycle
* Made moteus_tool calibration check for faults
* moteus_tool calibration now emits report and saves it to disk
DONE 2020-01-13
* Started ordering servo machined parts
* Quoted more servo parts
* Machined first devkit bracket
* Test fit first devit assembly, seems to mostly work
* Tested w/ fdcanusb r2.1, works fine
DONE 2020-01-10
* Drew up draft of controller devkit mounting, ordered stock for
metal bracket
* Implemented calibration in C++ moteus tool, removed python one
* CAM for devkit bracket
DONE 2020-01-09
* greased new mk2 prototype
* finished draft of back housing drawing
* finished draft of wire cover drawing
* updated back cover model to hopefully fit
* machined another back cover, this one fits
* finished draft of back cover drawing
* juggle stress tested mk2 prototype for around 6 hours, no problems
* got rs485 flashing working with coroutine moteus_tool
DONE 2020-01-08
* Made drawing for front housing
* Made drawing for planet input
* Made drawing for outer housing
* Third try on wire cover was the charm
* Got tview working with new telemetry format
* Got mk2 servo programmed and calibrated
DONE 2020-01-07
* Finished back cover
* Made CAM for and machined wire cover
* Made drawing for planet output
DONE 2020-01-06
* Got moteus tool console working with coroutines and fdcanusb
* Finished front housing
* Completed CAM for rough back cover, started machining
DONE 2020-01-02
* Machined 2x front housing op0 and 2x back housing op0
* Fixed buffering problems in multiplex_tool w/ fdcanusb
DONE 2019-12-31
* Received pre-production rotors and stators, incoming QC checks out
fine
* Prepared op0 soft-jaw and toolpaths for back and front housing on
AA machine
DONE 2019-12-30
* Switched all of mjlib to use clipp instead of boost::po
* Updated multiplex_tool to use a switching mechanism that will work
with moteus_tool too
* Nominally have multiplex_tool working with fdcanusb/rs485 and
arbitrary client defined clients
* Ordered stock for back cover and wire cover
DONE 2019-12-25
* Nominally made multiplex_tool work with fdcanusb
* Switched moteus to use new telemetry format
* Ported tview into moteus, nominally ported to fdcanusb and new telemetry format
* Designed websocket telemetry protocol
DONE 2019-12-20
* Ordered AMASS connectors for qty 100 r4x run
* Finished weight reduced planet output
* Fixed outer housing stud length discrepency... both front and back
housings were measured 3mm from their outermost face, but they were
different overall thicknesses... in the name of keeping the outer
housing symmetric, I just switched it to have the same distance
from their inner face
* Updated back housing to have wire cover
DONE 2019-12-19
* Mfg weight reduced planet input, 9.3g now
* Designed weight reduced planet output
* Machined op1 of planet output
DONE 2019-12-17
* Ordered qty of fdcanusb and moteus r4.2
DONE 2019-12-16
* Functioning endurance test of r4.1, 4.5Nm worked indefinitely w/
intervention every 5-30min. Tested up to 30Nm w/ manual catching.
DONE 2019-12-15
* Working towards endurance test of r4.1... having adhesive
challenges on servo mk2... maybe have a recipe which works well enough now?
* New outer housing machined on pnc
DONE 2019-12-09
* Performance profiling
* g4 w/o ccm
* adc_done 92
* start_pos_sample 256
* done_pos_sample 675
* sense 1228
* curstate 1763
* control_sel_mode 2201
* control_done_pos 2993
* control_done_cur 3954
* control 4484
* emitdbg 4494
* done 4524
* g4 w/ ccm
* adc_done 74
* start_pos_sample 164
* done_pos_sample 564
* sense 868
* curstate 1176
* control_sel_mode 1370
* control_done_pos 1880
* control_done_Cur 2600
* control 2900
* emitdbg 2903
* done 2930
* f4
* adc_done 73
* start_pos_sample 167
* done_pos_sample 606
* sense 903
* curstate 1194
* control_sel_mode 1470
* control_done_pos 1924
* control_done_cur 2575
* control 2929
* emitdbg 2958
* done 2974
* g4 after moving everything I could to CCM
* adc_done 55
* start_pos_sample 144
* done_pos_sample 517
* sense 760
* curstate 1028
* control_sel_mode 1225
* control_done_pos 1560
* control_done_cur 2130
* control 2500
* emitdbg 2512
* done 2528
* w/ 40kHz rate, 24V input, 30A phase current measured about 0.7V p-p
ripple
* Moved all hot loop stuff to CCM, without further work got the ISR
time down to 14.2us, which is probably good enough for now. Likely
plenty of room for improvement still.
* Tuned current control loop for noise
* Removed debug serial wire, greased motor
DONE 2019-12-07
* Got tview working with fdcanusb
* Got py moteus_tool working with fdcanusb
DONE 2019-12-06
* r4.1
* Got voltage based FOC working
* fixed snprintf of floats by fixing stack alignment
* persistent settings
* ran a motor!
* got MicroServer hooked up to FDCAN
DONE 2019-12-05
* stm32g4
* boot without faults
* got serial tview working
* serial number fixed
* as5047
* ADC
* bus voltage
* FET temp
* current sense
* drv8323
* PWM
* got mbed_die to work properly
DONE 2019-11-25
* Finished second artifact of outer housing
* Started on second artifact of back housing
DONE 2019-11-24
* Got r4.1 blinking lights!
* Printed new outer housing op2 brackets and aligners
* More outer housing machining, got op1 done on the second artifact
DONE 2019-11-23
* Discovered reason for holes not aligning. A bug in both back AND
front housing. :( It propagated to the outer housing too, so all
three are toast.
* Ordered more front housing stock
* Added more clearance to outer housing stud walls
* Got a stub stm32g4 build system in place
DONE 2019-11-22
* Finished first draft of outer housing reduced weight mk2 servo
DONE 2019-11-19
* Continued machining on weight reduced mk2 servo
DONE 2019-11-18
* Started machining on weight reduced mk2 servo
DONE 2019-11-17
* Ordered fdcanusb r2
DONE 2019-11-14
* Ordered full supply of magnets
* Assembled first mk2 prototype
DONE 2019-11-13
* Finished machining 3rd try of front housing
* Finished machining back housing
DONE 2019-11-12
* More work on machining front housing, and getting ready for back
housing
DONE 2019-11-10
* Worked on machining front housing more
DONE 2019-11-07
* Worked on machining front housing more
* Finished up draft design of mk2 servo
* Printed up new mounting plate and new op2 bracket to move the part
closer to the mill... ran out of z travel
* Started working on toolpaths for r3.1 version of back housing
DONE 2019-11-06
* Started machining front housing on pocket nc
* Machined op1 bracket from al
DONE 2019-11-05
* pre-machined parts for another front housing and bored out for more
the other
DONE 2019-11-04
* Finished 3x more planet input
* Received rotor and stator samples
* Designed toolpaths for front housing
DONE 2019-11-01
* Manually machined 1x outer housing to correct ID/OD and height
* Manually machined 1x front housing to correct height and added center hole
* Diagnosed pullout issue with planet input op2 roughing... looks
like another sliver. Maybe have a better way to handle it now,
that is even more general. Lie to fusion and say the tool is 20
microns smaller in diameter than it actually is?
* Made 3x planet input op1
* Received r2 of power distribution board. The chip isn't shorted
out!
DONE 2019-10-30
* Got stock for front housing and outer housing
DONE 2019-10-28
* Implemented flux braking
DONE 2019-10-16
* Installed the switch into the new chassis
DONE 2019-10-15
* Received power distribution board r1
* Discovered the digikey pinout for the STM32G4 was wrong. :( Fixed
it and sent out another rev of the board. I have a lot of
paperweights on the way now.
DONE 2019-10-11
* First attempt at foaming in a foot... probably used too much foam.
I think I filled it a bit more than half full, which put a lot of
pressure trying to evacuate the foot adapter. I suppose I might
also tip it upside down to cure as well, or maybe just sideways so
that air can escape, or perhaps first swirl it around to get foam
on all of the interior surfaces.
DONE 2019-10-08
* Draft of new lower leg and foot mechanism
DONE 2019-10-03
* Verified that I can communicate with FD-CAN at higher bitrates on
the stm32g474
* rev moteus board
* at least 36V input, w/ protection up to 50V
* FD-CAN
* XT30 power connectors
* External rated 3 pin connector for CAN
* More, cheaper capacitance
* Lower cost
* Design for post-assembly test
* Implemented watchdog
DONE 2019-10-02
* Populated all the TCAN334 breakout boards
* Got basic CAN communicating between two boards, although not at the
correct bitrate, and not FDCAN high bitrates yet
DONE 2019-09-30
* Ordered revised power distribution board from macrofab
* received HK0408 bearings
DONE 2019-09-26
* Got stm32g4 nucleo board running code
* Got FDCAN library running, but need transceivers and more boards to
test
DONE 2019-09-19
* Finished update rate work
* Added support for rezeroing to positions other than nominal
DONE 2019-09-18
* discovered some bootloader flakiness was due to not re-zeroing bss
and stomping on the beginning of BSS while setting interrupts. The
primary symptom was that the boost crc table was left in a corrupt
state, resulting in all crc checks failing
DONE 2019-09-13
* Ordered pre-production bearings
* Implemented ThreadedClient and got initial debugging done
DONE 2019-09-12
* Got C++ moteus_tool flashing things
DONE 2019-09-10
* Bearing selection
* Got basic non-asio client working
* Redesigned register protocol to remove an extra byte from
everything that does 3 values or less
* Started on C++ moteus_tool, so that I can actually flash from the rpi
DONE 2019-09-09
* Sent in PO for gears
* Got something working with the hardware CRC on the STM32. It
required changing the CRC, and w/o DMA still took 64 cycles for a
26 byte CRC. So a bit better than the 210cycle boost software one.
Still, probably not worth re-flashing all the bootloaders for.
* Fixed jitter in control cycle
* Final turnaround time after all firmware side optimizations of
around 80us. Now the biggest limiter is the rpi3 turnaround time
of 120us or so.
* Optimize base::error_code to not allocate strings unless
necessary... like when a message is appended, or it is asked for
DONE 2019-09-08
* Sent request for updated gear quote
DONE 2019-09-07
* Made read multiple use reply multiple
* Tried to improve upon the boost ccitt crc... my hand written
assembly was one instruction slower per byte than boost. :(
DONE 2109-09-06
* Re-order register map so that position, velocity, and feedforward
torque are next to each other
* Re-order so position, velocity, and torque are next to each other
* Reported serial number and firmware version
* Anytime mode is set, clear entire command
* Replaced StaticFunction with something much faster and more conformant
DONE 2019-09-05
* Got custom rotor and stator hopefully in production
* Implemented "dumb" IMU firmware
DONE 2019-08-29
* Sent out initial queries to a bunch of gear mfgrs
* Made up gear drawings
DONE 2019-08-28
* Designed up custom rotor and created dimensioned drawings
DONE 2019-08-27
* Worked on getting a functioning pocketnc program for the sun gear
* Started quoting frameless motors
DONE 2019-06-14
* Tried machining another sun gear holder
* Kept having tool pullout problems
* First was I think on the very first pass, dropped load to 0.2mm
* Second was on another sliver. Discovered
https://forums.autodesk.com/t5/hsm-ideas/adaptive-machining-improvement/idi-p/7090365/page/2#comments
and the undocumented "curve in radius", which when I added an
extra 1mm to it in the "Compare and Edit" dialog, seems to have
much improved the behavior around those thin slivers.
DONE 2019-06-06
* sun gear holder
* refined tool paths, watched start of everything at 1x
* tweaked radial bores to be 0.3mm pitch
* Ordered an aliexpress special enamel wire stripper
DONE 2019-05-14
* Switched position control to be in terms of torque, not current
DONE 2019-05-03
* Brought up pre-charge board, installed in mech. It works!
* Switched all power terms when in position control mode to be in
terms of torque instead of current. Measured torque with my scale
and added a kPi fudge factor to get it to come out right.
DONE 2019-04-26
* Debugged various UART problems with high speed data to get junction
board working with all servos
* Discovered servo 5's encoder calibration had drifted :(
* First walking! (really crappy walking, but walking!)
DONE 2019-04-25
* realized 24V supply never came/got ordered. Ordered another.
* Wired up all motors into the gearbox chassis
* built busbars
* built data wires
* cable management
* Installed suspension strings into test fixture
* Assigned IDs and set up config for all lateral servos
* Identified that the junction board crashes when attempting to talk
to everything at once w/ tview
DONE 2019-04-24
* Made McMaster order
* Assembled gearbox SN4
DONE 2019-04-23
* Finished assembling and calibrating gearbox SN2
* Assembled gearbox SN3
DONE 2019-04-22
* Extracted 4 stators, destroyed 1
* Received 2nd revision of sun gear holder, measured all outer
dimensions
* finished 5th printed parts run
* Mostly assembled a new gearbox using brand new components, recorded
wide and close angle video
DONE 2019-04-20
* Printed more servo plastic parts
DONE 2019-04-19
* Ordered more filament
* Inventoried inserts for servo build
* Turned down 4 more internal gears
* Got mech software to command the servos for the first time, and
kinda walk!
* servo 12 lost was out of electrical phase calibration... maybe it
got bumped?
* Added broadcast address, so we can disable everything with one
command
* Will likely need feedforward current, so that when some legs are
up, we don't sag so much
* 12 lost calibration again with just a tiny bit of
kinda-walking... something is definitely messed up with it
DONE 2019-04-18
* Separated 5 rotors and stators
* Machined out 5 rotors
* Tried to dremel out a stator... got most of the way through, but it
wasn't going to be as clean as the hacksaw was, and still made an
enormous mess. Ordered some aluminum stock I can use to make a
vise fixture, although with stock that could be used to prototype
the other parts.
DONE 2019-04-17
* Unpacked test chassis print
* Printed adapter plate, mounted leg to gearbox
* Mounted gearbox to chassis
* Mounted battery stud into chassis
* Wired up power and one servo to imu_junction r2
* Printed shore power stud for battery terminal... post-machined to
make it actually fit
* Experimented with hot-plugging the battery with the lab supply and
scope... doesn't look like it would survive as is. With 12V, I saw
a spike of up to 20V on the input. And that is with just the
imu_junction board, and no servos. Will need additional
mitigations
* Designed and sent off for mfg a standalone pre-charge
board... maybe will get here in time?
DONE 2019-04-16
* Ordered planet gears, spur gears and sun shafts from sdp-si... only
6 planets in stock... combined with the 3 or 4 misumi ones I have,
I guess that means I can make 4 gearboxes with stuff in stock at
least.
* Sent out revised sun gear holder for mfg
* Fixed remaining outstanding gearbox errata
* designed adapter to go from gearbox to existing 2dof leg, M3 mounting
holes and holes for gearbox shafts, M3 inserts for exiting
brackets
* whittled down battery stud until battery seems to fit decently in
it
* designed up a battery shore plug
DONE 2019-04-15
* Installed controller board into gearbox, basic functionality test
seems A-OK!
* Ordered full quantity of internal gears from KHK
* Ordered full quantity of bearings from vxb (at least first 5) and
aliexpress (for some of the bulk ones)
DONE 2019-04-14
* much assembly and disassembly
* have a gearbox seemingly functional and all assembled minus
soldering the phase wires on and power wires onto a moteus board
DONE 2019-04-12
* received front plate and planet output
* basic measurements taken, parts filed away
* needed to rework outer housing to give more tolerance... it fit
before because both pieces were plastic and shrunk the same
amount, where the aluminum is not shrunk at all
* worked on assembly order and figuring out what fixtures I need to
take it apart again
DONE 2019-04-11
* Measured all sun gear holders
* Shrink fit first sun gear into holder
* Got mjmech building and running on rpi using mjlib
DONE 2019-04-10
* mostly got mjmech working against mjlib
* received sun gear holders
DONE 2019-04-09
* gearbox chassis
* iterated on battery stud contact terminal mount
* started a print of a hopefully working terminal stud
* assembled 8020 robot stand
* briefly tried to jump on the power supply using new frame
* the 25A supply limit isn't really enough to do anything useful
DONE 2019-04-08
* gearbox chassis CAD
* mounted motors to chassis
* Add stiffener to chassis
* Add mounting holes for junction board
* Add mounting holes for turret / compute
* Add mounting holes for lift studs
* Add holes for leg power and data wires
DONE 2019-04-07
* Test printed and fit a cheaper front housing that requires another
external housing... but which can likely be plastic for now.
* Made up 2D drawing and sent for mfg
* Ordered a 3 jaw bearing puller for rotor extraction
DONE 2019-04-05
* Made up 2D drawing of planet output, sent out for mfg
* Discovered that front housing was going to be prohibitively
expensive to get manufactured. Need to rethink how much of it
needs to be metal and how much I can get away with being plastic.
* Much experimentation to find a front housing design that won't
break the budget... likely settling on a central core of
aluminum, with a plastic outer housing and initially a continued
plastic back plate.
DONE 2019-04-04
* Turned down 2x of the 100tooth gears to 55mm
* Test fit the plastic gearbox... sure enough, the plastic flexes
enough that the rotor isn't held away from the stator
* Made a 2D drawing for the sun gear holder and sent it off to be
CNCd as a test article
DONE 2019-04-03
* Finished post-machining rotor, installed sun gear holder
* Did test turn down of 80 tooth gear... seemed OK
* Finished design and printed test battery stud for gearbox chassis,
post-machined some problems, seems to fit and be likely strong
enough at 20% infill
DONE 2019-04-01
* First attempt at drilling out rotor... turns out my biggest bit was
1/2" and I needed 5/8" to get the center stud completely out.
Guess I'll wait for another bit.
* Test fit 100 tooth gear onto mandrel
* Modeled phase wire clamp in 8108 gearbox
* Finished an SDP planet/spur modification to the gearbox, kicked off
a print of all the gearbox parts
DONE 2019-03-30
* Liberated stator from BE8108!
* Received 100 tooth internal gear, started printing mandrel for it
* Named all joints in be8108 f360 model
* Fixed front housing errata
DONE 2019-03-29
* Continued iteration on be8108 gearbox parts
* Ordered an SDP-SI variant of the planets and spur gears, since it
will probably still get here faster
* Wrote up a draft BOM
* Test fit bearings and planets onto plastic parts
* Recorded video for lateral authority problems
DONE 2019-03-28
* Installed tether mount in mech
* Ordered 8020 for mech tether fixture
* Brought up imu junction r2... all seems to work, except the fans I
have cannot be PWMed
* Started work on a junction board r3 to add switching and
pre-charging. It was going to be either annoying, or possibly
toast the 485 transceivers on power up. Decided to try with just a
spark arresting connector for now.
* Printed up first samples of be8108 gearbox parts
* Designed and started printing mandrel to turn down 80 tooth inner
gear, seems like it will work, although will need a custom fixture
to remove the part afterwards
DONE 2019-03-27
* Designed fixture for holding rotor while drilling out
center... kicked off a print
* Ordered mcmaster parts
* Feature complete modeling of the be8108 gearbox
* Ordered shafts (dowel pins for now) for be8108 gearbox
* Ordered all other gears and bearings
DONE 2019-03-26
* Experimented with disassembling a BE8108 and modeling up an
internal gearbox for it
DONE 2019-03-25
* Re-zeroed all servos and fixed yet another bug in the zeroing
code... maybe it is good now?
* Fiddled with lateral servo gains... got it to at least stand
unassisted, although it is unclear if there is sufficient control
bandwidth to walk usefully. Very limited by noise on velocity
measurement.
* Added sleeps to multiplex_tool
DONE 2019-03-24
* Continued work on multiplex reading/writing
* first working console test of multiplex_tool
* Finally identified and fixed why startup offset wasn't always
working, the AS5047 takes up to 10ms to start working
* Implemented stop position and feedforward torque
* Remounted sensors back into correct position on chassis
DONE 2019-03-22
* Work towards asio based multiplex reading/writing
DONE 2019-03-21
* Got flashing over rs485 working!
* Fixed resuming a flash
* Test flashed all 12 servos
DONE 2019-03-20
* Worked on multiplex bootloader
DONE 2019-03-19
* Diagnosed 485 comms problem. Turns out I had failed to properly
assign servo 6 a non-1 ID
* Fixed some other problems that turned up with 12 servos on the bus
at the same time
* Powered all the servos simultaneously for the first time!
DONE 2019-03-18
* Ordered XT30 PCB mount connectors for eval
* Built all robot-wide harnesses
* Mounted all legs onto chassis
DONE 2019-03-17
* Assembled and calibrated all 12 leg motors
* Assembled legs except for pressing the shafts
DONE 2019-03-15
* Populated all 27 remaining r3.1 controller boards
* For one quad's worth of boards
* Installed power leads
* Applied Kapton
* For half of the boards
* Installed bullet connectors and heatshrink
* (ran out of bullet connectors)
* For all motors
* Mounted magnets
* Mounted in brackets
DONE 2019-03-14
* Tried to rework in new regulators on the imu_junction board
* The first one looked fine, but drew no current
* The second one appeared to put 6.6V on the output, so maybe
something was shorted out underneath?
* Oh well, guess I will rev the board here quickly.
* Completed local assembly of controller r3.1 SN 20
* Got it mounted on a motor and calibrated!
* Made McMaster and digikey order
* ordered more 14awg wire and 3.5mm bullet connectors
DONE 2019-03-13
* Worked towards asio and C++ client implementations of the multiplex
register protocol. Much refactoring and importing ensued.
DONE 2019-03-12
* Received full run of controller boards
* Got register server working in the servo, reads and writes from
moteus_tool.py seem to be working fine.
DONE 2019-03-11
* Wired up pi3 bridge, imu_junction board and servos
* Verified I could communicate with servos through pi3 hat and
imu_junction board
* Wrote multiplex register server
* Tried to get moteus into semaphore
* I need python3.6, which they don't have
* Trying to vendor python3.6 seems hard with current bazel, will
wait for 0.24 or 0.25 to see if that fixes it
DONE 2019-03-10
* pi3_hat
* got bridging
* Improved //:host target
DONE 2019-03-08
* imu_junction
* diagnosed errors with resynchronizations
* the stm32 serial driver was taking too long to release the
direction bit, causing a master collision between it and the
servo. Switched direction bit to be turned off in the ISR to get
more consistent timing. Scope shows there is still plenty of
margin (i.e. it isn't being turned off too soon).
* pi3_hat
* got power working, after adding a 100k pullup to regulator EN
line... powered rpi3
* created stub blinken-led firmware
DONE 2019-03-07
* imu_junction
* Fixed numerous software problems. Bridging appears to be working
about as well as necessary now, although still some seeming
corruption that should be investigated
* verified IMU was functional
DONE 2019-03-06
* imu_junction
* Built harness to connect to pi3 485 port
* Discovered there was insufficient input capacitance to hot plug
the board to a power supply through a test lead. :( Doubly so
discovered since both boards regulators are now toast. I have
extra capacitance on one now, and a blue wire attaching in to the
3.3v so that I can bring up the rest of the board while I wait
for more regulators.
* Disabled local echo on connector for RS485-plus4
* Started work on imu_junction firmware. Got basic
telemetry_manager up and running, and sketched out bridge
functionality, but it doesn't work yet.
DONE 2019-03-05
* Created "one leg" panel to be printed on mk3s, kicked off a print
* Repeated endurance tests until I got good video
* Installed inserts into chassis, test mounted bracket and imu junction board
* Test mounted leg to chassis
DONE 2019-03-04
* Re-organized parts
* Ordered self populated digikey parts for controller boards and
gimbal board
* Implemented automatic calibration
* Assembled i3 printed leg w/ new brackets and backplates
DONE 2019-03-03
* Printed draft chassis
* Redesigned upper leg to be printable on i3
* Drafted README.md
* Ordered production belts and one more shaft from sdp-si
DONE 2019-03-02
* Printed draft full leg on prusa
* Updated chassis for inserts instead of nuts
DONE 2019-03-01
* Ordered mcmaster parts for full mech build
DONE 2019-02-27
* Finished rev of gimbal board
* Ordered gimbal board r4 from macrofab
DONE 2019-02-26
* Designed and ordered new controller backplate
* Transcribed latest macrofab part selections back into eagle
DONE 2019-02-25
* More endurance testing... came to conclusion bracket deformation
was causing the shoulder failure. Will test with beefier brackets
once I get the heatsink plates made.
* Ordered production run of controller boards, 28 of them! Sadly, I
will end up populating the same diode, LEDs and JST connectors,
since it saves 3 weeks off the time.
DONE 2019-02-24
* Completed endurance run twice up to 7 minutes... now twice have had
the shoulder joint magnet seemingly go out of calibration. It
looks like it drifts semi-continuously while under load, and once
it gets 0.5*pi out of phase then the jump starts failing. Most
mysterious, since that motor isn't even really being used.
DONE 2019-02-23
* Wrote continuous jumping test driver
* Rewired 485 runs on jumping fixture for improved reliability
* Continuously jumped for over 7 minutes!
DONE 2019-02-22
* Received r3 of controller
* Installed DNP items on both r3 boards
* Installed r3 controller and r3 leg onto jump fixture
* Not sure if it is because of the new HW, but the belt doesn't
track as well now, and rubs against the side of the upper leg
* Jumped new leg a few times
DONE 2019-02-21
* Ordered pi3 hat r2 from macrofab
DONE 2019-02-19
* Ordered imu_junction r1 from macrofab
DONE 2019-02-18
* imu-junction board
* Tweaked dimensions of chassis to let junction board be much larger
* placed all parts of junction board
* routed power and ground and step down switcher
DONE 2019-02-17
* verified that initial position setting was wrapping as expected,
with the current tibia gear ratio, we get about +-0.272 range of
measurement
* started work on IMU junction board... major parts selected and
rough board layout complete
DONE 2019-02-16
* Drafted design of chassis
DONE 2019-02-15
* Ordered next revision of al bracket
* Ordered r3 of mammal leg from shapeways
* Installed backplates on all controllers
* Did jumping experiments... seems like it should be workable
DONE 2019-02-14
* Finished fitting r2 of mammal leg
* Installed al controller backplate
* 6008
* no backplate
* 5A - 35C
* 10A - 47C
* 15A - 65C
* 20A - >70C
* backplate
* 5A - 31C
* 10A - 36C
* 15A - 47C
* 20A - 57C
* 25A - >70C
* backplate w/ thermal paste
* 5A - 32C
* 10A - 35C
* 15A - 40C
* 20A - 47C
* 25A - 59C
* 30A - >70C
* be8108
* backplate with no thermal paste (be8108)
* 5A -
* 10A - 32C
* 15A - 42C
* 20A - 53C
* 25A - >70C
* backplate with thermal paste (be8108)
* 5A - 26C
* 10A - 30C
* 15A - 36C
* 20A - 45C
* 25A - motor got too hot steady state (90W of power)
DONE 2019-02-13
* received r2 of mammal leg
* Wow, it had even more problems than the first revision had
* A lot of dremeling was required to get it to all fit together
DONE 2019-02-11
* Ordered mcmaster parts for full robot build
* Ordered vxb.com parts for full robot build
* Discovered r2 upper leg was missing countersinks... fixed in the
model, will just have to dremel away the first one
* Ordered digikey parts to populate next controller boards
* Did a lot of jump testing... rattled loose bolts holding be8108
controller and be8108 itself.
* Reduced switching noise some by switching to a windowed average
velocity filter and adding a velocity threshold (at the expense of
ringing when nearly stopped). It is unclear this can be any better
without a better encoder or a gear reduction.
DONE 2019-02-10
* finished with r1 leg errata
* ordered r2 leg from shapeways
* ordered r2 belt from sdp-si along with some extra shafts
DONE 2019-02-09
* Fixed most errata in 3d printed parts
DONE 2019-02-08
* Assembled and mounted 3dof leg... maaaybe could be cantilevered?
It is a little wobbly, but it seems like a fair amount of that is
the linear rail carriage flexing. I guess it wouldn't be too hard
to try a 3d printed frame with cantilevered joints, and switch to
one with the far side supported later.
* Ordered first mech's worth of BE8108, Titan 6008, and 2x 5S Lipo
packs
DONE 2019-02-07
* Got animation of leg geometry and torque
* Finished up calculations for mammal geometry
DONE 2019-02-06
* Designed and ordered 20x of the controller backplate
* Started the process of getting full IK equations into jupyter
notebooks for blogging
DONE 2019-02-05
* Ordered 2x of r3 controller board
DONE 2019-02-02
* Installed BE8108 for upper leg motor
* At 0.13/0.13 position (kp=1200)
* 30A - 1.33kgf (0.155 position)
* At 0.1/0.1 position (kp=1200)
* 10A - 0.800kgf
* 20A - 1.30kgf
* 30A - 1.69kgf
* 40A - 1.92kgf
* At 0.05/0.05 position (kp=1200)
* 5A - 0.830kgf
* 10A - 1.30kgf
* 20A - 2.00kgf
* 30A - 2.60kgf
* At 0.02/0.02 position (kp=1200)
* 5A - 1.54kgf
* 10A - 2.00kgf
* 15A - 2.73kgf
* 20A - >3.0kgf
DONE 2019-02-01
* Wired up mammal leg, flashed both boards, and recorded video of it moving
* w/ 50A, max force I was able to get on the plate was about 2.4kgf,
although that still was very sensitive to deflection, as this
geometry is much stronger when nearly straight. An I term or
feedforward force term could make the absolute force arbitrarily
large at the expense of being unable to reject incoming forces.
* At 0.1/0.1 position, got following forces per current
* 10A - 0.52kgf
* 20A - 0.82kgf
* 30A - 1.1kgf
* 40A - 1.25kgf
* At 0.05/0.05 position (kp=1200)
* 10A - 0.82kgf
* 20A - 1.3kgf
* 30A - 1.56kgf
* At 0.02/0.02 position (kp=1200)
* 10A - 1.32kgf
* 20A - 2.02kgf
* 30A - 2.36kgf
* first mammal jump!
* did IK to determine torque requirements for arbitrary force requests
DONE 2019-01-31
* drive strength test at 80kHz, 7A
* 30/60 - 65
* 60/120 - 56.6
* 80/160 - 53.6
* 120/240 - 53.4
* Added CGA5L1X7R1V106K160AC on top of existing caps on SN11, set PWM
rate to 60kHz and control rate to 30kHz. Was able to do 50A
continuous with only 2V ripple on the bus
* Reworked all but one board to double stack the newer caps
DONE 2019-01-30
* Designed and ordered busbar board from oshpark
* Mounted leg sideways to bent plate
* Optimized the PWM sampling code to greatly increase achievable duty
cycle, and added hard monitoring that we are getting the sampling
done before the FETs go high again.
* Measured voltage ripple and temp performance of r2 controller at
40kHz and 80kHz switching frequencies.
* 80kHz w/ 60/120 drive strength
* 5A, temp around 52.0C
* 10A, temp around 66C
* 40A, voltage ripple is about 2.40V
* 40kHz
* 5A, temp around 49.5C
* 10A, temp around 56C
* 20A, voltage ripple is about 1.92V
* 30A, voltage ripple is about 4.2V
* 35A, voltage ripple is about 6V
DONE 2019-01-29
* Received mammal leg parts
* Modified to achieve first fit, recorded errata
* Mounted sn12 and sn13 on the Al brackets
* Calibrated sn13
* Fully assembled leg
DONE 2019-01-27
* Ordered some TDK CGA5L1X7R1V106K160AC 10uF caps, which have a
higher capacitance at a 12V bias voltage than the 22uF ones I had
on the board.
* Wired up scope probes to v+, M3 and debug out, took scope pictures
of voltage ripple at 18A with 40kHz and 80kHz switching.
DONE 2019-01-25
* Fixed D/Q current axis swap
* Discovered that gbx2 motor must have gotten some retaining compound
in the output bearing :( It is now relatively sluggish.
* Got cmdline utility to push calibrations working. Re-flashed and
re-calibrated all boards.
* First shapeways pulley seems at least minimally functional
* Tried jumping with 1kg load again... at 42a current gbx3 (using the
r1 controller), always triggered a GDF fault, on the high side of a
seemingly random phase. I upped the drive current to 120ms, and
tdrive to 2000ns to no avail.
DONE 2019-01-24
* Continued working on cmdline utility
DONE 2019-01-23
* Continued working on cmdline utility that can install
calibrations... first re-implementing the multiplex protocol in
python3 asyncio
DONE 2019-01-21
* Beginnings of auto-calibration
DONE 2019-01-20
* Designed upper leg length: 22.9*math.pi*.5*2 + 114.05*2 = 300.04mm
* Created 6008 leg BOM
* Ordered parts from SDP-SI
* Ordered remaining shapeways parts for direct drive leg
* Ordered direct drive leg bearings from vxb
* Ordered low profile bolts from mcmaster
* Increased velocity filter to reduce noise
DONE 2019-01-19
* Actually applied loctite 680 to gbx2
* Mounted and ran controller against xoar 6008. Maybe? 30A gave
1.02N*m of torque. Probably worth building out a leg to see how
much force it gets on the ground. 40A gave 1.28N*m, 45A gave 1.37N*m
* Got direct drive leg good except for length
DONE 2019-01-18
* Verified desired current rate limiting
* Implemented temperature measurement for r2 controller
* Upped debug baud rate to 5450000 and got bus voltage in the set of data
* Started filtering bus voltage to improve current control stability
* Built up remaining r2 controller boards
DONE 2019-01-17
* Ordered draft bracket for 6008 mount
* Ordered shapeways GT3 pulley test
DONE 2019-01-15
* Designed bracket to mount controller to 6008 and configure them in
a leg-like position
DONE 2019-01-13
* Ordered experimental timing belt and pulleys
DONE 2019-01-12
* Tested torque on MOAR Titan 6008... it is within the realm of
plausible to use it purely direct drive. It produces about 2.5 the
torque of the 3508-580kv for the same current.
DONE 2019-01-11
* Removed ms_i_error stuff
* Ordered more usb cabling
* Built first controller r2, updated firmware to use it
* Installed it in jumping fixture and wired in 422 based debug output
* Jumped with it for the first time!
* Discovered voltage and drv8323 faults were only being checked when
changing modes, not every sample as intended
* Split up the config in bldc_servo so that things that are always
different, like position limits, don't get reset as often.
DONE 2019-01-10
* Tested jumping with 500g and 1000g of weight
* Observed a gate drive fault when trying to jump with 40A of
current, didn't look like the controller actually faulted for it
correctly either
* Ordered another 700g of weights to get to full load
* NLGI #00 grease is too free flowing and leaks out the output
bearing, guess I need to try #0
DONE 2019-01-09
* Fixed gbx3, test fit the new controller mounting plate. It largely
worked, although it turned out there was no viable way to route
phase wires inside enclosure. Just ran them outside for now.
* Tried jumping w/ 0.5kg weight. It worked, but kept tripping the
ms_i_error fault, need to get per-sample tracing working again
* Received r2 control board
DONE 2019-01-07
* Implemented current control fault
* Resoldered gbx3 phase wires on back, inserted bullet in power
lines, tried and failed to use the fully enclosed mounting
hardware.
DONE 2019-01-06
* Removed most of the NLGI#1 grease from both gearboxes and
re-greased with #00.
* Fixtured improved mechanism for holding power and communication
wires to fixture
* Tested out improved position control mode, velocity, nan starting
position, and per-command p and d term scales
DONE 2019-01-05
* Degreased both gbx2 and gbx3 shafts and pinions, re-assembled with
loctite 243 both on set screw and on shaft/pinion interior.
DONE 2019-01-04
* Tried to find a softer way to land... didn't have much luck
* set screw in gbx3 came loose, re-loc-tited
DONE 2019-01-03
* loc-tited set screw in gbx2
* loc-tited screws holding leg to carriage
* weighed 2 motor leg assembly at 600g
* got tview to send simultaneous commands, now hit the top rail
pretty hard with a 35A jump
DONE 2019-01-02
* Ramped up current, at 37A it would ripple up to 54A or so and hit
the top bumper on my linear rail. No problems observed, aside from
it being really hard to keep wires attached. Air time about 450ms
and when retracted legs got 30cm off the ground.
DONE 2019-01-01
* Got FT4232 TTL working
* Got debug port working at 5mbps
* Added feedforward velocity term
* More control tuning
* Got 27A jump that seemed to track just fine with no anomalies
DONE 2018-12-28
* Ordered FT4232 422 and TTL adapters
* Ordered discretes for controller r2
DONE 2018-12-27
* Wrote tool to validate absolute encoder algorithm
DONE 2018-12-21
* Got absolute position board reading ADC values
* Ordered r2 of controller board from macrofab
* Successfully installed new drv8323 on gbx3!
* Got leg jumping again!
DONE 2018-12-19
* Fixed a number of controller board errata
DONE 2018-12-18
* Tried to replace drv8323, failed. Will try again with better
supplies
DONE 2018-12-14
* Re-installed spur gear
* Seemed to have likely exploded gbx3's drv8323
* Ordered some spare drv8323
* Built first absolute position board
* Started writing firmware for absolute position board, got blinken
light working
DONE 2018-12-13
* Re-assembled everything, got 400ms of air time
* Kept getting persistent vds faults on gbx 2
* Also set screw for gbx2 spur gear came loose, need to reinstall
with loctite
DONE 2018-12-09
* Try a feedforward in current loop
* Optimize current measurement noise
* Tune current control loop
* Switched around gains to support more than 40A. Was stable up to
55A, but 60A looked like the controller wasn't liking itself no
matter what gains I set.
DONE 2018-12-08
* Got motor de-powered for many software faults
* Tracked down remaining jitter to mbed Timer class.
* Configured to not use the RTOS, since we didn't really need it
DONE 2018-12-07
* Designed and ordered from shapeways new back housing and controller
board mount
* Added actual state machine and sequenced startup
* Added a full rate debug spew and a simple tool to plot it to tune
current controller
DONE 2018-12-05
* Ordered digikey parts for absolute position sensing board
* Ordered 8020 for jumping fixture
* Ordered neoprene mat for jumping fixture
DONE 2018-12-04
* Made and ordered absolute position sensing board from osh park
DONE 2018-12-03
* Ordered leg sample from shapeways
DONE 2018-12-01
* First jump!
DONE 2018-11-30
* Got 485 serial based transport and tview working
* Built second motor and controller
DONE 2018-11-23
* unwrapped encoder position
DONE 2018-11-22
* Reported out D/Q currents
* Got D/Q current control working
DONE 2018-11-21
* Got phase currents to be metricly correct
* Configured DRV8323
* Implemented AS5047 interface
* Glued inner ring into gearbox
* Put at least *some* grease in gearbox, unclear if it is sufficient
* At 10A phase current, got about 0.8N*m of torque out
DONE 2018-11-20
* Wrote board bringup class
* Functions tested
* LEDs
* AS5047 position
* Debug serial
* DRV8323 SPI
* DRV8323 flag lines
* RS485 out
* DRV8323 class
* First power through the motor!
DONE 2018-11-19
* Got all infrastructure pieces ported to bazel
* Got tview working!
* Powered up and programmed board for the first time!
* Built test harnesses for board
DONE 2018-11-17
* Got rules_mbed working in target and host mode
* Drafted blog post
DONE 2018-11-11
* Built leg jumping fixture
* First version of bazel mbed rules complete
DONE 2018-11-08
* Got CommandManager working
DONE 2018-11-07
* Ordered legs on 3dhubs
* Ordered ZH connectors
DONE 2018-11-06
* Mostly designed leg
* Ordered carriage rail and rs485 adapter from amazon
DONE 2018-11-05
* Updated gearbox dimensions for r3
* Ordered r3 of gearbox from shapeways
* Started work on leg
* Ordered angular contact bearings for leg
DONE 2018-11-04
* Got down to 20 unique parts
* Reviewed STM32 and DRV8323 design notes
* Iterated on MF quoting to fix other minor layout and silk problems
* Ordered r1 of controller from macrofab
DONE 2018-11-03
* Verified PWM and ADC channels work on nucleo
* annotated all MPNs
DONE 2018-11-02
* Controller board
* Board outline drawn
* All parts fit within outline
* Power routed
* Silks resized and rough placed
* power copper on bottom for heat transfer
* title / version silk
* labels for connector pins
* verified PWM works on TIM2 (ADC not yet verified)
DONE 2018-11-01
* Controller board
* All major parts in schematic
DONE 2018-10-26
* Got DMA based UART transmit working
* Got DMA based UART receive working
DONE 2018-10-24
* Finished updating gearbox with errata and bearing fit sizes
* Ordered r2 of gearbox from shapeways
DONE 2018-10-20
* Mounted gearbox to test plate
* Mounted delrin plate to output shaft
* Moderately hurt my finger when the VESC position mode control went bonkers
* Measured torque at 1.5kg at 19cm, so 28.5kgf * cm, or 2.79 N*m,
current on lab supply got up to 13A at 12V and motor got *very* hot
* Ordered shapeways dimensional tests for each press fit interface
* Ordered 2x of all necessary gears at sdp-si
* Ordered 2x of all necessary gears at vxb.com
DONE 2018-10-19
* Received AS5047 breakout, verified that it works with a bus pirate
* Got AS5047 reading from the VESC
* Wrote DMA based uart, untested on HW so far
* assembled gearbox, with much dremeling
DONE 2018-10-17
* Wrote string_span and string_view
* Got some kind of test coverage, although apparently can't do host
based unit test coverage with mbed
* Wrote async_stream
DONE 2018-10-16
* Received flat head screws for gearbox-3508 mount
DONE 2018-10-12
* made flats on shaft
* assembled shaft into 3508 with sdp-si spur gear
* Modeled 3508 motor in freecad
* Designed sensor mount
* Ordered sensor mount from shapeways
* Wired and powered up new VESC
* Fixed ubuntu arm newlib so I can build firmware images
DONE 2018-10-11
* Redrew planetary output stage with master sketch
* Redrew 1st housing with master sketch for outside perimeter
* Add lips to planet carriers to contact bearing sides
* Design housing clamping mechanism
* Design mount to stick two together in a leg
* Design control board mount
* Design magnetometer board mount
* Ordered gearbox from shapeways
* Order grease for gearbox
* Ordered input and output bearings
DONE 2018-10-10
* SDP-SI shaft fits in motor bearing
* Test fit SDP-SI gear assembly
DONE 2018-10-09
* Ordered micrometer
* Ordered SDP-SI gearset
DONE 2018-10-01
* Ordered gear design book
DONE 2018-09-30
* Ordered VESC v6 w/ SPI connector
* Ordered AS5047 breakout
* Built jig to pull motors, tested extracting a shaft from the 4112
motor
* Pulled shaft from 3508
* Ordered more 3508s
* Ordered 4mm shaft for 3508
DONE 2018-09-27
* Get VESC to drive the 3508
* Get VESC FOC mode to work in sensorless configuration
DONE 2018-09-26
* Mounted the 3508 motors for unloaded test stand operation
* Build cables to attach smaller motors to VESC
DONE 2018-09-24
* Build permanent cable from power supply to VESC
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。