140 likes | 253 Views
How to “Build” a Robotic System and The Neuroscience We can do With Robotics. Joseph T. Francis. Robotic Systems. Build a simple robotic system for a rat 1-D What we need to build a 2-D system for motor control experiments. Describe a system made for Haptics, 3-D phantom interface.
E N D
How to “Build” a Robotic Systemand The Neuroscience We can do With Robotics Joseph T. Francis
Robotic Systems • Build a simple robotic system for a rat 1-D • What we need to build a 2-D system for motor control experiments. • Describe a system made for Haptics, 3-D phantom interface.
A control system Something to control, we are going to use torque motors What signal do we control? Encoders Current control? Position control? Computer system and language to use. What do we need
EncodersOur robots don’t have eyes, only proprioception • Give us position of the motor axis. • Two types that are used • Absolute: Each tick has a “name” Don’t need to recalibrate each time you start. • Incremental: All ticks have the same name we only know how many we have moved.
What Type of controller? • In our application we will use current control = torque control. We can also do software position control. • In industry you often would like hardware position control for automation.
Internal models • Brains behind a control system • Desired trajectory
What signal do we control?ForForce Field and Haptics • We will use the encoders to determine the distance from a point (spring force field) • The velocity of the Endpoint (hand or paw) to generate viscous force fields. • Haptic Simulation: Position to determine when we have touched an object in our haptic simulation
Computer system and language to use • Matlab, labview are nice and cute, but they take control away from you! • Now Matlab has a real time kernel (xPC Target) • C++ and MFC. Almost any piece of hardware you get will have a C++ .dll That comes with it.
How Real will our “Real Time” need to be??? • The answer to this question can make your life easy, or put you in a home. • If less than 100Hz no problem use windows. If it must be faster than a couple hundred Hz with no exceptions Windows CAN NOT BE USED. Try linex, unix, etc...
Hints for Windows • Use a multi-threaded architecture • Use the Set thread priority function • Write your own CWinApp::Run() and use the QueryPerformanceFrequancy, and QueryPerformanceCounter, Not Timers!
1-D System For Rats 1k$ • Must be Very low weight, and almost no inertia, Thus we use a Brush motor. • C++ and the .dll from Maxon to control torque, National inst board and .dll to control Water reward system.
2-D System 75-80k$ • Motors that are strong enough to produce a large amount of force for pulse perturbations • Stall torque, max torque, and time constants of the motor
Safety • You must keep the system from injuring your subjects! • Hardware kill of system • Software boundaries as safe guards Max Vel and Position.
3-D Haptic System 20-70k • Must have a fast control Loop 1000Hz for dealing with edges • Saving data during the control loop is a real problem when using the “Ghost” software that comes with a phantom system