This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
Cozzimoto's profile picture

[b:7] Turtle Remote Control Voice Command [added Turtle Grouping]

Started by Cozzimoto, 13 November 2013 - 02:30 PM
Cozzimoto #1
Posted 13 November 2013 - 03:30 PM
TRCVC Turtle RC Voice Command [OP Edition]

Control Multiple Turtles at once with your voice

Current Server Build: 7 (Nov 25,2013) | Client Build: 7 (Nov 25,2013)



Hello Nerds! May I present the best RC Program as you do not have to be at a physical computer to control them. Why control one turtle when we all want to control 10 at the same time. This program is not much as of right now, but I have big plans for this system if this takes off and people want it. =)


Requirements: OpenPeripheral 0.1.9 for MC 1.5.2 (Forum Link)


Why Use This?
[indent=1]I wanted to create something to control turtles without having to be stuck at a terminal. I plan to see if i cant get turtles to work together to accomplice a large task like for example building a great wall or your typical quarry program. Maybe better yet a strip mining program where several turtles work together to find you Diamonds. I am sure ill come up with more reasons and more stuff to add to this as this is still a very early build and i wanted to get it out there for the masses.[/indent]


Features
  • Control Multiple Turtles at once
  • Toggle different turtles to move only the ones you want
  • Group certain turtles together for separate tasks
  • Send Turtles to Specific Coordinates
  • HUD for all Status' of your turtles on the controller


Chat Commands
[indent=2]Note: Facing/Orientation conversions North = 2. South = 0, East = 3. West = 1[/indent]
  • $$ walk <direction> [Optional: Iteration] Move active turtles Example:
    $$ walk forward 5 left 2 forward 10 back right
  • –>> Turn Command is now integrated with the Walk Command Example
    $$ walk back 5 turn left forward 6
  • $$ goto <X-axis> <Z-axis> <Y-height> <Facing> Move turtle to a location Valid facings 0,1,2,3
    $$ goto 512 278 72 0
  • $$ turn <direction> orientates the turtle left right or behind him Example:
    $$ turn left or $$ turn around
  • $$ toggle <ID> toggles the state of the turtle on the controller EX:
    $$ toggle 29
  • $$ kill or $$ die terminates the program
[indent=1]There are a few Group Commands you can use as follow[/indent]
  • $$ group add <TurtleID> <GroupNumber>
  • $$ group del <TurtleID>
  • $$ group sel <GroupNumber>
  • $$ group off


Turtle status/states on HUD
[indent=2]When a Turtle is Connected to the Controller/Server there is a background colored to a specific state of that particular turtle.[/indent]
  • GRAY - indicates the turtle is registered to the controller/server but no connection was established
  • BLUE - indicates the turtle is connected and ready for commands but is not active on the controller/server
  • GREEN - Indicates the turtle is active and that any commands you send over will be applied to these turtles
  • ORANGE - Indicates the turtle is currently doing something and any commands you send to it will not go to the turtle
  • RED - Turtle has either crashed or an error occured
  • WHITE - Turtle has no world GPS coordinates saved and might get lost easily with $$ goto command
  • YELLOW - Turtle has below the warning level amount of fuel (users will be able to set level in a later update)
  • PINK - Turtles Inventory is full or above the warning level (users will be able to set level in a later update)
Whats in Next Build? [Build 8]
  • Add $$ Help command to display status's of turtles
  • Add $$ dig and integrate with w/ Walk Command
  • Add $$ Mode with arguments Passive [P] or Aggressive or [A]
  • Add $$ rs for Red-stone states on different sides of turtles
  • Client-side re-connection protocol
Planned Changes
  • File listings of programs already on turtles and option to execute
  • Upload files from server/controller to specific turtles or vise versa get files from turtles
  • check for updates and update the software on every connected/registered turtle (swarm update)
  • integrate GPS to check Turtle Locations
  • Turtle Modes: [Passive] does not dig blocks [Aggressive] digs blocks
  • get a first co-op program for turtles to do IE like strip mine or quarry
Bugs/Problems
  • $$ goto Command only works with one turtle at a time – plan to change this to send a group of turtles to a small area (Low Priority)
So if you want to see more tell me about it, got something interesting? please share, I love all Criticism good and bad.

## Change-log ##Build 7
  • Groups now Tweaked appropiately
  • Groups are now shown on server/controller restart
  • more Debugging info
  • + server-side re-connection with turtles on server boot-up
Build 6
  • ​+ Group framework for turtles
  • + Re-connection Protocol on server restart
  • + "-u" argument to delete all program generated files for a fresh bootup (both Controller and Receiver side)
  • Integrated turn Command in walk Command
Build 5
  • + "-d" argument to enable debugging on program start for turtle and server
  • Fixed Server crash on boot-up from GUI not redrawing itself, GUI parameters now save in the "server.properties" file
Build 4
  • + GUI Ver_1
  • + update when turtle finishes command
  • Combined Turtle and server settings into one file on the controller/server
Build 3
  • + $$ goto Command
  • + "debug.txt" file for server and turtles
  • + Orientation system for $$ goto Command
Build 2
  • Reworked networking code (added protocols)
  • turtles now move exact number of spaces
  • turtles and server now save positions and ports
Build 1
Initial Release
ScreenshotsTurtle Status as Active (Green) and Inactive (Gray) on the Controller

Edited on 25 November 2013 - 09:30 AM
redeye83 #2
Posted 14 November 2013 - 04:14 PM
Could you give examples of where you would use this?
Could you for example use it to send "scout" turtles out to find useful resources and mine them?
One thing that might be cool/useful would be to get a number of turtles to be set a task of builing for example a tunnel network with them all having a set part to do. once a turtle had completed their set task they could send a message asking for its next tasking. This would allow you to have a semi automatic building team.

How would you stop someone sending commands to your tutrles?
Cozzimoto #3
Posted 14 November 2013 - 06:42 PM
great post Redeye i think about your suggestions and ill see what i come up with on the things i implement

+1 to Redeye
redeye83 #4
Posted 21 November 2013 - 12:42 PM
Any news on this project?
Cozzimoto #5
Posted 21 November 2013 - 06:54 PM
the past few days ive taken a break as the gui is really messy code in Build 5. Build 6 im working on adding groups. adding more connection protocols and status's of turtles for disconnecting and reconnecting. and as for encryption goes for the system, i wont worry about that till nearly last thing i add, or until there is a current problem about not encrypting the transmissions.

im also working on a function to create and save protocols so the server knows how to handle them.
Edited on 21 November 2013 - 05:55 PM
Cozzimoto #6
Posted 22 November 2013 - 09:20 AM
bump for updates and critical news on latest build

Implemented Grouping of turtles, but all features of grouping are not fully functional
this build is stable enough to push the update so the project is not dead. I recently took some time off a few days away from my computer but now im diving back into it.

known issues:
the HUD doesnt redraw itself properly on the status change of a turtle
and in build 7 all functionality of grouping turtles together will work, just give me a few days

=)