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
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
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
Successfully remote controlled Pioneer 3-DX
Installed ROSARIA and AriaCoda to get access to libraries compatible with Pioneer 3-DX
Installed Demo Client to control robot
Streamed video through Chrome Remote Desktop
Demo client
Week 4
Odometry controller
Week 5
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
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
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
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
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
Meet The Team
Jimmy Huang
John Greaney-Cheng
Rohan Variankaval