RoboKings

RoboKings - WRO Future Engineers 2024

RoboKings (Pakistan)

Member Details :

  1. Moeez Anwar (Software Developer)
  2. Fateh Zeeshan (Hardware Developer)
  3. Hamza Alam (Software Developer)

Project Overview

We’re the RoboKings, a passionate team from Pakistan on a mission to conquer the WRO Future Engineers 2024 challenge by building a fully autonomous self-driving car! Inspired by the magic of Santa’s industrious elves, our car is designed to navigate a designated track and complete three laps without human intervention. This project embodies our commitment to robotics, innovation, and the future of intelligent transportation.

The WRO Challenge and Our Focus

The WRO Future Engineers category emphasizes the entire engineering process. Teams earn points for their final product and for documenting their journey within a public GitHub repository. This year’s exciting challenge features a randomly changing track, testing our car’s adaptability!

We’re focusing on these key areas to build our autonomous car:

Technical Specifications

Hardware

Component Description Image Link
NVIDIA Jetson Nano Provides processing power for complex deep learning models. image-removebg-preview (5) https://bit.ly/3wKg5TG
LiDAR Sensor Creates a detailed 3D map of the environment for precise navigation and obstacle detection. image-removebg-preview (6) https://amzn.to/3SXeS2I
2-3 Raspberry Pi Cameras Capture rich visual data used for object detection, lane tracking, and path planning. image-removebg-preview (7) https://amzn.to/4c0Tv9o
RC Car Chassis The physical foundation for our self-driving elf car. 71GffrS4wsL _AC_SX679_-removebg-preview https://amzn.to/3uPM0Bz
Adafruit Motor Shield Enables precise motor control for smooth and reliable movements and steering. image-removebg-preview (9) https://bit.ly/4a2cHle

Software

Project Structure

Collaboration, Contribution, and Community

The RoboKings welcome collaboration! Reach out to us through discussions, pull requests, or issues to share your expertise, suggest improvements, or report any challenges you encounter. We’re excited to be part of the WRO community and are committed to sharing our progress and lessons learned.

[!IMPORTANT] We may not be able to disclose certain implementation details related to our deep learning model or proprietary algorithms to safeguard our competitive edge.

Installation

Vscode & C++ Installation:

Installing Visual Studio Code

Since the Jetson Nano has an ARM-based architecture, you’ll need to get VS Code in a few different ways:

  1. Remote Development:
  2. Install VS Code Server (Less Recommended):
    • You can install a lightweight version of VS Code that runs directly on the Jetson Nano

Setting Up for C++ Development

  1. Install C/C++ Extension: Follow the same instructions as the general guide.

  2. Install a C++ Compiler:

    • Use Ubuntu’s package manager:
      sudo apt-get install g++
      

Testing Your Setup:

ROS installation guide for NVIDIA jetson

[!IMPORTANT] Prerequisites

Installation Steps

  1. Set Up Sources

    • Configure your Ubuntu repositories to allow “restricted,” “universe,” and “multiverse.”
    • Add the ROS repository:

      sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
      sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
      
  2. Install ROS

    • Update your package lists:

      sudo apt update
      
    • Choose your desired ROS installation:

      • Desktop-Full Install: (Recommended for comprehensive use)

        sudo apt install ros-YOUR-DISTRO-desktop-full
        
      • Desktop Install: (Core tools and libraries)

        sudo apt install ros-YOUR-DISTRO-desktop 
        
      • Base Install: (Bare bones ROS)

        sudo apt install ros-YOUR-DISTRO-ros-base 
        
    • Replace YOUR-DISTRO with either melodic (Ubuntu 18.04) or noetic (Ubuntu 20.04)

  3. Initialize rosdep

    sudo rosdep init
    rosdep update
    
  4. Environment Setup

    echo "source /opt/ros/YOUR-DISTRO/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    
  5. (Optional) Build Tools

    sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
    

Testing Your Installation

  1. New Terminal: Open a new terminal.
  2. roscore:

    roscore
    

Auto Install Script

Here’s a bash script that automates the installation of ROS, Visual Studio Code (using the Remote Development approach), and the C++ setup on an Ubuntu-based NVIDIA Jetson Nano.

[!IMPORTANT]

The Script (jetson_setup.sh)

#!/bin/bash

# ROS Installation
echo "== Installing ROS =="
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt update
sudo apt install ros-melodic-desktop-full -y
sudo rosdep init
rosdep update
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

# VS Code Remote Development Setup
echo "== Setting up VS Code Remote Development =="
sudo apt install openssh-server -y  # Install SSH server if not already present 
sudo apt install -y libssl-dev libxkbfile-dev build-essential # Install dependencies

# Install the Remote Development Extensions on your Jetson Nano (refer to the official documentation for the latest URLs)
wget -O vscode_remote.deb "https://update.code.visualstudio.com/latest/linux-arm64-deb/stable" # Replace with the latest version URL
sudo apt install ./vscode_remote.deb

# C++ Setup
echo "== Installing C++ Compiler =="
sudo apt install g++ -y

echo "== Installation Complete =="
echo "**Important:**"
echo "- On your desktop VS Code, connect to your Jetson Nano using Remote Development."
echo "- Ensure necessary C++ build tools are configured on your desktop machine."

How to Use

  1. Create the Script: Copy the code above and save it as jetson_setup.sh on your Jetson Nano.
  2. Make it Executable:
    chmod +x jetson_setup.sh
    
  3. Run the Script:
    ./jetson_setup.sh
    

[!NOTE] Remember to adjust versions, paths, and setup your desktop VS Code for Remote Development to complete the process!

Stay Tuned!

This repository is a work in progress. Follow our development journey as we build and refine our self-driving car for the WRO Future Engineers 2024 challenge!