Design of Modular Snake Robot
Design of Modular Snake Robot
29 - Nov 2, 2007
WeD4.6
Abstract Many factors such as size, power, and weight constrain the design of modular snake robots. Meeting these constraints requires implementing a complex mechanical and electrical architecture. Here we present our solution, which involves the construction of sixteen aluminum modules and creation of the Super Servo, a modied hobby servo. To create the Super Servo, we have replaced the electronics in a hobby servo, adding such components as sensors to monitor current and temperature, a communications bus, and a programmable microcontroller. Any robust solution must also protect components from hazardous environments such as sand and brush. To resolve this problem we insert the robots into skins that cover their surface. Functions such as climbing the inside and outside of a pipe add a new dimension of interaction. Thus we attach a compliant, high-friction material to every module, which assists in tasks that require gripping. This combination of the mechanical and electrical architectures results in a robust and versatile robot.
I. INTRODUCTION Snake robots are a class of hyper-redundant mechanisms that locomote through internal shape changes. Snake robots unique shape and ability to navigate highly variable environments, such as the pipe in Figure 1, make them suitable for urban search and rescue missions. There are also various military uses. However, only strong, well-designed, and reliable robots will be useful for these tasks. We have designed a modular architecture that allows for both a wide range of gaits and resilience to failures. This architecture incorporates a well-rened mechanical design coupled with advanced electronics and software. These design requirements have led to the development of the versatile Super Servo which proactively preserves itself as it monitors its internal status. This combination allows the robots to effectively perform their tasks. We considered common failures in other modular snake robots and designed accordingly. II. RELATED WORKS Recently, especially within the past decade, interest in redundant modular robotic systems has increased. These systems have certain advantages such as low cost, robustness, and versatility [1]. The potential for mass production allows for a cost-effective robot. Redundancy provides robustness; the failure of one module does not cause general failure of the system. Versatility comes from the non-specic nature of the system. The applications of these features have sparked a fascination with the modular robotic systems. Not surprisingly, the particular snake robot architecture discussed in this paper has a number of similarities to systems under development elsewhere. Some of the most
Fig. 1.
pertinent research includes that of Mark Yim from Xerox PARC laboratories. Other relevant projects include Khoshnevis CONRO robots from Information Science Institute at the University of Southern California, Muratas selfrecongurable robots, Borensteins OmniTread and OmniPede, and the Millibot Train developed at Carnegie Mellon University. Mark Yims PolyBots [2] are versatile modular robotic systems that feature one degree of freedom joints and several connecting ports per module. The interchangeable modules allow the robot to support a number of congurations which include snake, spider, and rolling modes. Each module contains a Motorola PowerPC processor. The communications system uses the CAN standard with two CAN buses per module. Each module can also share power and signal through the connecting plate. Sensors include an accelerometer, potentiometer, tactile whiskers, and hall effect sensors. Another related project is the CONRO study from University of Southern California [3]. These versatile robots support legged or snake-like robot congurations. Three serially connected joints make up each module, allowing for limited motion. Each module can be docked with any other module on any of ve sides. The modules include sensors, actuators, and microprocessors. They also have a built-in
2609
infrared communication link, which provides inter-module communication and helps guide the docking process. One of the more recent forays into the realm of snakelike robot research comes from the University of Michigan, where Johann Borenstein and his team [4] have created a treaded serpentine robot called OmniTread and a legged serpentine robot called OmniPede. Two-DOF pneumatically actuated universal joints connect ve modules. Each of the four-sided modules have two treads per side and a universal joint in the center of the module at either end. Borenstein makes a distinction between snake robots and serpentine robots. Borenstein and his team dene the former as a modular robot that is propelled by motion of the joints relative to each other; they dene the latter as a modular robot propelled by components such as wheels, legs, or treads [4]. By this denition, our robots are snake robots, while OmniPede and OmniTread are both serpentine robots. One focus in the Carnegie Mellon University Biorobotics Labs research is a particular subclass of modular robotic systems known as self-recongurable robotic systems. Murata et al. [5] divided this into two subclass topics: lattice type robots and string type robots. The later division includes both serpentine and snake robots. The lattice type systems, dened by their spatial symmetry when interacting, have limited motion generation capabilities but make up for it with their easy recongurability. In contrast, string type robots, consisting of modules concatenated by a joint, can generate a wide range of motions, but have trouble reconguring themselves. The Carnegie Mellon University Biorobotics Lab has focused on such snake robots in previous years. While not traditional snake robots, the Millibots developed at Carnegie Mellon University have a modular design as well [6]. Like snake robot modules, these small, batteryoperated robots work together in groups to achieve a larger goal. Instead of modules equipped with identical sensors, the Millibots are each individually equipped with a specialized sensor array. The modules move independently on treads or wheels, have radio communications devices, and a wide variety of sensors. By sharing this sensor data, the robot system can perform a more sophisticated analysis of its environment, in a manner similar to how multiple modules of a snake robot can work together to navigate terrain. III. MECHANICAL OVERVIEW The presented design is the most recent of a series of iterations. Initially the modular snake robots consisted of laser-cut plastic modules with parallel joint axes, restricting the snakes movement to only two dimensions. While able to effectively climb channels consisting of two parallel walls, this conguration proved too limited for more complex tasks. To solve this problem, we redesigned the robot with each modules axis of rotation rotated ninety degrees from the previous module. Because the snake robot could move in all three dimensions, many more gaits and behaviors became possible. Next we strengthened the design by switching to aluminum modules and higher-torque servos. We made the modules from bent CNC milled sheet metal and added a
circuit board to the servo for RS485 communication. In the current design, we mill the modules from solid aluminum and replace all of the servo electronics. Figure 2 shows this progression, with oldest robots at the bottom of the picture progressing to the newest at the top.
Fig. 2. Progression of modular snake robot development - older robots are at the bottom of the image.
The primary mechanical component of the snake is the module. Each module functions as a single rotational joint with one degree of freedom. We assemble the modules such that each modules axis of rotation is perpendicular to the length of the snake and rotated 90 degrees from the previous module. The modules are divided into two groups based on their axis: lateral and vertical degrees of freedom with respect to the terrain. To locomote, the robot typically relies on the shape changes generated by a discretely sampled sinusoidal wave moving through groups of modules with time. Every module is assigned a different angle of the sine wave and the sine wave propagates along the snake to cause the motion. A companion paper [7] gives a much more thorough description of snake robot locomotion. To create motion mechanically there must be a certain amount of torque applied to every joint to hold the specied angles in each module as well as enough structural integrity to resist the forces applied to the snake from the terrain. A. Servos The primary component within the module is the servo. The servo is a mechanism designed to control one degree of freedom in each module. Our design relies on heavily modied Hitec HS-5955TG servos. Servos utilize an electric motor, a gear train, and electronics to control the motor according to outside commands. The output shaft protrudes from the servo and has a range of motion between -90 and +90 degrees relative to center in .35 degree increments. The modied servo is capable of rotating 360 degrees, but the mechanism limits its range of motion to 180 degrees. The module is a joint in which the servo creates half of
2610
the structure and provides the torque to move and maintain angles while resisting forces from the environment. B. Modules To complete the other half of the joint we created a component, called the U case, which attaches to the output arm. As the name implies, the U case is shaped like a U and has one arm attached to the output of the servo and the other attached to the back of the servo to add strength. The U case moves in conjunction with the output shaft of the servo. We secure the U case to the servo by replacing the servos original back with a more accommodating back of our own design. The new back design gives extra space for the Super Servo electronics and permits us to use a specially designed bearing system. This system lets the U case screw rmly in to the back but still rotate freely around the servo. Figure 3 shows two views of a snake robot module. The modules connect together via screws, which secure the back of each module to the U case of the previous module. The back makes it possible for the entire snake to be assembled mechanically with only two screws per module.
Fig. 3. Front and rear three quarter views of a CAD model of a snake robot module.
IV. ELECTRONICS ARCHITECTURE Each module of the snake robot contains an Atmel microprocessor, which permits the module to perform necessary computation internally. Each module functions independently of the others within the snake while the gaits are generated by a personal computer. Thus the PC coordinates the distributed system made up of the modules in the snake. For example, the computer may tell a module to move to a given position or specify a current limit. It is then the modules job to actually turn to that position or keep its current draw below the specied limit. A. Communications 1) Topology: The controlling computer communicates with the robot through a repeater. The computer has a single link to this repeater board. An RS485 bus connects the repeater to all of the slave devices snake modules, in our case.
2) Computer to Repeater: The physical layer is fullduplex TTL-level serial, connected to the computer via a USB-TTL converter daughterboard, and the data link layer is conventional 8N1 125 kilobaud serial framing in both directions. We would like to use 9N1 to match the RS485 bus protocol (explained below), but PC drivers for this protocol rarely exist, and we would rather not be dependent on a specialty product. As a workaround, we have a tunnel protocol that uses two 8N1 frames to represent each 9N1 frame. The other seven bits of overhead are used for tunnel control messages between the controlling computer and the repeater board. The repeater board also handles ne communication timing, since writing time-sensitive code on the controlling computer is unnecessarily difcult; timing is critical since we use a single bus protocol. Apart from this special feature, the repeater board is not cognizant of the protocol transmitted through the tunnel. 3) Repeater-slave: The physical transport layer is RS485 in a bus topology. Our implementation uses a pair of failsafe resistors on the repeater board to maintain appropriate line voltages in the event that no device drives the line, which does occur in our protocol. The data link layer is conventional asynchronous 9N1 serial framing at 125 kilobaud. Since the data rate is not exceptionally high, we take the big bits approach to communication: the bus would have to be much longer before propagation delays and reections were signicant. 4) Computer-slave tunneled protocol: Our transport layer is a protocol designed in house dubbed Serial Datagram Protocol (SDP), with datagram layout similar to UDP. SDP uses 9-bit addressing a destination address byte is sent with the high bit set, while data bytes are sent with the high bit clear, which permits us to use the AVRs Multi-Processor Communication Mode (MPCM) feature to simplify implementation. The MPCM feature lets the slave mask serial receive interrupts unless the high bit on the received frame is set; thus the module efciently lters out frames not relevant to it. The slave enables receive interrupts unconditionally when it receives an address frame with its address on it in order to receive the data in the datagram. The application layer is a protocol we named Message Control Protocol (MCP). MCP is a lightweight RPC protocol that efciently permits calls to multiple procedures implemented on the slave per message. The protocol permits us to control the servo and query for sensor data on every call to the slave. Additionally, we may control the amount of feedback we request, without signicantly impacting control of the snake itself. For a graphical depiction of the communications stack, see Figure 4. MCP and SDP are responsible for bus collision avoidance. Unfortunately, this blurs our layering abstraction. This is an inescapable side effect of using a physical layer and data link layer with no concept of collision detection or synchronicity. Alternatives, such as CAN, that address this could make implementing SDP/MCP without this violation of the abstraction possible; however, CAN was rejected for other technical reasons.
2611
Communications Stack: Snake Interface Message Control Protocol Simplied Datagram Protocol RS485
Fig. 4. Graphical depiction of the communications stack.
to the current draw of other modules. The power circuitry, as well as the aforementioned magnetic encoder and logic board can be seen in Figure 5.
B. Motion Control Along with using PID control to regulate the position of the module, the position controller can also limit the electrical current drawn by the motor. This is achieved by maintaining a duty cycle limit on the motor which is then increased or decreased when the motor current is above or below the current limit. Due to the essentially linear relationship between current draw and torque, limiting current effectively creates a torque limit; this limit allows the snake robot to comply with the external environment and helps keep the motor from overheating when it is stalled. We use a magnetic encoder instead of a potentiometer for position feedback. We glue a diametrically polarized magnet to the output gear from the servo; the magnet protrudes into the space that the potentiometer originally occupied. The magnetic encoder chip sits inside the servo on a circuit board with a footprint similar to that of the potentiometer and senses the direction of the magnetic eld. These modications grant us digital position feedback as well as continuous rotation. Furthermore since the magnet does not touch the magnetic encoder chip, the system does not wear out or develop dead spots as is the case with potentiometers, which are moving parts. Since we have developed our own PID controller, we can tune many parameters to affect how the snake robot interacts with its surroundings. For example, a mostly proportional controller or a low current limit will cause the servo to comply more with its environment. Our use of a trajectory generator enables position commands to take a time parameter as well; thus the user may specify how long the servo should take to reach a position instead of only having the option to immediately send a servo to the specied position. Currently the only trajectory available is a trapezoidal velocity prole, however in the future we may develop sinusoidal or Bezier curve trajectories. C. Power One of the problems we have encountered repeatedly in previous generations of snake robots is the high current draw at the relatively low voltage of hobby servos. This required very large wires to provide the power that the servos demanded. To solve this problem, we designed a switching power supply which t inside the servo case allowing us to run the servos efciently at voltages anywhere between 9 and 36 volts as opposed to the relatively small 7.5 volts that the motor is designed for. The switching regulator allows us to use thinner wire between the modules and enables each individual module to better handle voltage uctuations due
Fig. 5. The Super Servo electronics and servo motor viewed from the side.
V. SKINS Although the underlying mechanics are primarily responsible for the robots motion, modications to the outer surface of the robot can be used to enhance performance in a number of environments. These modications take the form of either a full, possibly sealed, covering, called skin, or adherence of additional material to the modules themselves, called compliance. Both structural enhancements have distinct advantages and disadvantages which need to be considered. It should be noted that the decision to use either compliance or a skin does not impact the mechanical design and each can be interchanged. Compliance can be viewed as a minimalist covering, in that it covers only the surfaces of the modules which contact the terrain, as can been seen in Figure 6. Its purpose is to provide additional friction and compression. Compliance in recent models is made from pads of platinum-doped silicone glued to the arms of the U cases. The compliance has been observed to signicantly aid vertical climbing. Compliance does not signicantly contribute to module overheating nor does it limit the range of motion of the joints. At the same time compliance does not protect the robot from the environment in any appreciable way. Module overheating is more thoroughly addressed in the reliability section. Skins are full surface coverings that fully shield the snake, as shown in the bottom of Figure 6. Skins are used to protect the robot from extreme environments such as sand, mud, water, dirt, debris, or underbrush. Skins can be created with compliance built into them, providing some of the benets of both types. Skins as a class are prone to a number of disadvantages. Improperly constructed skins can limit joint movement by either thickness or constriction. Skins can lead to heating issues, as our design uses the ambient air to transfer some heat away from the module. Unlike compliance, choosing the best skin for a given series of tasks
2612
requires careful consideration of a number of issues including the environment, the duration of the run, the compliance needs, and the task itself. We have constructed skins from many materials including nylons, polyester, vinyl, mesh, microber, and/or compliance material.
damaged by passing objects or the terrain. Even with all of these measures snakes do occasionally break. With the new mechanical design the modules can be completely detached by removing the two screws on the module and two on the module in front of it. B. Robust Electronics In a system as complex as a snake robot, there are many possible points of failure. In older snake robots, the motor and/or H-bridge would frequently fail. A stalled motor draws a large amount of current which causes both the motor coils and the MOSFETs in the H-bridge to heat up. The excess heat will eventually cause a failure. The MOSFETs that originally come with the servomotors exacerbated this problem, since they are not rated to enough current and thus fail often when climbing. The new electronics are rated well above the current that the motors are able to draw, signicantly reducing electrical failure. In addition to Hbridge improvements, a current sensor on the controller boards allows the microcontroller to limit current draw, which helps protect the servo. If the software detects that the motor is drawing too much current, it will reduce the amount of power given to the motor until the current is within the acceptable range. As an added protection for the motor and electronics, the Super Servo has a temperature sensor that reports to the user what the temperature of each module is. This will let the driver know which modules have been overworked, and allows the microcontroller to automatically turn the motor off if it rises above a user-dened threshold. C. Wiring Another major source of problems with previous snake robots has been the wiring. When wires break and tangle, connectors disconnect or break. The latest designs address all of these issues. First and foremost we reduced the number of wires running the length of the snake. In the past, we have had one signal wire directly controlling each servomotor. This was very easy to control with a standard servo controller, but meant that we typically had sixteen signal wires. With the new electronics the snake runs on a bus topology with only two conductors in a single shielded cable. This new wiring system makes wiring the snake easier and signicantly reduces the chance of breakage. The connectors between the modules can also be a lot smaller and stronger now that they only have two signals passing between them. In addition to reducing the number of wires, we have started using higher quality silicone insulated wires. Thinner wire can provide the servos with enough voltage to powerfully hold their position. Because the wires are silicone insulated with a high strand count, they can ex well without breaking. For signal wire we initially used headphone cable, but the cable proved too prone to breaking. To remedy this we now use a cable with higher exure life. VII. CONCLUSIONS AND FUTURE WORK In developing the current modular snake robot design, we considered several factors. The robot must satisfy various
Fig. 6. Views of a module with compliance (top) and three modules covered by a skin (bottom).
VI. RELIABILITY A. Mechanical The mechanical design has improved reliability in a variety of ways. First, we have designed the new back and the U case thickness to be strong and lightweight. All of the corners have been reinforced to resist twisting and fatigue. We rigorously tested both of these components by extreme tensional, longitudinal and impact loading, and the they showed no signicant damage. The bearing connection between back and the U case reduces friction so the servo can move more freely while absorbing the longitudinal and torsion forces on the snake as to reduce damage to the servo. The new back is made of aluminum instead of plastic and helps greatly with heat transfer so that the servo can run longer without overheating. The new backs and the U case have channels to cover the servo wires running from module to module. This design prevents the wires from pulling out or getting
2613
constraints when confronted with the challenges of high-level gaits. The architecture design must consider size, weight and power while producing the necessary torque in every joint. Even while juggling these constraints, the design maintains a very high level of reliability. This has resulted in a very versatile robot that can function in a wide variety of environments. The development of the Super Servo has been an integral part of the achievements of our robot. While the current implementation has been quite successful, more development is necessary to achieve a fully functional and robust robot. Future designs will most likely no longer make use of hobby servos due to the lack of reliability of the manufacturing process. Using higher voltage motors will eliminate the need for such high current switching supplies. Eliminating our dependence on hobby servos allows a more exible mechanical design as the module shape and cross section will no longer be constrained by the shape of the hobby servo. VIII. ACKNOWLEDGMENTS The authors would like to thank Kevin Lipkin, Isaac Brown, Jason Winters, Justine Rembisz, and Masataka Suzuki for their hard work producing the nal mechanical design as well as manufacturing so many snake robot modules. Thanks to Will McHenry and William Wong for their help with all of the wiring. Many thanks to Peggy Martin for assisting us in procuring all of our parts.
R EFERENCES
[1] David G Duff, Mark Yim, and Kimon Roufas. Evolution of PolyBot: A Modular Recongurable Robot. In Proceedings of the Harmonic Drive International Symposium, 2001. [2] Mark Yim, Ying Zhang, and David Duff. Modular Robots. IEEE Spectrum, pages 3034, February 2002. [3] Behrokh Khoshnevis, Robert Kovac, Wei-Min Shen, and Peter Will. Reconnectable Joints for Self-Recongurable Robots. In Proceedings of the International Conference on Intelligent Robots and Systems, 2001. [4] Grzegorz Granosik and Johann Borenstein. Integrated Joint Actuator for Serpentine Robots. IEEE/ASME Transactions On Mechatronics, 10(5):473481, 2005. [5] Satoshi Murata, Eiichi Yoshida, Kohji Tomita, Haruhisa Kurokawa, Akiya Kamimura, and Shigeru Kokaji. Hardware Design of Modular Robotic System. In Proceedings of the International Conference on Intelligent Robots and Systems, pages 22102217, 2000. [6] Luis E. Navarro-Serment, Robert Grabowski, Christiaan J. J. Paredis, and Pradeep K. Khosla. Modularity in small distributed robots. In Proceedings of the SPIE conference on Sensor Fusion and Decentralized Control in Robotic Systems II, 1999. [7] Kevin Lipkin, Isaac Brown, Aaron Peck, Howie Choset, Justine Rembisz, Philip Gianfortoni, and Allison Naaktgeboren. Differentiable and Piecewise Differentiable Gaits for Snake Robots. In Proceedings of the International Conference on Intelligent Robots and Systems, 2007.
2614