Remote Control Robot Car

    Remote Control Robot Car

    WINLAB Summer Internship 2022

    Group Members: Jimmy Huang (UG), John Greaney-Cheng (UG), Rohan Variankaval (HS)

    Project Website

    Remote Control Robot Car Website

    Project Objective

    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.

    Week 1 Update

    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)

    Week 2 Update

    Week 2 Presentation

    Week 3 Update

    Week 3 Presentation

    Week 4 Update

    Week 4 Presentation

    • Built our own client to control robot (Backed it up on Gitlab)
    • 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

    Week 5 Update

    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

    Week 6 Update

    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

    Week 7 Update

    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

    Week 8 Update

    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

    Week 9 Update

    Week 9 Presentation

    • Finished calibrating Pioneer 3-DX drift factor (best drift factor is 10)
    • Fixed configuration file glitch. In order to update calibration parameters: 1. Update in Config file, 2. Compile using catkin-make, 3. Delete currently stored parameters (either kill roscore or use rosparam delete), 4. Run ROSARIA.
    • Created an image saving program for aruco marker detection
    • Programmed pure pursuit waypoint following (waypoint following using odometry and error correction)
    Last modified 10 months ago Last modified on Aug 8, 2022, 2:07:35 AM
    Note: See TracWiki for help on using the wiki.