Proposed Client -> Rasp Pi Control Software

The more technical aspects of Spirit, and carry-over discussion from Kickstarter updates.
marckarasek
Posts: 23
Joined: Sun Jan 14, 2018 1:59 pm

Proposed Client -> Rasp Pi Control Software

Postby marckarasek » Sun Jan 14, 2018 10:25 pm

I would like to propose a client <-> server model for controlling the Rover over Wifi (and eventaully BT). i have developed this for another project involving the Rasp PI and a 32x32 Led Display. The client for this is either a linux application or an Android App going over Wifi to the Rasp PI.

You can check out the code :
Android Client: https://github.com/MarcKarasek/Android_Led_Server
Rasp Pi/ Linux Code : https://github.com/MarcKarasek/rpi_rgb_ ... rneldriver

This uses UDP as a control plane for sending in commands to the Rasp PI. And TCP as a data stream for sending display frames to the 32x32 led Display.

I have started to port this over to the Rover

Android Client : https://github.com/MarcKarasek/AndroidS ... Controller
Rasp Pi Server : https://github.com/MarcKarasek/SpiritRover_PiServer

This is still a WIP and would welcome any help/feedback/testing (whern we get to a testing phase).

I envision having an app on Android to send commands to the Rover (move fwd, move bkwd, etc..). Sending these over UDP/BT. With TCP being used as a transport stream for pictures/video from the Rover.

I plan on having the baseline Android App and Rasp Pi server up in a week or so. Adding in the GPIO backend to send commands to the Arduino.
In keeping with the spirit (pun intended) of the Rover being inspired by his older brothers on Mars. I want to keep the commands such that you could also script them as they do for the Mars robots. Sending in a sequence (move 3 fwd, turn left, etc..).

Marc

marckarasek
Posts: 23
Joined: Sun Jan 14, 2018 1:59 pm

Re: Proposed Client -> Rasp Pi Control Software

Postby marckarasek » Wed Jan 24, 2018 1:38 pm

I will be updating this code shortly with a demo app for android and the server code for the PI.

The initial code will be leveraging the python code for triggering the buzzer. Hope to have the app and the server with some instructions on how to install after this weekend.

gpvillamil
Posts: 75
Joined: Fri Jan 26, 2018 5:03 pm

Re: Proposed Client -> Rasp Pi Control Software

Postby gpvillamil » Sat Jan 27, 2018 3:24 pm

How feasible would it be to run a web server on the Pi, with an embedded video stream, and buttons for driving?

Then no client is required, just go to the IP address of the robot.

marckarasek
Posts: 23
Joined: Sun Jan 14, 2018 1:59 pm

Re: Proposed Client -> Rasp Pi Control Software

Postby marckarasek » Sat Feb 03, 2018 8:05 pm

Very doable..

I am using some code from another PI project I have that was sending data/control to a 32x32 led display. One of the benefits to having a client server model is it closely follows the real Spirit that is up on Mars.

With this appraoch a separate program could be developed to send a seqence of cmds in. ie Turn left, move forward 3 units, take a picture, etc.. I think this would be a great way to reach out to kids and teach them about how the real Spirit is 'driven'. By sending it a seq of instructions to execute.

Also having a web server on the PI could also use this model. As long as the underlying code to recv cmds is generic enough how the cmds get there is not a big deal.

I am currently working on getting the Android App and Server on the PI up and running. It will send commands (move fwd, back, take a pict, pan head left/right, etc..). I have defined most of the commands and should have some code up and running in a few more days of work.

Check out my github projects and follow them for updates..

Marc

marckarasek
Posts: 23
Joined: Sun Jan 14, 2018 1:59 pm

Re: Proposed Client -> Rasp Pi Control Software

Postby marckarasek » Sun Feb 04, 2018 11:05 pm

Got more of the Android App UI Done.

Will work on the PI server part and getting the two to talk with each other.

Plan to stub out on the PI the commands for each of the actions from the App (rover move fwd, move back, turn left, turn right, etc..).
These can then be tied into a linux kernel driver to handle sending the commands over the I2C to the Arduino.

Marc


Who is online

Users browsing this forum: No registered users and 2 guests