Overview
Salamander is an amphibious rolling robot which is capable of travelling on land and water.
It is equipped with Bluetooth control, GPS position and speed tracking, and two wifi cameras facing forward and downward. It could be used for search-and-rescue missions and marine biology surveys. Check out the videos below to see it in action.
Role
This project was initiated as part of an Engineering Design course project during my undergraduate studies in SUTD in 2015 where I worked with Stevanus Satria and Jia Wen Lee.
I developed Salamander’s wireless control and designed its flexible 3D-printed sleeve for enhanced land traction and water propulsion.
Process
Wireless Control
I programmed the wireless Bluetooth control for Salamander on the Romeo V2 Board (Arduino Leonardo) microcontroller using Arduino software (C/C++) and the mobile controller on Android smartphones using MIT App Inventor.
Salamander uses a two-axis pendulum mechanism to move (Figure 1). It has a servo motor for steering left or right and a powertrain motor for moving forward or backward. These motors shift the center of mass of the robot to propel it to the intended direction.
The controller app allows the user to first establish the Bluetooth connection with the robot and has a trackpad for controlling the robot’s movement (Figure 2).
The controls are more similar to a joystick. You start with holding on the center of the trackpad with your thumb (Figure 2). Dragging your thumb to the top half of the trackpad moves the robot forward. Dragging to the upper left or right moves the robot left or right respectively. Dragging to the bottom half of the trackpad moves the robot backward. The speed of the robot is directly proportional to how far you drag your thumb from the trackpad’s center.
The controller app sends information for controlling the powertrain and servo motors as bytes (8-bit values from 0 to 255) via Bluetooth communication. Every time the trackpad controls are touched (Figure 3, under block function named “when Canvas1 Dragged”), the function “updateMotors” is constantly called (Figure 4) and 3 sequential byte numbers are sent:
- Byte value for powertrain motor (named as global motor). Value of 127 signals the robot to stop, 0 signals to move forward at maximum speed, 254 signals to move backward at maximum speed.
- Byte value for servo motor (named as global servo). Value of 127 signals for servo to be in default 90° position, 0 signals robot to move left and 254 signals robot to move right.
- Byte value to signal end of the motor update. Value was set as 255.
Salamander’s microcontroller was then programmed (Figure 5) to receive the bytes as serial data input (Serial1). Variable a stores the byte value for the powertrain motor and variable b stores the byte value for the servo motor. These values are mapped to control the powertain motor rotation direction (forward/backward) and speed, and the servo motor rotation angle (0° to 180°).
3D-Printed Sleeve
The Salamander robot required a sleeve to propel itself in water and act as a seal to prevent water from entering the gap between the hemispheres of it’s clear outer shell (Figure 6).
I chose to use a flexible, stretchy and 3D-printable filament material called NinjaFlex for the sleeve. The initial sleeve design (Figure 7) was thicker, had more extended ridges and covered a smaller surface area of the robot. This design had a number of issues:
- If the sleeve was too thick, it would be too difficult to stretch it around the robot.
- The extended ridges are good for water propulsion but not so much for land movement and further adds to the sleeve thickness.
- If the surface area covered was too small and the thickness of the sleeve too large, the sleeve would be too bulky and cause the robot to tilt to and stay on the side.
Given these issues, I designed, printed and tested several iterations of the sleeve. The final design (Figure 8, right sleeve) had a thickness of 0.75 mm, ridge length of 1 mm and width of about 10 cm such that it did not obstruct the camera views.
Results
Salamander’s design was published and presented in the IRC Conference on Science, Engineering and Technology (IRC-SET 2015).
The Salamander project was demonstrated in Europe Maker Faire 2015 in Rome and featured on Discovery Channel Canada (first video at the top).