资源说明:control program for the quadruped (quadrapod?)
Version 0.7 XYZ/rotanional control for 4 connected 3DOF legs with gtk gui .___.X.___. ./ \. | | note: the firmwares running on the controling hardware are in the usbtoI2c and servocontroller repositories. This repository contains the code that runs on the pc, doing the inverse kinematics and providing a human interface. CONTROLS keyboard: 'q' : disconnect timeout routine, resulting in no more controller polling. wasd : change both leg endPoints (up left down right) WASD : change single leg endPoint (leg dictated by the button with the arrow on it, click to switch) zx : change z for all legs tfgh : rotate main body around z axis (tg) or y axis (fh) '`' : reset and reconnect usb. any key will refresh the actual servo positions stored in the device. controller: Rx = x of target Ry = z of target Ly = y of target target = center of body (all 4 legs at the same time) or one leg deterermined by the shoulderbutton that's being held down R1 = leg 1 L1 = leg 2 R2 = leg 3 L2 = leg 4 Dpad: same as tfgh Dpad with X held: rotate along x axis start: reset select: step through sequence triangle: set analog mode for controller (red led on the controller) NOTES: ---------------------------------- WINDOWS (minGW) compiling 32-bit gtk under 64 bit windows is a pain, so support is dropped for now. g++ (4 or higher) libgmp libmpc libmpfr gcc-core gsl libraries: http://gnuwin32.sourceforge.net/packages/gsl.htm change switch $(LINUX) with $(WINDOWS) in the makefile note: some timings are wrong on windows atm, making input slow 32BITS: the gsl libraries are 64 bit, so you'll have to build those yourself. changelog: ------------------------------------------ fixes in 0.3: -solver had a typo in one of the fomulas. -neither of the legs will move if one of them can't. changes in 0.4: -added playstation controller class to parse psdata from usbtoi2c -added visual feedback of controller state -added incemental stick control form the right analog stick -fixed some issues with assigning angles to the servos changes in 0.5: -development files have been organized -most/all positional information stored in vectors -rotational matrix implemented -expanded control scheme -added accelerometer, discontinued for now -added kalman filter, discontinued for now changes in 0.6 -fixed massive bugs in solver, I can't believe it actually worked as long as it did -added two more legs -changed servo layout due to rebuild of physical quadruped -removed most debug output changes in 0.7 -added top-down view -added graph area -circuit diagrams available -kalman filter available TODO -add load save hardware functions -add angle label to interface -add horizon circles for angles from accelerometer -create interface to select/deselect legs and move as group -cleanup CGtk -accelerometer filter interface + graph (new class)
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。