Remote Control Robot Car

WINLAB 2022 Summer Internship


Overview

  • Remote control of a robotics platform using video streams. The project will require students to work with video streaming toolkits and develop software to allow for low-latency control of the remote platform from either a first- or third-person view. Students will begin by setting up ROS on a robotics platform at WINLAB so that they have a system to work on, with the ultimate goal of testing the remote control system on the hardware developed by the smart car team at the end of the summer.

  • Students will need to write a ROS node to run on the vehicle platform which will receive remote control commands and translate them into control signals for the platform hardware. Students will also need to work with software such as gstreamer for low-latency streaming of the video feed from the car.


Weekly Progress

Week 1

Week 1 Presentation

  • Learned how to navigate Linux Command Line and Orbit Management Framework

  • Installed ​ROS Melodic on sandbox node and began working through ROS tutorials

  • Met with other groups within the Car Intersection group (Mini Smart Car Hardware Design, Autonomous System Infrastructure, Multi-Cam Fusion for Smart Intersection)

ROS Melodic

Week 2

Week 2 Presentation

  • Completed the ROS tutorials; Installed ROS on intersection node and Pioneer 3-DX

  • Completed VIMtutor

  • Installed Real Sense libraries compatible with ROS (to access camera)

  • Solved Pioneer 3-DX networking problem and ssh into it through wireless connection

Robot camera

Week 3

Week 3 Presentation

Demo client

Week 4

Week 4 Presentation

  • Built our own client to control robot

  • Wrote Open Loop control program to have Pioneer 3-DX move in square repeatedly to test precision of robot

  • Recorded data on a bag file, transferred it to a csv file and graphed it

Odometry controller

Week 5

Week 5 Presentation

  • Finished writing and collecting data from Open and Closed loop control programs for Pioneer 3-DX Square (drifting of odometry but less so with closed loop)

  • Learned different methods of navigation to begin waypoint following program

  • Streamed video through ssh tunneling (improves resource allocation and general convenience over Chrome Remote Desktop) via ​ROS Package

Video stream through SSH tunneling via third-party packages

Week 6

Week 6 Presentation

  • Implemented waypoint following program through dead reckoning

  • Made a Flask v1.1 web server to send commands to Pioneer 3-DX

  • Programmed server to receive robot odometry data

Waypoint path following

Week 7

Week 7 Presentation

  • Streamed video through ssh tunneling in conjunction with Flask server

  • Improved UI to send commands to Pioneer and improved rest API

  • Created a waypoint path generator using Hermite Spline Interpolation

  • Started calibrating Pioneer 3-DX by modifying drift factor and using statistical analysis

ROS web server

Week 8

Week 8 Presentation

  • Replaced back wheel on Pioneer 3-DX with ball bearing wheel to minimize drift deviation

  • Used digital caliper and cad to 3D print standoff to connect new wheel and Pioneer

  • Programmed a spline follower that continually sends linear and angular velocity commands to Pioneer to follow path (angular velocity still in progress)

  • Made a new package for aruco marker based localization

Replacement Ball wheel

Week 9

Week 9 Presentation

  • Finished calibrating Pioneer 3-DX drift factor

  • Fixed configuration file glitch.

  • Created an image saving program for aruco marker detection

  • Programmed pure pursuit waypoint following (waypoint following using odometry and error correction)

A simulated test run of pure pursuit

Week 10

Week 10 Presentation

  • Presented the cumulative results of our work

Meet The Team

Jimmy Huang

John Greaney-Cheng

Rohan Variankaval