

My Senior Design Project: Node.js WiFi-Extending Robot - Glench
http://glench.com/make/nodejs-robot/

======
krschultz
Why JavaScript? This is not a flame, I'm sincerly interested.

I have made several robots from small hobby projects up to an autonomous
driving car (college team). For all of those we used C or C++, with one
exception that used Java. For the Java controlled robot I built a web
interface that allowed you to control it remotely over wifi (similar to this,
without the repeaters).

I have been thinking about using Python or Ruby for the high level logic while
using C/C++ down low controlling motors/sensors. Or maybe running a JVM and
doing the high level logic in Closure or Scala with JNI over the drivers.

Either way, I see why you want a high level language for the logic, but why
JavaScript/Node.JS? I guess this is more remote-controlled rather than
autonomous, but for autonomous systems I don't see what JavaScript brings to
the table.

~~~
dhruvbird
I guess there are some interesting results as a result of this effort:

* Javascript can be used to program these things and is quite capable of handling low-level kind of stuff

* Since it's easier to write js code than c/c++ code (for me), I would personally prefer it; assuming that the performance degradation is within allowable limits

~~~
alberich
What do you define as low-level stuff? It seems that Node.js was used to
communicate with the components running on a regular Linux OS, not really the
low-level stuff that you would be able to do with, say, C.

~~~
olalonde
Right. I'm not very familiar with Arduino but I assume its microcontroller was
programmed in C or assembly. Probably it listens for simple commands such as
"activate/stop left wheel", "activate/stop right wheel".

edit: Apparently, Arduino uses its own programming language: "Arduino hardware
is programmed using a Wiring-based language (syntax and libraries), similar to
C++ with some slight simplifications and modifications, and a Processing-based
integrated development environment." <https://en.wikipedia.org/wiki/Arduino>

------
jauer
"Unfortunately, cheap, off-the-shelf WiFi repeater units are not available and
the network configuration for the devices we did find was extremely difficult,
so we decided to use consumer-grade Linksys routers loaded with the open-
source dd-wrt firmware."

Did you look at Ubiquiti devices? Their PicoStation would be perfect for this.

Also, and this depends on what you consider cheap, I would have used 900Mhz
for the connections between repeaters, base station, and robot since it will
go further through rubble. Use HWMP for mesh across the repeater links & use
2.4Ghz "access" at each repeater for access/interop with other devices. This
could be done for under $500 per repeater with Mikrotik router boards and
Ubiquiti mPCI cards in 900Mhz & 2.4Ghz.

~~~
notatoad
Indeed. Ive done a similar project (just the repaters, not the self deploying
robot) and we used picostations wired to car batteries. They work great, and
if you want more range you can switch on their proprietary AirMax thingy with
one button.

------
mey
Time to go into disaster and bomb disposal robotics by the looks of your work.

[http://spectrum.ieee.org/automaton/robotics/industrial-
robot...](http://spectrum.ieee.org/automaton/robotics/industrial-
robots/fukushima-robot-operator-diaries)

Very nice build

~~~
alttab
Agreed. Very impressive. Fukushima was the first thing to come to my mind as
well.

Feature Request: Rocket Launcher.

~~~
Qworg
Nuclear work is a whole different kettle of fish - you need to harden all of
the sensitive parts of the system. Cameras will fail (or their lenses will
frost over), circuitry will fail, and your robot needs to be able to be
decontaminated when it gets back.

Fukushima has lots of problems for robots - hard radiation, not enough in air
bandwidth to support radio communication and control, and terribly difficult
maneuvering and communication conditions.

~~~
ricardobeat
> your robot needs to be able to be decontaminated when it gets back

unless it's disposable

------
alberich
not to be picky, but why is it called a robot if it is remotely operated?
Isn't a robot supposed to be autonomous, at least in part?

I confess that I just gave a quick look at the article, but it seems like a
small remotely controlled radio tank. Is it possible to give the thing
instructions on what to do (e.g. follow a path along some infrastrucutre while
taking pictures of it) and then let it do the job on its own?

~~~
Qworg
Actually, that's an excellent question:

Does the robot actively seek WiFi weak spots in the communication mesh or does
it have to be driven to a certain locations?

------
dhruvbird
Love the idea of dropping repeaters and back-tracking if the wi-fi connection
is lost. I guess you could also extend it to remember where the repeaters were
dropped and try to navigate to one of these spots if the backtracking fails
(imaging some debris coming in the way after the robot has moved ahead, making
backtracking impossible).

------
wildermuthn
I'm eagerly awaiting the armies of Mechanical-Turked WiFi robo-mops and robo-
vacuums. Why hire real people to clean your buildings when you can get some
Indian to control twenty cleaning bots at once?

Let me know when one of you hackers starts it up.

~~~
BaconJuice
why state Indian specifically? Just curious.

~~~
wildermuthn
Any cheap 3rd world labor force would work, I guess.

Not that I support such exploitation. But that's 'outsourcing'.

~~~
alberich
I'd argue that India is not really a 3rd world country anymore. Besides, this
terminology doesn't make much sense now that the soviet union is gone.

------
michaelbuckbee
While the whole project is rather interesting, the most immediately applicable
item might actually be the WiFi repeaters in a ruggedized box.

------
kpi
Please make it fly.

