https://github.com/chickeninvader/duckiebot_project
This repository contains routines to collect data, train, and test lane-following task for Duckiebot:
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.2%) to scientific vocabulary
Repository
This repository contains routines to collect data, train, and test lane-following task for Duckiebot:
Basic Info
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
readme.md
Duckiebot Lane-following Project Setup Guide
Project Overview
This repository contains routines to collect data, train, and test lane-follwing task for Duckiebot:
Prerequisites
- Duckiebot running and connected to your network, make sure it is charge to more than 50%
- DTS (Duckietown Shell) installed
- ROS environment properly configured (currently use ros noetic. In case you do not have ros installed, for all code require ros (for example data visualization), run
dts start_gui_tools robotname --mount /path/to/duckiebot_project - Install robomimic
pip install robomimic
Instructions (execute this at the directory where the project is)
1. Data collection
Collect bag data from duckiebot:
```bash
Build on the robot at dt-core directory
dts devel build -f
Copy calibration file
scp -r duckie@robotname.local:/data/config/calibration/ /data/config/calibration/
Run dt-core interactively
dts devel run -R robotname --mount /path/to/dt-core --cmd /bin/bash
Within the terminal, launch this custom lane-following:
launcher/darl.sh
Hold A to run lane-following routine, S to stop, arrow key to navigate the robot when it stops execute routine
Open another terminal,
docker exec -it dts-run-dt-core bash
launch this data collection when you want to start record data. Press ctrl+C to stop. Data will save at /data/logs/robotnamedate_time.bag at your local computer:
launcher/recordminimallogs.sh ```
Visualize data:
```bash
Visualize a bag file
cd preprocessdata python visualizebagdata.py /path/to/bagfile
```
2. Training
```bash
Convert data into format that robomimic prefered in hdf5 file
cd preprocessdata python converthdf5withreward.py
Train a model with any config having no_env, since we train offline. Currently train on asu supercomputer with 1 A100 gpu and the memory depend on the algorithms and data being used
cd robomimic python robomimic/scripts/train.py --config exps/templates/configsfilenoenv.json --dataset ../preprocessdata/record/converted_standard ```
3. Testing
```bash
Copy folder contain models and logs to the weights directory inside dt-core/packages/robomimic
Move to dt-core and dt-core interactively. (GPU is not required; however, the model is tested with gpu)
dts devel run -R robotname --mount /path/to/dt-core --cmd /bin/bash -- --gpus 1
Run the robomimic_control node
rosrun robomimiccontrol robomimiccontrol.py ```
Troubleshooting
- If calibration copy fails, verify robot's network connection and hostname
- If the bot cannot detect the line segment properly, make sure to change the config file
- Ensure all dependencies are installed before building
- Check robot's logs if any module fails to initialize
Notes
- Always maintain the execution order for proper system functionality
- Monitor system resources during operation
Visuals
Project Poster:

Acknowledgements
We would like to express our sincere appreciation to the following for their invaluable support and opportunities that made this project possible:
- Dr. Hua Wei and DaRL group at ASU: For providing the research environment and guidance.
- FURI (Fulton Undergraduate Research Initiative) at ASU: For the opportunity to conduct undergraduate research.
- The Duckietown Team: For developing the Duckiebot platform and providing technical support resources.
- The robomimic Team: For developing and maintaining the robomimic library, a powerful tool for offline imitation learning.
Owner
- Login: Chickeninvader
- Kind: user
- Repositories: 2
- Profile: https://github.com/Chickeninvader
GitHub Events
Total
- Watch event: 1
- Member event: 1
- Push event: 38
- Create event: 3
Last Year
- Watch event: 1
- Member event: 1
- Push event: 38
- Create event: 3