This repository contains the hardware control code, data analysis scripts, and supplementary software used for the development of the Dual Actuator Wave-Like Navigator (DAWN) — a soft robotic system that mimics wave-like locomotion.
Daul-Actuator-Wave-Like-Navigator/
│
├── design-files/ # Mechanical and electrical design files
│ ├── molds/ # STL files for casting robot skin and seal
│ ├── robot/ # STL and PDF files for mechanical parts and fixtures
│ └── PCB/ # KiCad PCB layout and schematic files
│
├── data-and-data-analysis/ # MATLAB scripts and live notebooks for data processing
│ ├── *.mlx # Live MATLAB analysis (friction, locomotion, wave studies)
│ ├── *.m # Script-based versions for data processing and visualization
│ └── data/ # Experimental datasets (e.g., pressure, force)
│
├── robot-control-code/ # Arduino/mbed code for the main robot controller
│ ├── main.ino # Main controller logic (multithreaded tasks with RTOS)
│ ├── motor_control.ino # Motor operation and state handling
│ ├── pump_control.ino # Syringe pump actuation commands
│ └── pressure_sensor.ino # Sensor interface and data capture
│
├── syringe-pump-code/ # Python and Arduino code for pump-side system
│ ├── pressure_sensors_syringe_switches.ino # Arduino sketch for sensors and switch control
│ └── syringe_datalloging_switches_pressure.py # Python logger and motion driver for syringe pumps
│
└── .git/ # Git versioning files (ignore)
- Arduino-compatible microcontroller with RTOS support
- Motor drivers and actuators
- Syringe-based pump system
- Pressure sensors and signal conditioning
- Bluetooth/Wireless modules for command/control
- Arduino IDE
- MATLAB
- Python 3.8+ with packages:
pyserial,pandas,matplotlib,keyboard,csv
Located in the design-files/ directory, this folder contains all physical and electronic design assets:
- 3D printable STL files for casting soft robot components
- Includes molds for skin, junction seals, and structural elements
- STL files for structural components like clamps, links, couplings, and braces
- Includes CAD files for electronics enclosures and laser-cut shapes
- KiCad design files (
.kicad_pcb,.kicad_sch) for the component shield PCB - Backup archives for version control
MATLAB Live Scripts (.mlx) allow rich analysis and visualization of robotic behavior:
traveling_wave_analysis.mlx: Wave pattern effectivenesssand_sledge_analysis.mlx: Sledge study on granular mediasimple_locomotion_analysis.mlx: Basic locomotion profiles and analysisfriction_analysis.mlx: Frictional force modelingpressure_analysis_one_cicle.m: Single-cycle pressure response
- Multithreading with RTOS: Used for concurrent sensor reading, motor control, and pump updates.
- BLE Communication: Allows for wireless control and data transmission.
- Pressure Feedback Loop: Real-time monitoring of actuation pressure to maintain wave shape.
The syringe-pump Python script (syringe_datalloging_switches_pressure.py) controls movements and logs data over serial. It allows frequency and speed modulation to experiment with various gait cycles.
- Upload
main.inoand related.inofiles to the robot controller. - Upload
pressure_sensors_syringe_switches.inoto Arduino Mega connected to the syringe system. - Run the Python logging script to collect data and drive actuation.
- Analyze results with MATLAB using the provided
.mlxscripts.
This project is currently in development and is shared under the MIT License.