Saturday, October 29, 2011

Technic TGB Racing Car


Finally, after several weeks of development frequently interrupted by all sorts of distractions, the TGB is finished. This is the largest Technic car I have built so far. Though not intended as a replica of a real-world car, its component layout and some proportions are very loosely based around the legendary Ferrari 288 GTO ― and hence its name: "TGB" is "GTO" scrambled through ROT-13.
Length: 66 studs
Width: 29 studs (34 including mirrors)
Height: 16.5 studs (bodywork only: 15 studs)
Weight: 2.38 kg
Suspension: Full independent, with front toe-in
Power: PF, 2x Battery pack
Drive: 1x PF XL motor (remote), RWD
Steering: 1x PF M motor (remote) with working steering wheel, Ackermann
Features:
  • V12 mid-mounted engine
  • 6-speed synchronized gearbox
  • pneumatically liftable nose (with motorized pump)
  • handbrake
  • remotely operable headlights
  • remotely moveable rear wing
  • openable spring-loaded bonnet
  • toolbox
Lego-Technic_TGB-Supercar_Show2Obviously, instead of forming the entire bodywork with panels, I've rather opted for the old-school rough contoured approach using beams and a couple of soft-axles. The model is built completely with studless parts, with sole exception being the rear lights that rely on studded transparent cylinders.
The engine and gearbox consist of standard Technic parts for the purpose: cylinder blocks, pistons and cranks in the engine, and three dog-rings (for six gears) moveable with a stick in the familiar H-pattern for the gearbox. At the final stage there is a standard Technic differential. The car is driven by a single PF XL motor connected to the engine crankshaft, but due to large car weight and many transmission components that introduce significant torque, it isn't blindingly fast.
Independent suspension and its rear half-axles are based on parts from the 8070 Super Car, though with "artificially" extended arms to comply to the desired total chassis width and allow the larger moving extents. Height of the front suspension is determined by two parallel pneumatic cylinders that control the total height of the chassis at the front, but due to the compressibility of air, front wheels can still move with a degree of independency ― and the pneumatic cylinders even provide some damping and elasticity. To raise the car nose, the air is pumped into the cylinders with an onboard motorized pump controlled by the levers in the cockpit. Only the compression is required; when the switch is flicked in the opposite direction, the weight of the car lowers the chassis (compresses the cylinders) itself. The rear suspension is rather standard, with only two soft (light grey) springs per wheel. That is intentional: it lets the car sink approximately 3/4 of total spring extents, for a more realistic and low-laid sporty look.
imageSteering is based on a typical rack & pinion system, connected through a clutch gear both to a remotely controlled PF medium motor and a steering wheel. One more control available to the driver is the handbrake, positioned to the left of his seat (just like some old Lamborghinis). There wasn't enough space to cram the brakes into the wheels, so it actually pushes a beam against a small rubber wheel attached to the main driveshaft.
Headlights employ standard PF lights (one pair apiece), and the primary concern around them was ensuring that kilometers of their cables do not interfere with the nearby mechanics (suspension and steering). The rear lights are just decorational, but the wing above them isn't: it can raise about 4 studs from its resting cradle which is flush with the bodywork. It is attached to a pair of beams lifted by a PF medium motor placed under the engine. To prevent the motor from stalling when the wing reaches its end positions, a variant of Sariel's 6x1x1 clutch is used.
Lego-Technic_TGB-Supercar_Show1Along with drive and steering motors, headlights and the rear wing occupy four available remote control receiver ports, while the suspension pneumatic pump can be operated only locally, through the cockpit levers. The power is provided by two PF battery packs ahead of the rear wheels, to spread the thirsty motors' consumption a bit.
As one would expect, the bonnet can be opened to expose the engine and ease the way to the PF batteries, and is spring-loaded in both directions to keep it either firmly shut, or open. Finally, just behind the rear left wheel is a tiny gimmick - an openable compartment with two System-type wrenches.
Despite it incurring some mechanical compromises, I've managed to keep the chassis bottom completely flat (without any protruding studs or gears), the weight distribution close to 50/50 (in fact, it's 48F/52R, but I can live with that), and reasonably small turning circle.  Also perhaps worth noting is a little bit of toe-in on the front wheels.
In general, I am mildly satisfied with how the car turned out, but still I find some of its segments less successful. Here's what should, in my opinion, have been better:
    Lego-Technic_TGB-Supercar_Show4
  • Bodywork design. I've never had a surplus of designer or visual art talent. Having changed and re-changed it several times, I've half-heartedly settled on this final bodywork visible on the photos, but I'm still convinced it could be significanly better.
  • Pneumatic pump. It is awkwardly placed and based on an XL motor far too cumbersome for the task. As it was one of the final components, by then I've had no alternative regarding these two parameters, but really it should have been considered in more detail during the planning stage.
  • Chassis strength. Despite relying on well-pinned four beams throughout the most of its length, the chassis still bends a few millimeters under the car weight. The roof should have been given a structurally more important role.
  • Gearbox dimensions. Being 7 studs wide, the gearbox pushed the seats far too wide apart. Future designs should perhaps place it somewhere in the engine bay, and have it controlled from the cabin with control axles or even flex system.
These remarks will serve as guidelines for the next Technic car. Other features I'm considering, which this car lacks, are power steering, automatic or sequential gearbox, a full set of disc brakes that also engage the brake lights at the rear, and suspension with (perhaps adjustable?) camber.
Basic views
Lego-Technic_TGB-Supercar_Const-Back Lego-Technic_TGB-Supercar_Const-Bottom Lego-Technic_TGB-Supercar_Const-Front Lego-Technic_TGB-Supercar_Const-SideLego-Technic_TGB-Supercar_Const-Top 
Details
Lego-Technic_TGB-Supercar_Func-Bonnet Lego-Technic_TGB-Supercar_Func-Brake Lego-Technic_TGB-Supercar_Func-FrontSuspension Lego-Technic_TGB-Supercar_Func-Headlights Lego-Technic_TGB-Supercar_Func-Levers Lego-Technic_TGB-Supercar_Func-Nose Lego-Technic_TGB-Supercar_Func-RearSuspension Lego-Technic_TGB-Supercar_Func-Wing
Genesis
Lego-Technic_TGB-Supercar_Progression1 Lego-Technic_TGB-Supercar_Progression2 Lego-Technic_TGB-Supercar_Progression3 Lego-Technic_TGB-Supercar_Progression4 Lego-Technic_TGB-Supercar_Progression5 image image
Video

Saturday, October 15, 2011

Unsolved (or at least not elegantly solved) problem: Power steering

Excuses for a lengthy delay ― a bit of holidays (and then catching up with lots of work meanwhile accumulated) interrupted the posting routine. While I'm toying with a Lego project for which I hope to put a text together in near future, I got intrigued by a problem of simple yet effective Technic power steering.

Sounds simple on the surface, doesn't it? Attach some kind of force meter (probably a differential with a spring) between the rack's pinion and the steering wheel, power the axle with a motor if a given threshold of force is exceeded, and you've got your power steering. Looking something like this (here implemented with NXT rather than Power Functions, but the working principle is the same):

powersteering

So, as you can see, an arm sufficiently tilted by a differential when the force between the pinion (at the top) and the steering wheel (bottom) becomes large enough, will push on one of the mechanical sensors, depending on the rotation direction. The motor will start spinning accordingly and thus assisting the steering wheel, as long as there is force between the pinion and the steering wheel. When it's gone, the arm will return to the neutral position between the sensors and the motor will interject no longer.

In its basic principle, this does work as a power steering ― it will assist in rotating the pinion against significant resistance, and not activate unless the pinion is resisting the motion set by the steering wheel, or vice versa. Yippee, problem solved, and we can return to playing Portal 2.

No, not really. The trouble is that this sort of system doesn't even remotely provide the continuous and soft feel which it should. It works far too jerky: once the motor threshold is reached, its abrupt intrusion easily turns (and over-turns) the steering wheel and the pinion in the desired direction, releases the arm, and stops. Nothing like the smooth operation found in real cars.

The basic problem here is in the binary operation of the motors and sensors. It can either be on and off, while a smoothly working power steering should have a range of intermediate levels, keeping the motor force proportional to the wheel-pinion tension, and yet sensitive enough to start at low thresholds.

One method could rely on a gradient colour disk being spun according to the tension instead of a pusher arm, which is in turn scanned by an NXT colour sensor. It could determine the force with greater precision and thus run the NXT motor with different power, as required. But this approach would be unacceptably complicated and cumbersome, especially if we confine the project only to standard Lego parts ― in which case building the gradient colour disk would be even more complicated. After all, this system should easily fit in the front of a medium-sized Technic car (say, 8070), and yet keep enough room for the steering, suspension, etc.

Ideas? Post them in the comments if you've got any. If I come up with something, I'll add an update :)