Robotics and 3D printing are closely interrelated: they share many core technologies, 3D printers and CNC machines are commonly used to build new parts for robots, and our long-term goal of a truly self-replicating machine must have robotics for processing raw materials and assembling finished parts.
Shared between robotics and reprap:
- Computational geometry calculations: 3D motion control, path planning. Robotics often does some computational geometry online, while repraps do gcode-type slicing and tool path planning prior to starting the print.
- Hardware: motors, gearing, position feedback, control electronics.
- Open-Source Hardware: The field of robotics can benefit from the open exchange of ideas and code that has made 3D printing a successful popular movement.
If you attach a tool head to a mobile robot, you have a walking reprap:
- 2014 Minibuilders from Institute for Advanced Architecture of Catalonia (IAAC) uses tiny robots that drive on the printed structure as they build it.
- 2019 MARSHA is a PLA and basalt fiber 3D printer head on a robot arm, for printing architectural-scale buildings, including automated drop-in windows.
- Hexapod CNC is a walking robot CNC plotter / router.
- Mobile Robots
- The simplest statically stable mobility approach uses two drive wheels and one caster wheel, with differential drive for turning. A Sphero robot is essentially this configuration encased inside a plastic ball.
- On rougher terrain, four or more drive wheels are more reliable. Differential drive turning becomes more difficult with more wheels however, especially with a narrow track relative to the wheelbase, and may require turning the wheels for steering.
- The six-wheel rocker bogie approach essentially averages terrain variations, allowing very rough terrain to be traversed.
- Drive tracks have more ground contact area than wheels, allowing lower ground pressure and steeper inclines.
- Mobile Robot Platforms
- The iRobot Roomba is a ground robot with two drive wheels. The maker-focused iRobot Create platform takes TTL serial commands and provides basic mobility, a battery, battery management and charge circuits, and proximity and bump sensors for $200.
- Jasmine Swarm Robot is a two-wheel platform less than 30mm across, using AVR atmega168v.
- Humanoid robots are very capable, but their control problems are also very complex.
- Reconfigurable robots can solve unexpected problems by reattaching their parts in new configurations.
- Mining_Robots manipulate materials, including feedstock.
See also the Motor_FAQ
- A servo combines a motor and control electronics to provide closed-loop position control. Radio control servos are very common, but usually have limited torque and inaccurate angular position control.
- Stepper motors controllers drive a stepper_motor, which are very precise and widely available, but have limited speed and torque. They mount to a square face, standardized as NEMA sizes.
- Brushless Motor Controllers drive permanent magnet three-phase motors, which produce less electrical noise and arcing than brushed motors, and are available in a variety of sizes for model aircraft.
- Traditional RC brushless motor controllers use 'sensorless vector' control, which is only feasible for smooth inertial systems like aircraft props, and will lose steps when the load is not smooth.
- Brushless motors for robot applications typically require a sensored motor controller, such as Trystan Lea's open BLDC controller.
- Brushed DC motors have excellent power-to-weight ratio.
- Their torque drops off linearly with speed, making their maximum power point at peak RPM/2. This is often several thousand RPM, requiring a gearbox reduction for most robotics applications.
- Surprisingly robust and high performance brushed DC motors and gearboxes are available as spare parts for children's electric vehicles like PowerWheels.
- "550" is a semi-standard brushed DC motor size, a round can of approx 36mm diameter, with two M3 bolts in the face 25mm apart. At 24V, the stall current is about 100A and the torque is incredible, but the motor windings will melt in approximately one second at stall.
- Brushed DC motor controllers PWM-chop the motor input power allowing torque control, and can reverse the current flowing through their windings (via an H configuration, an "H bridge").
- The L298 is an inexpensive chip with a dual H bridge capable of driving two motors at 3A below 24V.
- BTN7960B / BTS7960B motor controllers support up to 40 amps and 24VDC. They tie the logic ground to the motor ground, which injects motor noise onto the logic ground plane, and will destroy logic side components if the motor ground comes unplugged.
- RoboClaw motor controllers are available from 7A to 160A versions.
- Sabertooth motor controllers are reliable but expensive and closed source.
- UN178 motor controllers are rated for 100A continuous and 48VDC operation, and are fully opto isolated. However, they are not available from a branded vendor, the boards are labelled in Chinese, and you must pulse the PWM inputs (duty cycle cannot equal 100%, 99.9% is OK) or else they turn off.
- A mobile robot requires onboard batteries. MIT has a good battery terminology overview
- Lithium Polymer batteries ("LiPo") used in model aircraft have excellent electrical properties, but will be permanently physically damaged if over-discharged, and can emit fire if over-charged or mechanically punctured. Due to the fire danger, it can be difficult to ship LiPo batteries; in passenger aircraft spare LiPo over 160Wh cannot be checked or carried onboard.
- Lithium Iron Phosphate batteries ("LiFePo") are safer, but have slightly lower performance than LiPo batteries.
- Nickel-Cadmium ("NiCad") batteries have reasonable discharge rate, but are heavier, lower capacity, and more self-discharge than lithium batteries.
- Lead-acid batteries have good instantaneous discharge power, but low total discharge energy, and are very heavy for their energy. Unlike most other batteries, their amp-hour ratings are for expendable use, not reusable.
- Most robots must be connected to the power grid to charge their batteries. This is traditionally done by removing the batteries and manually charging them, but "drive-up" charging can be done via external contacts.
- Milliwatt levels of energy can be 'harvested' from vibration via piezoelectric transducers, or by rectifying ambient radio energy.
- Solar panels are useful, although they won't work at night, and work poorly indoors or on cloudy days. It is difficult to provide more than a few hundred watts to a mobile robot via solar.
- Nuclear radiothermal generators are used at the kilowatt level and above.
- Raw hardware devices typically use a simple level-triggered one wire 'protocol'.
- Pulse Width Modulation (PWM) changes the percent on time of a one wire signal. Simple motor controllers often use the duty cycle to control the motor power. Radio controlled (R/C) motor controllers often use the RC servo protocol that varies the pulse width from 1ms (full off) to 2ms (full on).
- Serial communication sends bits one at a time down one wire, with pre-agreed baud rate, binary data format, and voltage range. Dedicated wires are required for TX and RX.
- I2C and SMBus use a shared ground and two digital wires to exchange data with peripherals.
- CANopen sends CANbus messages using open-source hardware and software.
- Control Boards
- Arduino (AVR atmega) are microcontrollers with a useful standard library. All peripherals are at the raw wire level.
- Raspberry Pi are GHz ARM boards capable of running Linux, with normal USB-2.0 peripherals, and a full network including wifi and ethernet, while still supporting wired GPIO pins and a direct camera interface.
- Noduino is a smart, small and cheap board for robotic actuators and sensors, including CAN support ( WIP ).
- Many robots use a custom control stack written in Python or C++.
- Robot Operating System (ROS) is a complex but full featured Linux based open source robot control stack.
- Simulink has a variety of tools for solving complex control problems in real and simulated robots. Closed source.
- NVIDIA's Isaac is a graphical robot simulation environment.
- Blender can be used as the central robot control software, see work by Dr Herman Bruyninckx.
- http://people.mech.kuleuven.be/~bruyninc/robotstandards/ host 2 very interesting papers.
- http://www.orocos.org use blender for robotics and machines , very interesting framework started by Dr Bruyninckx.
- http://colladablender.illusoft.com/cms/content/blogsection/6/45/ Collada 1.4.0 Plug-in for Blender
- http://www.blendernation.com/2006/07/13/3d-milling-using-blender/ they do it !