Team Members: Dhruv Ramaswamy, Nandini Venkatesh, Daniel Mahany.
Advisor: Dr. Richard Martin
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.
* 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.
Goals for next week:
1. Establish the client-server connection with our laptop and the Servo Steer car.
2. Set up mecanum hardware and electronics (eventually focus on maneuverability and efficiency)
* 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.
* Utilized ZeroTier to set up a VPN that creates a VLAN which, hypothetically, can allow us to connect to the server from anywhere in the internet.
* 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)
Challenges/Issues:
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:
1. Further develop the client/server software.
2. Adapt the client and server code from the servo steer car for use with the mecanum car.
3. Experiment and test low latency networks and ZeroTier to reduce lags
4. Add features that improve robot functionality and aid the user(object detection, sensor integration, emergency stop)
* Adapted the client and server code from the servo steer car for use with the mecanum car.
* Created a client-side web application using ......
* Configured the ZeroTier VPN to establish a connection between the client and server over multiple networks/hotspots.
* Created a base design for the simplified user interface
Challenges/Issues:
We experienced issues with certain cameras connecting to the Rasberry Pi.
We faced inconsistencies with ZeroTier, likely due to configuration issues.
Goals for next week:
1. Further develop the user interfaces for both vehicles
2. Confirm our suspicions about ZeroTier inconsistencies
3. Add distance sensors (ultrasonic) for the emergency stop mechanism.
5. Begin working on the academic poster.
https://docs.google.com/presentation/d/1Dc46WQi3UIjuc6GAXkPZOoEWaIXUsZ9bxaexI6z-T0E/edit?usp=sharing
* Updated UI for both vehicles.
Finished key mappings
Fixed small bugs
* Added the emergency stop feature to the mecanum car.
The car now stops right before colliding with an object.
You are able to move in every direction except forward when you are too close to an object.
Challenges/Issues:
Goals for next week:
1. Improve functionality of car
2. Add sound transmission between the server and the client
3. Work on academic poster and final presentations
* Further Updated UI
Prevented dramatic servo turns to prevent RPI crash
Created a ping feature
Created a toggle safety mode button and added a list of keyboard shortcuts
Debouncing sliders/buttons/error messages (to prevent server overload of data)
* Improved Video Streaming
Allows you to retry and fetch for video
Shows error states
* Fixed bugs in python script
Changed pin factory for more accurate ultrasonic sensor readings
Debugged threading errors
* Final Presentation
https://docs.google.com/presentation/d/1D70dHCT41cXl2-ZLfhSjVh6BIAjm6CUfTcdDUls1Fhw/edit?usp=sharing
* Academic Poster
* GitLab Code Repository
https://gitlab.orbit-lab.org/dhruv-ramaswamy/remotelypilotedvehicles
Future Goals:
* Reduce latency further for remote connections over the VLAN
* Improve Driver Usability
Easier keyboard shortcuts
Smart Driving Features