Giter VIP home page Giter VIP logo

donkey_ros_dc's Introduction

ROS1 Donkey(제시카 DC)

4 DC motors with ROS Molodic + Donkeycar!!

로드밸런스팀 김수영씨 아래 코드를 가져와서 수정해서 만들고 있습니다.

https://github.com/Road-Balance/donkey_ros

There's Notion Lecture Notes and Youtube video's about this project. But, It's written in Korean. Anyway, Here's the link

Tested System information

Jetson Nano 2GB + Pi Camera V2.1

  • Ubuntu 18.04
  • ROS Melodic
  • Opencv4

Packages with Brief Explanation

├── csi_camera => Handling Image data For IMX219 Camera  
├── donkey_control => Control RC Car with Adafruit PCA9685
├── donkey_cv => Computer Vision Package with Opencv4 
├── donkey_joy => Control RC Car with Logitech F710 Game Controller 
│
(...)
├── Images
├── LICENSE
├── README.md

Prerequisite

  1. Ros Packages installation
$ sudo apt-get install ros-melodic-cv-bridge
$ sudo apt-get install ros-melodic-image-view
  1. OpenCV4 installation
  1. Clone this Repo
$ cd ~/catkin_ws/src
$ git clone https://github.com/Road-Balance/donkey_ros.git

$ cd ../
$ catkin_make
$ source devel/setup.bash

Usage

  1. csi_camera package

Packages for Image Streaming

Check Camera Connection First!!!

gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! \
   'video/x-raw(memory:NVMM),width=1280, height=720, framerate=21/1, format=NV12' ! \
   nvvidconv flip-method=2 ! 'video/x-raw,width=960, height=720' ! \
   nvvidconv ! nvegltransform ! nveglglessink -e
  • sensor_id : this value depends on Camera Slot in Jetson Nano.

Webcam Puslish

$ roscore

$ rosrun csi_camera webcam_pub.py
$ rosrun image_view image_view image:=/csi_image

CSI Camera Publish

$ roscore

$ rosrun csi_camera csi_pub.py
$ rosrun image_view image_view image:=/csi_image
  1. donkey_control package

Packages for controlling RC Car with PCA9685 PWM driver. You need to install Adafruit_PCA9685 python package first

There's four modes for controlling RC Car

  • JoyStick Control
  • Keyboard Control
  • Blob Control
  • Yolo4 Control
$ roscore

$ rosrun donkey_control joy_control.py
$ rosrun donkey_control blob_chase.py
  1. donkey_joy package

There's two modes for using joystick

  • Button mode
  • Axes mode
$ roslaunch donkey_joy joy_teleop_axes.launch
$ roslaunch donkey_joy joy_teleop_btns.launch
  1. donkey_cv package

Packages for OpenCV applications

  • Find Blob with Certain color
  • Publish Image location as a geometry_msgs/Point
$ roscore

$ rosrun donkey_cv find_ball.py

Application

1. joy_control

Control RC Car with game controller

$ roscore

# Jetson
$ rosrun donkey_control joy_control.py

# Laptop or Jetson
$ roslaunch donkey_joy joy_teleop_axes.launch
# or
$ roslaunch donkey_joy joy_teleop_btns.launch

2. keyboard_control

Control RC Car with keyboard

$ roscore

# Jetson
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

# Laptop or Jetson
$ roslaunch donkey_joy joy_teleop_axes.launch

3. blob_tracking

Find the any color box of the Jetson Nano on the screen and change the direction of the wheel accordingly.

$ roscore

$ rosrun csi_camera csi_pub.py
$ rosrun donkey_cv find_ball.py 
$ rosrun donkey_control chase_the_ball.py 
$ rosrun donkey_control blob_chase.py 

Debugging with image_view

rosrun image_view image_view image:=/webcam_image
rosrun image_view image_view image:=/blob/image_mask
rosrun image_view image_view image:=/blob/image_blob

4. Yolo4_tracking

Find the object of the Jetson Nano on the screen and change the direction of the wheel accordingly.

#terminal #1
# camera image publish
zeta@zeta-nano:~/catkin_ws$ roslaunch jetson_csi_cam jetson_csi_cam.launch width:=416 height:=416 fps:=15

#terminal #2
#object detect using Yolo_v4
zeta@zeta-nano:~/catkin_ws$ roslaunch darknet_ros yolo_v4.launch

#terminal #3
zeta@zeta-nano:~/catkin_ws$ roslaunch donkey_control yolo_chase.launch

donkey_ros_dc's People

Contributors

zeta0707 avatar

Watchers

 avatar  avatar  avatar

Forkers

zeta0707

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.