robot-control
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明: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)





本源码包内暂不包含可直接显示的源代码文件,请下载源码包。