Page 20 of 29

Re: Sight for the Blind for <100$

Posted: Thu Jan 07, 2016 11:45 pm
by PranavLal
<snip I hope you just mean the menu for raspivoice, and not the main menu that launches the programs.
PL] Yes, I meant the menu for raspivoice. I do not need the main menu talking while raspivoice is running. Option 3 sounds the best.

Ah wires. There seems to be no help for them. If you have a big battery, then we are down to 2 wires one for the camera and one for the headset. In theory, you could attach a wireless headset with a USB dongle and get the wires down to one.
I say "in theory" because I have not tested this. This is one of the fantastic things about an open design like this one. You build the eye you want. <smile

Re: Sight for the Blind for <100$

Posted: Fri Jan 08, 2016 4:33 am
by blindzagm
I am one of the guys on the seeingWithSound mailing list that's been playing around with the stock raspberry pi B+ v.2, and would specifically like to have a way to use a form of keyboard interface to menu systems, and, also think that something like an external USB numpad would be most suitable, since that's something was considering in any case, for use with raspberry pi, in other contexts, since most of the screen reader versions used along with it's other operating systems want to use that in terms of screen review, etc.

Re: Sight for the Blind for <100$

Posted: Fri Jan 08, 2016 9:59 pm
by blindzagm
BTW, is there, currently any way to make configuration changes to the raspivoice instance running on the pi, without the rotary knob/dial? As in, something like a text file I can edit/change to do something like, at least turn on outline emphasis/recognition, etc.?

Re: Sight for the Blind for <100$

Posted: Sun Jan 10, 2016 2:06 am
by PranavLal

See for possible ideas. There is a central configuration file but I am not sure where it is. That is how the settings are persistent across runs.

Re: Sight for the Blind for <100$

Posted: Sun Jan 10, 2016 2:26 am
by mikey11
please submit your request for settings you want in the configuration file. I will add them when I add support for usb keypads.

I expect to have the time to do this within two weeks.

I will also try to implement the 'operating' menu that will become available once you have launched an application.

A good place to find a list is in options.cpp or options.h for raspivoice if you want settings for teradeep, dream them up and we will see what we can do.

Re: Sight for the Blind for <100$

Posted: Sun Jan 10, 2016 3:37 am
by mikey11
in the meantime, examine aftersight.cfg in the /home/pi folder

It has the settings that are currently being saved.

Adding more has to happen both in that file, and in the code the references both reading from and writing the settings back to the file. If you wanted to add configuration variables, and you miss one of those places, the code will fail. If not on the first run, then on the second for sure.

Currently does the complete read, and is the only code that writes the config file.

Other processes such as are free to read from the file, but I wouldn't want them writing to the file because will be running at the same time, and without good error checking we could run into a random error that doesn't happen too often.

Re: Sight for the Blind for <100$

Posted: Sun Jan 10, 2016 5:43 pm
by blindzagm
Ok, will check out aftersight.csv, but, besides being able to use the keypad to change settings on the fly - hopefully anyway - would it be possible, for now, to SSH into OS remotely at moment, to edit that file, or will I, for now, need to extract SDCard .img, extract it's contents, make changes, and then recompile them back into a .img file for writing to SDCard again? And, is this topic where I submit requests, or is there another, more specific form of online interface..?

TIA <smile>


Re: Sight for the Blind for <100$

Posted: Sun Jan 10, 2016 6:57 pm
by mikey11
ssh using 'pi' as user

'raspberry' as password

Re: Sight for the Blind for <100$

Posted: Wed Jan 13, 2016 5:49 am
by blindzagm
Next question - in options.cpp, presume following lines would relate to edge detection?

{ "edge_detection_opacity", required_argument, 0, 'E' },
{ "edge_detection_threshold", required_argument, 0, 'G' },

And, if aftersight.cpp, is there something I can add/change to bypass the confirmation messages relating to accepting responsibility, without having the hardware to currently make use of menu's etc.?

TIA (again)


Re: Sight for the Blind for <100$

Posted: Wed Jan 13, 2016 6:12 am
by mikey11
The disclaimer should go away after the first boot.

If it doesn't, delete /home/pi/introtext.txt

Accepting the disclaimer occurs when you proceed to use the device. is where you could add keyboard functions to make use of the device, though I plan on doing this in the near future to make use of USB keyboards.

Re: Sight for the Blind for <100$

Posted: Wed Jan 13, 2016 6:45 am
by blindzagm
Will try out removing introtext.txt - like mentioned on seeingWithSound mailing list, first boot read out whole disclaimer to me, and then booting up after that just read out a short mention of needing to still accept disclaimer, but, let's see.


Re: Sight for the Blind for <100$

Posted: Wed Jan 13, 2016 2:58 pm
by killor
seeingwithsound wrote:Yet another potential future alternative for the Raspberry Pi? "PINE A64, First $15 64-Bit Single Board Super Computer" ... per-comput

Hi, yesterday I order one on KS 15$ + shipping 12$ to Spain.

While I wait, I have made and the wood enclosure (Birch wood)

I also sell on eBay and Etsy sites.. :mrgreen:

Re: Sight for the Blind for <100$

Posted: Thu Jan 14, 2016 8:26 pm
by mr_indoj
So, i'm close to have the new image ready.
Teradeep did release sample code to use the thnets library with the demo-apps model.
I have been able to use that instead of torch, and that gives better performance i think. There is still a noticeable increase of gap between soundscapes when raspivoice and teradeep is running together, but the soundscapes seems intact to me.
I have made separate python classes of the code that handles starting raspivoce and teradeep. These classes get passed an instance of the camera class, that owns. This means that every module is responsible to generate the image that it needs (resizing etc).
Its also easier to start and stop the module from the menu code (just raspi.start() etc).
I have, for now made the launch raspivoice etc menu entries into toggles that toggle them on and off. And, when both are stopped, the camera stream is also stopped.
I'm wondering, are there interest that we continue to have jetpack as an option, or should i disable it for now (otherwise i will have to migrate it to the new structure)?

Re: Sight for the Blind for <100$

Posted: Thu Jan 14, 2016 11:16 pm
by mikey11
I have been in touch with Pete Warden who was a main driver behind jetpac. It was fairly clear from his email that there are no additional networks available, and that since he is now working for google on tensor flow, any future support is probably going to be nil (but tensor flow will very likely be a thing on the raspberry pi eventually...).

I would say disable it from the menus, but leave it installed on the filesystem. Maybe it will be resurrected one day.

I'm looking forward to getting your filesystem image. I'm quite keen to see both operating simultaneously and wrap my head around how you coded things to get myself caught up, and also add the audible playback of the distance to your progress. I have also rewritten the vibration python code and will replace that.

Re: Sight for the Blind for <100$

Posted: Thu Jan 14, 2016 11:28 pm
by mikey11
As for the PINE, I am interested to see how all the new single board computers that are coming to market pan out. One feature I like on the PINE is the integrated battery charging. That will save about $20/unit on top of being cheaper than the rpi v2. I'm all for experimenting. I occasionally order these items and evaluate them when I have time.

I don't want to make any hasty decisions though. I want to see what the longevity is like for these companies, as I feel the rpi foundation has an extremely good record, and although their hardware may not be top of the heap, or have every feature I would like (wish list: integrated battery management, a built in microphone, a proper shutdown procedure/hardware...), I don't want to have to retool if a smaller player with better hardware goes under. It's a lot of work to do circuits and case design, and has the potential to create my own supply chain headaches in the future, and I want to be highly reliable.

Of particular interest to me at the moment is the rpi V 0. I have as yet been unable to get one of these. The bright side is that the existing supplementary electronics will work with no changes, the final device size will be smaller, the power consumption should be lower, and of course the cost is low. The main drawbacks are the weaker processor, and that I would have to build an audio circuit, and add it to the other electronics.

Whether we can get acceptable performance from the V 0 is a big question, but without one to do the investigation, it's difficult to say. I am hoping when I place my next order to build more of the current hardware version, the V 0 will be available at the same time.

Re: Sight for the Blind for <100$

Posted: Fri Jan 15, 2016 8:29 am
by blindzagm
mikey11 wrote:The disclaimer should go away after the first boot.

If it doesn't, delete /home/pi/introtext.txt
--- is where you could add keyboard functions to make use of the device, though I plan on doing this in the near future to make use of USB keyboards.
Ok, deleting introtext.txt let it boot up, into menu, with no mention of disclaimer, first time, but, then next reboot, it again , prompted me to agree to disclaimer.

Will look into - one question, what version of python is running, and is it likely to handle raw_input/input interaction?

But, yes, will check out

Side note - I use an app on my android phone called net scan to find IP addresses for all units/machines connected to router, including their host-names - useful at times like this, since then just used winSCP, on windows10 PC to remotely connect to pi, edit/delete files, etc. etc.


Re: Sight for the Blind for <100$

Posted: Sat Jan 16, 2016 8:13 am
by seeingwithsound
mikey11 wrote:I would say disable it from the menus, but leave it installed on the filesystem. Maybe it will be resurrected one day.
I support that. It is quite conceivable that future ImageNet LSVRC image recognition contests will focus on specific more practical sets of image classes as needed to let robots freely roam a natural environment, let blind people "see" their environment, and so on, leading to more relevant neural networks for image recognition. After all, who really cares about being able to identify a "nematode" when setting priorities for a relatively small set of 1,000 image classes?


Seeing with Sound - The vOICe

Re: Sight for the Blind for <100$

Posted: Sun Jan 17, 2016 10:10 pm
by mr_indoj
I'm currently updating the repository with my new code.
Then, i'll take the opportunity to test some ideas of creating a script that compiles and copies code from the repository, so that we can do smaller updates without everyone having to dl the whole image. Just run the script. I'll test that to create the new image. In this image there is one thing that is changed outside of the code, and that has to do with USB audio, so that you can plug in USB audio., this requires a system config change that let USB be the default audio if its plugged in. After that hopefully we can work more with the local code, and don't have to recreate the entire image every time.

Re: Sight for the Blind for <100$

Posted: Tue Jan 19, 2016 10:27 pm
by mr_indoj
Ok, so now the new image is ready to download.
The url is: ... file%2czip

As i described earlier, in this version you can have both raspivoice and teradeep running at the same time. You can autostart them both also if you'd like.
The main menu entries toggles them on or off on each press.
Its possible to change the settings on the fly, if you change teradeep settings, they will take effect directly (currently only the threshold setting is available.
And, if you change the raspivoice playback speed, there will be a short pause, since for now raspivoice will have to restart, but that's done automatically.

If you plug in usb-audio that should be uses instead of the internal headphones jack.

I currently have removed the select camera setting, since that will have to be done differently.

I have created a few simple update scripts, wich we unfortunately will have to use right now with this image, because i made a mistake with the volume settings menu, (if you don't try to change the volume in settings it will work fine without updating).

To update you connect with ssh and run:.

Code: Select all

and then:

Code: Select all

Then you MUST restart the device.

This will update from git, and then replace all the python files, so if you have changed some code, take backup first!

Re: Sight for the Blind for <100$

Posted: Tue Jan 19, 2016 10:51 pm
by mikey11

Will do this later today and add some more including better vibration, an distance readout.

Over the next few days I will make sure the raspivoice lag gets fixed, and try to add keypad functions for those without the electronics.

This should all be the basis for a much better experience.

Additional food for thought:

I've had a number of requests from blind users, and want to share and see what peopl think.

Color detection: this should be possible to do with th camera view, but I can also make a pluggable fingertip sensor that communicates via i2c.

The finger sensor allows some better control over what is being examined, but would probably add 30$ a another cord.

One user finds that as crossing roads, they tend to drift a bit. Dangerous with traffic around. Initially I though there might be a way to set a point with open cv and guide them towards it. Peter chimed in suggesting they can simply use the vOICe to pick an object in the field of view and work from that (paraphrased). I discussed that option with the user, and they are simply too new to the vOICe to do this reliably right now.

One solution is a 9 degree of freedom accelerometer/gyro sensor. This would also communicate via i2c. I am confident that I could do the programming to make that work as a straight line following application.

I also looked at the Intel realsense technology. It looks fantastic, but it also looks expensive. It would allow the multiple cameras to supply depth information in a more sophisticated way than is done with the sonar currently employed. Bottom line, cool but expensive. One day when 3d videoglasses are under 100$ then maybe.

Something that has been requested numerous times is bluetooth support. I like this because it helps get rid of wires, and can make additional sensor modules such as the color sensor wireless as well. While I'm not making a comittment to bluetooth, I will explore it.

In the long run, I think we can expect that single board computers will integrate bluetooth, the gyro/accel sensors, battery management, a microphone, and better power management. As a result I want to focus efforts more on bluetooth, and the gyro/accel than on the color sensor.

Thoughts about future functionality?

Re: Sight for the Blind for <100$

Posted: Tue Jan 19, 2016 11:58 pm
by PranavLal
Hi Mike,
I vote for the gyro/accel sensor. The thing about the color sensor is that it gives people an instant connect with the technology. Having said that, teradeep could also do the same.

As for Bluetooth, get hold of a Bluetooth module and try. See the below link for more information. ... oth-setup/
I have a module lying around so let me know if I can test.
One outstanding issue remains the availability of camera glasses. I am still awaiting a pair so we should consider integrating a headband and a fish-eye lens. This could be sold as an extra upon request.

Re: Sight for the Blind for <100$

Posted: Thu Jan 21, 2016 4:01 am
by mikey11
So I had to resize the SD image. I was able to shrink it to under 8GB. (It's closer to 6.3 GB total right now).

The way I did this was to use a gparted live CD. When I finish up, I will likely have to continue with SD images until I can figure out how to make git work properly for me. It seems when I submit a file like a for instance, it then shows up as on the repository. Obviously I can't have files getting erroneous names, as I sometimes have to refer to them. If anyone has tips, I'm all ears. I have been submitting my files from git on windows. I may just need to do the submission from the rpi itself under linux.

Being able to resize and trim down is handy. One expects that if the total size can stay below 8GB is keeps the mass production costs down a bit.

Re: Sight for the Blind for <100$

Posted: Thu Jan 21, 2016 10:07 am
by mr_indoj
Have you tried the Github desktop client,
Also, what other tools are you using, i would use something like winscp for files, and notepad++ for editor on Windows? Can you see the .txt extension in Windows Explorer if you disable Hide extensions of known file types" in Folder options/View?

I currently myself use a Mac for this project and Github desktop and Coda editor, wich also have remote file management via ssh built-in.

Re: Sight for the Blind for <100$

Posted: Fri Jan 22, 2016 9:20 pm
by mikey11
I am using the github desktop client and notepad ++. I don't know what my problem is. I'm sure I will sort it out, I have naturally looked at extensions, and everything 'seemed' to be ok, but obviously is not.

I'm currently making my additions (it's going well), but I have a request:

I need to understand key input codes better. I do not have a number pad on the laptop i am working on, and I just want to confirm some keycodes.

Could you run this code:

Code: Select all

import curses

def main(stdscr):
    # do not wait for input when calling getch
    while True:
        # get keyboard input, returns -1 if none available
        c = stdscr.getch()
        if c != -1:
            # print numeric value
            stdscr.addstr(str(c) + ' ')
            # return curser to start position
            stdscr.move(0, 0)

if __name__ == '__main__':
on a linux computer (rpi is fine), and let me know what codes you get for the 4,6 left arrow, right arrow, and enter key?

I get

4 = 52
6 = 54
left arrow = 260
right arrow = 261
and enter = 10

I feel like there will be a few more possibilities for the 4,6,left arrow, right arrow, and enter on a number pad.

I am going to purchase one soon, but if one of you has one, that could save me some time.

This 'should' allow users who do not have the After Sight hardware to use the software, and be able to use raspivoice and teradeep. I can't make any guarantees yet that my first go at it will result in a highly reliable non-crashing experience, but it shouldn't be too hard to track the bugs over time and figure out ways to mitigate them.

Re: Sight for the Blind for <100$

Posted: Sat Jan 23, 2016 7:09 am
by mikey11
Non after sight hardware users will be pleased to know some effort has been put in to getting things working with a USB number pad in mind. I purchased one today, and based my dev off that. of course a regular keyboard can be used just as easily.

I assume (not always smart) that number pads are all similar. On mine, the minus, plus, and enter key are located in a line vertically on the far lower right of the number pad. whereas the four, six, and enter key are not located in as logical a fashion. I chose to go with the vertical set of keys because they are very easy to find.

I used info from the post here: ... 3#31736883

to create a class to asynchronously track keypresses in a threaded manner. There is a bit of useless junk, but it works well.

In initial testing, I have been able to reliably navigate the menus, launch raspivoice and teradeep etc.

The main bug so far is that there seems to be a critical interval where I can crash raspivoice somehow by pressing '+' or '-'
teradeep seems immune from this, and also seems rock solid. I just spent a couple minutes on this bug. It actually espeaks 'goodbye' to me, and then stops operating. So the best way to run both teradeep and raspivoice right now is to start teradeep first, or be willing to toggle raspivoice when required to restart it.

I believe this must be located in the raspivoice code.

I was never confident with the raspivoice code, so I'm going to need to take a dive in there and see if there is key monitoring happening in there.

I am going to sync an image ASAP. better minds may solve that crashing bug.

I swear the second I have my github issues sorted out properly I will use that method of updating my changes. Thats the whole point, and I do pay monthly for the service. erg.

I have also added some functions:

I now have a setting to read the rangefinder distance as "x.x meters" in english following the teradeep classification.
the setting is in the config file as well, and only executes if the user wants it to.

I have had to exclude vibration from executing if that setting is enabled. It can cause problems when both try to access the com port to scan for the info there. So vibration can happen, but the audible distance reading must be set to off.

Anyhow. Promised updates are on the verge of being delivered. I will try to downsize the image as well before I send it out. With good luck, it should fit on 8gb cards.

I know its a rambling post. hopefully the image brings you a smile when you boot it.