GithubHelp home page GithubHelp logo

mlundsveen / jetbot_ros Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dusty-nv/jetbot_ros

0.0 0.0 0.0 11.17 MB

ROS nodes and Gazebo model for NVIDIA JetBot with Jetson Nano

License: MIT License

Shell 1.28% C++ 6.33% Python 85.28% CMake 7.11%

jetbot_ros's Introduction

jetbot_ros

ROS2 nodes and Gazebo model for NVIDIA JetBot with Jetson Nano

note: if you want to use ROS Melodic, see the melodic branch

Start the JetBot ROS2 Foxy container

git clone https://github.com/dusty-nv/jetbot_ros
cd jetbot_ros
docker/run.sh

Run JetBot

If you have a real JetBot, you can start the camera / motors like so:

ros2 launch jetbot_ros jetbot_nvidia.launch.py

or (for a Sparkfun Jetbot)

ros2 launch jetbot_ros jetbot_sparkfun.launch.py

Otherwise, see the Launch Gazebo section below to run the simulator.

Launch Gazebo

ros2 launch jetbot_ros gazebo_world.launch.py

Then to run the following commands, launch a new terminal session into the container:

sudo docker exec -it jetbot_ros /bin/bash

Test Teleop

ros2 launch jetbot_ros teleop_keyboard.launch.py

The keyboard controls are as follows:

w/x:  increase/decrease linear velocity
a/d:  increase/decrease angular velocity

space key, s:  force stop

Press Ctrl+C to quit.

Data Collection

ros2 launch jetbot_ros data_collection.launch.py

It's recommended to view the camera feed in Gazebo by going to Window -> Topic Visualization -> gazebo.msgs.ImageStamped and selecting the /gazebo/default/jetbot/camera_link/camera/image topic.

Then drive the robot and press the C key to capture an image. Then annotate that image in the pop-up window by clicking the center point of the path. Repeat this all the way around the track. It's important to also collect data of when the robot gets off-course (i.e. near the edges of the track, or completely off the track). This way, the JetBot will know how to get back on track.

Press Ctrl+C when you're done collecting data to quit.

Train Navigation Model

Run this from inside the container, substituting the path of the dataset that you collected (by default, it will be in a timestamped folder under /workspace/src/jetbot_ros/data/datasets/)

cd /workspace/src/jetbot_ros/jetbot_ros/dnn
python3 train.py --data /workspace/src/jetbot_ros/data/datasets/20211018-160950/

Run Navigation Model

After the model has finished training, run the command below to have the JetBot navigate autonomously around the track. Substitute the path to your model below:

ros2 launch jetbot_ros nav_model.launch.py model:=/workspace/src/jetbot_ros/data/models/202106282129/model_best.pth

note: to reset the position of the robot in the Gazebo environment, press Ctrl+R

jetbot_ros's People

Contributors

alanyuchenhou avatar dusty-nv avatar mlundsveen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.