https://github.com/chickeninvader/duckiebot_project

This repository contains routines to collect data, train, and test lane-following task for Duckiebot:

https://github.com/chickeninvader/duckiebot_project

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
Last synced: 7 months ago · JSON representation

Repository

This repository contains routines to collect data, train, and test lane-following task for Duckiebot:

Basic Info
  • Host: GitHub
  • Owner: Chickeninvader
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 65.8 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed 9 months ago
Metadata Files
Readme

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:

FURI 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:

Owner

  • Login: Chickeninvader
  • Kind: user

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