You are browsing as a guest. Sign up (or log in) to start making projects!

Rover Autopilot Software

  • 5 Devlogs
  • 12 Total hours

A script in kOS to control a NASA-like rover autonomously in Kerbal Space Program. This includes setting a destination, toggling 360 degree turns, moving completely automatically, detecting and maneuvering on slopes, displaying route data, and performing scientific analysis (including sample collection).

Ship #1 Pending review

I made a rover autopilot program, written in the KerboScript Language, designed to automatically control a rover in Kerbal Space Program. The script's navigation function scans the current planet that the rover is located at, and shows a list of found waypoints. The script then prompts the user to select a certain waypoint to target. After that, the rover will start driving completely independent of user input. The program's built-in functions include the following: point-turns for rotating in place (using differential steering) to match the target heading; speed and steering control, and slope-awareness to maintain its speed between 1.0 and 2.0 m/s no matter if it is climbing or descending hills, or cruising on flat areas; scientific analysis sequence, and automatic data transmission to collect data and soil samples from the planet, and transmit results automatically; and navigation data calculator and display to calculate remaining distance, show current speed, and, based on those values, calculate estimated time to arrival. For maximum realism, the script was written and tested on a replica of NASA's Curiosity Mars Science Laboratory rover built in Kerbal Space Program.

  • 5 devlogs
  • 12h
Try project → See source code →
Open comments for this post

3h 37m 43s logged

This is Devlog #4 (and possibly final before shipping) of the Rover Autopilot Software… The code is finally on its 1.0 version and ready for shipping. All testing has been concluded, along with the scripts limitations. I need to start writing the final README version (and add some pictures to it), and begin editing the Youtube video for the Demo URL. Here is timelapse video of the Scientific Sequence in action from waypoint arrival to end of script.

0
0
4
Open comments for this post

4h 53m 39s logged

This is devlog #3 of the Rover Autopilot Software… I think I could FINALLY figure out how the rover can do efficient, controlled point-turns. The code had a function named setWheelReverse, which I removed because (after 4+ hours of debugging) I found out it was never reversing the assigned wheels. So, I came up with a smart solution: torque vectoring. There is a new function on the code named setWheelPower that sets a drive limiter on certain wheels -25% on the left wheels and 50% on the right wheels. Then, the executePointTurn function enables the drive limiter, sets every motor to 100% (or -100% for turns in the other direction), and rotates almost in place either way until the targeted heading is reached. Then, it stops turning, returns the wheels to normal, and starts driving. I also coded an intelligent slope-awareness function that does the following: maintains cruise speed on flat areas, speeds up on uphills (and recovers with max power if needed), and idles the motors and brakes on downhills. I will leave a video below showing every function in action, except for the science sequence, which I will show on the next devlog.

0
0
3
Open comments for this post

1h 12m 17s logged

This is devlog #2.5 of the Rover Autopilot Software… The video from last devlog probably didn’t upload because of its size so I made a better, smaller one. I upgraded the code and fixed some bugs that were messing with the point-turn function. I need to add a slope-awareness function for the rover to maneuver appropriately, since there are too much steep mountains on Duna. I will continue developing this project and make it as similar as possible to a NASA/JPL software.

0
0
3
Open comments for this post

1h 19m 50s logged

This is devlog #2 of the Rover Autopilot Software…Update version. I finished writing the code for the rover’s functions. These include the following: turning wheels and making point-turns, moving completely independent of user input (except for waypoint selection), performing scientific analysis, and moving various robotic parts. Update: I will leave in this devlog a video showing a test of the rover. It turns (somewhat; planning to rewrite/edit the function), drives, brakes, and overall, moves just fine. Btw, the rover definitely NOT moves at the speed a real rover does.

0
0
4
Open comments for this post

51m 53s logged

This is Devlog #1 of the Rover Autopilot Software… Touchdown confirmed! The test rover has landed successfully in Duna (Mars in KSP) and I already wrote the main control loop for the rover. It still needs a little bit of polishing, but I will be testing the code and adding more functions. Planned functions are the following: rotating certain wheels, and setting them to reverse to activate 360-degree turns; slope-awareness; robotic arm extension, retraction, and sample collection; and automatic data transmission (antennas are power-hungry). The test rover is a (state-of-the-art) replica of Curiosity. I’ll leave some pictures below:

0
0
17

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…