Version 23 (modified by 5 months ago) ( diff ) | ,
---|
Remotely Piloted Vehicles
Team Members: Dhruv Ramaswamy, Nandini Venkatesh, Daniel Mahany.
Advisor: Dr. Richard Martin
Project Objective
Low-latency networking is an emerging technology for use in remote sensing and control of vehicles and robots. In this project, interns will develop software for remote piloting vehicles with both mecanum and front wheel steering using low latency networks. Additional sensing, such as additional cameras, range sensors, and audio feedback will be added to aid the pilots. At the end of the project, interns will demonstrate remote piloting a vehicle attached from anywhere in the Internet with speed, precision, and accuracy, in a modeled urban environment. Interns will also evaluate the strengths and weaknesses of remote piloting interfaces for ground-based vehicles.
Week 1
- Set up GitLab and ORBIT accounts.
- Re-assembled Servo Steer car and wrote code to get it driving.
- Accessed the Raspberry Pi terminal via SSH to run code wirelessly.
- Explored camera options for Servo Steer car.
- Researched methods for wireless data transmission between the microcontroller and a laptop.
- Started establishing a client-server connection between a laptop and the Raspberry Pi on the Servo Steer car.
- Assembled hardware and electronics for the mecanum robot.
Goals for next week:
- Establish the client-server connection with our laptop and the Servo Steer car.
- Begin developing client-side controls
- Set up and develop mecanum software (eventually focus on maneuverability and efficiency)
Week 2
- Fully assembled hardware and electronics for the mecanum robot. We got the mecanum car to drive in all directions including strafing and moving diagonally.
- Established the client-server connection with our laptop and the Servo Steer car.
- Created server (running on Raspberry Pi) using Python to listen for UDP packets and interact with GPIO to control motors.
- Improved efficiency of
- Created a client (Using electron and react.js) to make the user interface that sends packets with UDP to the server
- Utilized ZeroTier to set up a VPN that creates a VLAN
- Learned bash scripting and Linux to run server code and expedite development
- Updated GitLab repository, used package managers (pip, npm), build tools (vite), and formaters (eslint)
- Server efficiency (eliminated inefficient code - like "while True" - that blocks main thread and hogs CPU).
- While assembling mecanum hardware we had to reverse engineer the pin mapping of our OOSYOO motor drivers.
- Figuring out optimal architecture to minimize latency.
Goals for next week:
- Further develop the client/server software.
- Begin developing client-side controls for steering and implementing virtual joysticks
- Begin sending camera frames to the client side
- Adapt the client and server code from the servo steer car for use with the mecanum car.
- Experiment and test low latency networks and ZeroTier to reduce lags
- Add features that improve robot functionality and aid the user(object detection, sensor integration, emergency stop)