23

There are a couple of projects out there that mate the Arduino platform to the Node.js javascript execution engine. Take a look at Johnny-Five, which is a library on top of the Arduino Firmata remote control protocol or node-reflecta, which is a Node.js interface for the Arduino Reflecta remote control protocol. I've personally built a Node.js controlled ...


20

ROS is quickly becoming the new standard for both industrial and research robotics. Most research groups I know of are adopting ROS for their work and then pushing their results back into the open for everyone to use and improve. Willow Garage is developing a suite of hardware and software platforms which are all centered around ROS at their core. ROS is a ...


13

Hmm, interesting question! I personally would suggest that you take a look at the Arduino platform. It's programmed in C, so the syntax is going to be... familiar, to a JavaScript writer. In my humble opinion, knowing how the syntax (while loops, if/than blocks, etc) is laid out is 70% of the battle, once you're familiar with that, you can plug and play. You ...


10

Remember that there's Real Time and there's Real Time. Hard Real time is difficult to achieve without hardware support or low level software support, but you often don't need everything to be Hard Real Time capable. Soft & Firm Real Time response is much easier to achieve and is often more than adequate for many applications. Also, different parts of a ...


10

The short answer is "yes". I'm assuming you are describing an architecture that looks broadly ;-) like this: Real-time system <--> Soft-time system This is a very common robot architecture. The real-time system (RTS) (for example, an Arduino with appropriate firmware) handles the low-level sensor farming (conditioning, data packaging, management, and ...


9

Robot Operating System (ROS) offers the ability to use Javascript to control your robots. Specifically you will want to look at rosbridge. You will then need to use rosserial to interface with the microcontroller controlling your robot. While I am a big fan of ROS this is an overly complicated way to begin exploring the field of robotics IMHO. You would be ...


8

A real time system is not really required for many (most?) robotic control systems. As long as you have a control loop that runs fast enough, with low enough jitter, and doesn't miss too many cycles, then this is quite adequate for robotic control and servoing. As evidence of this, let me present the PR2 and the Shadow Robot Hand: This robot has about 20 ...


7

With Subsumption Architecture, you should carefully design your behaviors in such a way that if you assign task T priority n, then T should be what the robot should do if all tasks with higher priority than n are ignored. Let's order your example tasks, then figure out a way to implement it. Your tasks are evade, find and track. In general you would want ...


7

Stage and Gazebo are open source 2D and 3D simulators respectively. They are created and maintained by the Player project. They are very easy to use and have a lot of pre-built maps and robots. Depending on the experience of your audience you may need to do a bit of the heavy lifting (i.e. building configuration files and the main classes). They have a ...


7

The answer is 'yes'. A more detailed answer likely depends on how you define "robotics". But generally, robotics applications are considered to require a very broad spectrum of knowledge. So while most robotics includes some form of mechanical function, you could easily specialize in artificial intelligence, microcontroller design, or any number of ...


6

In general you don't need to learn assembly to be able to program a microcontroller. As long as you know C, it's enough for you. Knowledge of assembly of course would help. Specifically, it would help in writing optimized code (or rather, not writing stupid code) as well as having a good estimate of how fast or slow a piece of code could be. Sometimes in ...


5

Generally there are many ways to use node.js with a platform, like this one for the RPi. There are a lot more similar ones if you just search for them. Another interesting one is ArduGate, which lets web pages communicate with the arduino via JS (though probably not exactly what you wanted since it doesn't compile and load to the arduino) Though I really ...


5

The Robot Construction Kit is an alternative to ROS. It is driven towards model-driven engineering and design/management of complex systems. It also is driven towards "not being tightly dependent on Rock". Most of the algorithms / drivers in Rock are independent of the component layer. See also this page for a quick summary of the differences between Rock ...


5

Orocos It is one of the oldest open source framework in robotics, under development since 2001, and with professional industrial applications and products using it since about 2005. The focus of Orocos has always been to provide a hard real- time capable component framework — the so-called Real-Time Toolkit (RTT) implemented in C++ — and as independent as ...


5

OpenKinect is a community of people, not a library. The OpenKinect community releases the libfreenect Kinect driver. libfreenect and OpenNI+SensorKinect are two competing, opensource libraries/drivers. libfreenect (Apache 2.0 or GPLv2) derives from the initial, reverse-engineered/hacked Kinect driver whereas OpenNI+SensorKinect is derived from open sourced (...


5

This is one of those "open-ended" questions that the moderator doesn't like. So I'm going to leave you with some short, general answers. These are based on over 20 years in industry designing various bits of hardware and software for embedded systems: Learning enough about microprocessors so that assembly language programming comes naturally will be a big ...


4

The purpose of the software determines whether it needs to be strictly real-time. Where the purpose is path planning or localization, often a low frequency is sufficent, for example, 10Hz. In these cases, a player/stage setup running on Linux is fine. We can see that there are few problems if one time step is a bit longer or shorter. Strictly real-time ...


4

short answer; no you really need to do things quite a bit differently. long incomplete answer; Let me give you some psuedo code appropriate for robotC, that puts you on a better path. First, do not use tasks - this is NOT what robotC tasks are for. They could be made to work, maybe, maybe not (and you need quite a few changes to even try). // global ...


4

May be it is a bit pricy (CHF 75) but I still suggest Colobot. It is a nice, almost game-like environment where robots need to help humans to make a space base habitable. Robots are programmed by the kids while increasingly complex tasks are performed. The program teaches the fundamentals of programming in a goal-oriented, funny way.


4

Working in robotics doesn't mean that you must understand (or enjoy) all the relevant disciplines. It simply means that you must understand that you are one part of a team that produces a robotic system. On the other hand, what skills you have will determine which teams will find you valuable as a member -- smaller teams require everyone to bring multiple ...


4

For most applications, I think the calculation you describe is good enough when selecting hardware. You want your arm to be able to have some lift capacity at the worst case, which is when the arm is fully extended. Note that you should also take into account the weight of the arm itself which is typically non-negligible. That being said, yes, there are ...


4

I think this is a great question. The two basic options are make it yourself or have someone else make it. EDIT: check the bottom for a third option... Make it yourself To make it yourself you need to choose a material and manufacturing process for the part, then acquire the material and skills needed. (Usually people select a process they know how to do ...


4

If you make a career of robotics, you will come in contact with a lot of languages, a lot of libraries, and a lot of systems. The more you know about the fundamentals, the easier it will be to adjust to something new. Likewise, if you focus your learning on whatever project or context is relevant to you at any given moment, it's more likely to stick with ...


3

My preferred platform is ROS. However, there is another strong contender from... dare I say it... Microsoft. It is called Robotics Developer Studio (RDS). Begin your search here: http://www.microsoft.com/robotics/ They have many videos of impressive applications. To me, the largest benefit is the built-in support for Kinect via Microsoft's Kinect SDK. ...


3

It's been a while since I've used the AVR, but there where two libraries which would do what you are looking for. Unfortunately ATMEL doesn't provide proper firmware libraries themselves (as e.g. STM does). Procyon AVRlib is quite outdated, but also very lightweight. You can just use the parts that you are interested in. AVR Libc is another library which is ...


3

We evaluated a variety of options and settled on Altium Designer at our shop. We build nothing but robots with a team of 9 engineers. I am not sure there is a ton of stuff that is robotic specific in a PCB design, but Altium allows us to interface directly with our Pick and Place machine, easily generate 3D models, and the integration of the library with ...


3

To get relative displacement between two time instants all you need to do is integrate the values given off by the accelerometer (twice for linear displacement) and gyro (once for angular displacement). Due to measurement errors, which can many times be adequately modeled as Gaussian (you might have to estimate a bias and/or scale factor to the measurement),...


3

This is possible. But it is very sloppy, in my humble opinion. It is useful for one-off commands, but how will you read back output, verify your command was executed, etc. If you are dead-set against the IPC bridge, you may want to look at using the MATLAB-java interface. ROS also allows you to program in Java using ros-fuerte-client-rosjava (ubuntu), or ...


3

Not only is a human voice behind this (likely through a vocoder), I believe you are looking at a mechanized costume and not an actual robot -- someone is inside. Using fake robots to attract crowds has worked since "Elektro" at the 1939 World's Fair (video). You can also buy your own King Robota suit if you want to take up this form of entertainment ...


3

Microsoft robotics is FREE and includes a simulator. It is not exactly the easiest environment in the world, however it IS robust and appropriate to real robotics. I think with some teacher involvement to set things up beforehand, it could be usable. There is a simulator 'package' for LEGO, Neato and some other robots, and they can be programmed in C# or a ...


Only top voted, non community-wiki answers of a minimum length are eligible