MiniRHex: An Open-Source Hexapod Robot
Contact: https://www.cmu.edu/me/robomechanicslab/contact.html
MiniRHex is a miniature-scale hexapod designed by the Robomechanics Lab based on the design of the cockroach-inspired RHex. Notable features include a 3D printed chassis and legs for low cost construction and an intuitive software package that allows for highly-customizable control over the robot’s behavior. MiniRHex is designed to be an educational and outreach tool enabling students to experiment with a fully functional walking robot at a much lower cost. The low price tag lets research groups maintain a fleet of machines, allowing each student more hands-on interaction with the hardware. Possible educational principles include gait design and optimization, leg design and control, and mobile robot sensor incorporation.
Building a MiniRhex requires access to a 3D printer. The links for off the shelf parts can be found below.
The Parts List and Links to order can be found in Parts List.
Assembly Instructions are available at Assembly Instructions.
- Install the Arduino IDE from https://www.arduino.cc/en/software
- Open the Arduino IDE and under "Tools" select "Manage Libraries..."
- Type "DynamixelShield" into the search bar
- Select "Install" for the DynamixelShield library
- Under "Tools" hover over "Board" and select "Boards Manager..."
- Type "Arduino SAMD Boards" into the search bar
- Select "Install" for the Arduino SAMD Boards (32-bits ARM Cortex-M0+)
- (Non-developers) Download the MiniRHex repository from https://github.com/robomechanics/MiniRHex/archive/refs/heads/minirhex_redesign_2022.zip and extract the downloaded zip file
- (Developers) Clone the MiniRHex repository from https://github.com/robomechanics/MiniRHex.git and checkout the "minirhex_redesign_2022" branch
The correct Dynamixel servo positions are:
- ID 1 = front left
- ID 2 = center left
- ID 3 = rear left
- ID 4 = front right
- ID 5 = center right
- ID 6 = rear right
To set the Dynamixel ID numbers, follow these steps:
- Disconnect all Dynamixel servos except for the one in position 2
- Open the Arduino IDE and check that under "Tools":
- "Board" is set to "Arduino MKR WiFi 1010" (under "Arduino SAMD (32-bits ARM Cortex-M0+) Boards")
- "Port" is set to the correct COM port, e.g. "COM# (Arduino MKR WiFi 1010)"
- Select "File" > "Examples" > "DynamixelShield" > "Basic" > "id" to open the ID-setting example script
- Find the line "new_id = DEFAULT_DXL_ID;" and delete it or comment it out: "// new_id = DEFAULT_DXL_ID;"
- Find the line "new_id = 100;" and edit it to "new_id = 2;"
- Upload code to the robot (the circular button near the top left with an arrow pointing to the right)
- Open the Serial Monitor in the Arduino IDE (the circular button in the top right with a magnifying glass) and verify the ID has been changed
- Unplug the Dynamixel and repeat from step 5 with the Dynamixel servos in positions 3, 4, 5 and 6 (setting "new_id = 3;" for ID 3, etc.)
- Connect the MiniRHex to your computer via the Micro USB port
- Open MiniRHex.ino (located in the MiniRHex subfolder) in the Arduino IDE and check that under "Tools":
- "Board" is set to "Arduino MKR WiFi 1010" (under "Arduino SAMD (32-bits ARM Cortex-M0+) Boards")
- "Port" is set to the correct COM port, e.g. "COM# (Arduino MKR WiFi 1010)"
- Upload code to the robot (the circular button near the top left with an arrow pointing to the right)
- Insert the battery, fasten the velcro straps, and connect the battery cable
- Open the Serial Monitor in the Arduino IDE (the circular button in the top right with a magnifying glass)
- Type "w" into the text box and hit enter to start walking! ("q" to stop, "s" to reverse", "a" to turn left, "d" to turn right)
- To modify the walking gait, go to the "gait_parameters.cpp" tab in the Arduino IDE and edit the parameters for each leg, then upload code again (see comments in the file for more details)
- When finished, unplug the battery and store it in a fireproof container (never leave a battery in the robot!)
The part list can be found at Parts List.
The MiniRHex repository can be found at MiniRHex Repository.
If referencing MiniRHex in a paper, please cite this abstract. Use this BibTeX for citations:
M. Barragan, N. Flowers, and A. M. Johnson. "MiniRHex: A Small, Open-source, Fully Programmable Walking Hexapod". In Robotics: Science and Systems Workshop on ``Design and Control of Small Legged Robots'', Pittsburgh, PA, June 2018.
See the image gallery for more MiniRHex pictures.
Check out the Robomechanics Lab YouTube Page for videos of MiniRHex in action!
MiniRHex was designed by the following people in the Robomechanics Lab
- Nikolai Flowers (BS ME '20)
- Barrett Werner (MS ME '19)
- Monica Barragan (BS ME '19)
- Cameron Selby (MS ME '18)
- Scott Phillips (BS ME '20)
- J. Joe Payne (Ph.D ME)
- Joe Norby (Ph.D ME '22)
- Catherine Pavlov (Ph.D ME '23)
- Aaron Johnson (Advisor)