Close
0%
0%

ANRC (Autonomous Nitro RC)

Ackermann steering, Autonomous self-driving Nitro RC Car, ROS based.

Similar projects worth following
Got an old RC car platform that wasn't in use for around ~10 years. Project goal is to implement algorithms for localization, lane tracking, steering etc. and creating a tiny nitro self-driving car.
Detailed log below explains the mechanical, hardware, and software needed to start creating this tiny car by yourself.
Hopefully will create a small community to share ideas to improve this project.

Detailed log Below ->>

Portable Network Graphics (PNG) - 80.28 kB - 05/20/2018 at 12:58

Preview
Download

pi-bottom-plate.stl

source: https://www.thingiverse.com/thing:1998099 credit: ancapaaron

Standard Tesselated Geometry - 41.98 kB - 05/20/2018 at 12:20

Download

pi-top-plate.stl

source: https://www.thingiverse.com/thing:1998099 credit: ancapaaron

Standard Tesselated Geometry - 38.95 kB - 05/20/2018 at 12:20

Download

xv11_lidar.stl

source: https://www.thingiverse.com/thing:1707495 credit: deadsy

Standard Tesselated Geometry - 325.50 kB - 05/20/2018 at 12:18

Download

HolderPlate-Top.STL

source: https://www.thingiverse.com/thing:1464811 credit: zankuro

Standard Tesselated Geometry - 212.78 kB - 05/20/2018 at 12:17

Download

View all 11 files

  • 1 × Nitro RC Car Platform
  • 1 × Neato XV-11 Lidar
  • 1 × Logitech C170
  • 1 × Orange Pi Lite (AllWinner H3)
  • 1 × STM32F103C8 Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers

View all 10 components

  • ANRC #4

    Itamar Eliakim05/31/2018 at 17:15 0 comments


    Mechanical

    Getting the RC Car ready to go after ~10 years, engine compression seems to be good, carburetor is completely cleaned. Found out the car didn’t start because of a small pin between the crankshaft and the backplate, when pulling the cord, it rotated only the shaft at the backplate. Instead of ordering a new spring/pull mechanism (didn’t have the patience) just put some Teflon tape between the crankshaft and the small pin, it worked perfectly.



    Next, designing the parts, I’ve separated this to three major units:

    Rear Unit: Webcam, Lights(Later).

    Center Unit: Power Regulators (5V and 3.3V), Power Distribution Board, RC Receiver.

    Front Unit: Battery, XV11 Lidar, Orange Pi.

    Hardware

    Rear Unit: 1x Logitech C170

    Center Unit:
    Main power supply – LIPO 7.4 2200mah, several components at this design works at 5V/3.3, will use two different regulators:
    1xLM2596 – 5V 3A Buck converter
    1xAMS1117 – 3.3V 800mA Buck converter

    Front Unit:
    1x Orange Pi Lite(Allwinner H3)
    1x XV11 Neato Lidar
    1x STM32F103C8



  • ANRC #3

    Itamar Eliakim05/25/2018 at 15:39 0 comments

    Wrote a ROS package in python for processing the image from the Logitech C170 (Code available on GitHub). In most example codes available online it's easier to detect the lane by filtering out the lane colors(white, yellow), here i did it in a narrow street so i didn't have many colors to filter out.

    Based on the great tutorial of Galen Ballew:

    https://medium.com/@galen.ballew/opencv-lanedetection-419361364fc0

    I had to do many modification so it will work without filtering the yellow and white colors, I've used the following steps:

    1. Convert to HSV

    2. Filter out background colors.

    3. Calculating Sobel magnitude.

    4. Flood Fill.

    5. Split to left and right image.

    5. Manually find contours.

    6. Draw a line for the left and right edge.

    I got the following result:

    Running Yolo object detection, with VOC weights on the image(offline), we got the following result - 

    Next time:

    • Processing XV11 Lidar scans
    • Try running the processing in real-time on the orangePi.
    • Odometry - Attach an encoder on the main shaft.

  • ANRC #2

    Itamar Eliakim05/21/2018 at 19:02 0 comments

    I had to record some bagfiles to start working on the lane tracking, auto steering of the car. To make things easier i thought of connecting the Flysky RC to a simple python code and by toggle the switch on the remote start and pause the rosbag record process. Connecting the Flysky RC to OrangePi sounds like an easy task, had some issues with sampling the PWM signal from the remote at frequency high enough to determine the switch state(This can be done easly on Raspberry Pi using pigpio), if you have some ADC to I2C you can do it easly, something like ADS1115, or just playing with RC circuit.
    I didn't have enough time to spend on it, so a simple Arduino Nano was perfect for this task. Routing the SWD on Flysky to CH6 on the reciever and connecting it to PIN 6 on the Arduino.
    The python code for reading values for Arduino and starting the record sometimes doesn't end cleanly(will be fixed later), need to run this on the bags -

    rosbag reindex *.bag.active
    rosbag fix *.bag.active repaired.bag

  • ANRC #1

    Itamar Eliakim05/20/2018 at 12:13 0 comments

    Software

    1. Install Armbian for Orange Pi from here: https://www.armbian.com/orange-pi-lite/
    2. Install ROS kinetic
      echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" >ros-latest.list
      sudo cp ros-latest.list /etc/apt/sources.list.d/
      sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
      sudo apt-get update
      sudo apt-get install ros-kinetic-ros-base
      sudo rosdep init
      rosdep update

    Congratulations, you have ROS kinetic running on your Orange PI. Add some of the basic ROS packages, such as Hector SLAM, and the drivers to XV11, based on this tutorial: http://meetjanez.splet.arnes.si/2015/08/22/neato-xv-11-to-ros-slam/

    Got the XV11 lidar work on the Nitro RC, example of the Laserscan: 

    Next weeks:

    1. Check how slow can the car move, XV11 lidar works at really really low speed compare to the speed of the car, will need to see if we can use this lidar or just replace it with a better RGB camera.
    2. Stress test the poor Orange Pi to see if we can use this or will need to change to a better one.
    3. DIY Electric starter.
    4. Record some videos form the webcam so we can start working on the lane tracking, and autonomous steering.

View all 4 project logs

  • 1
    Mechanical

    Mechanical

    Getting the RC Car ready to go after ~10 years, engine compression seems to be good, carburetor is completely cleaned. Found out the car didn’t start because of a small pin between the crankshaft and the backplate, when pulling the cord, it rotated only the shaft at the backplate. Instead of ordering a new spring/pull mechanism (didn’t have the patience) just put some Teflon tape between the crankshaft and the small pin, it worked perfectly.

    Next, designing the parts, I’ve separated this to three major units: Rear Unit: Webcam, Lights(Later). Center Unit: Power Regulators (5V and 3.3V), Power Distribution Board, RC Receiver. Front Unit: Battery, XV11 Lidar, Orange Pi.

  • 2
    Hardware

    Hardware

    Rear Unit: 1x Logitech C170

    Center Unit: Main power supply – LIPO 7.4 2200mah, several components at this design works at 5V/3.3, will use two different regulators: 1xLM2596 – 5V 3A Buck converter 1xAMS1117 – 3.3V 800mA Buck converter

    Front Unit: 1x Orange Pi Lite(Allwinner H3) 1x XV11 Neato Lidar 1x STM32F103C8

  • 3
    Software

    Software

    1. Install Armbian for Orange Pi from here: https://www.armbian.com/orange-pi-lite/
    2. Install ROS kinetic
      echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" >ros-latest.list
      sudo cp ros-latest.list /etc/apt/sources.list.d/
      sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
      sudo apt-get update
      sudo apt-get install ros-kinetic-ros-base
      sudo rosdep init
      rosdep update

    Congratulations, you have ROS kinetic running on your Orange PI. Add some of the basic ROS packages, such as Hector SLAM, and the drivers to XV11, based on this tutorial: http://meetjanez.splet.arnes.si/2015/08/22/neato-xv-11-to-ros-slam/

    Got the XV11 lidar work on the Nitro RC, example of the Laserscan: 

    Next weeks:

    1. Check how slow can the car move, XV11 lidar works at really really low speed compare to the speed of the car, will need to see if we can use this lidar or just replace it with a better RGB camera.
    2. Stress test the poor Orange Pi to see if we can use this or will need to change to a better one.
    3. DIY Electric starter.
    4. Record some videos form the webcam so we can start working on the lane tracking, and autonomous steering.

View all 3 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates