10

For testing simple algorithms, you might be able to get by with a 2D simulator. There are a few out there that I am aware of: Stage: http://playerstage.sourceforge.net/index.php?src=stage STDR: http://stdr-simulator-ros-pkg.github.io/ Stage is an older, but useful, simulator which has integration with ROS (http: //wiki.ros.org/stage_ros) which will allow ...


8

The function $f$ comes from the equation of motion for the inverted pendulum problem (inverted pendulum alone, not including the motion of the wheeled platform). If you consider your figure but ignore the side-to-side motion of the cart, then the equilibrium of moments about the hinge is: $\sum M = m g l \sin \theta - b\frac{d \theta}{dt} $ Where $m$ is ...


6

Yes. If you only run it in feed-forward mode and do your training off-line somewhere else: I programmed a 3-layer (5-5-2) feedforward ANN on an Arduino UNO. It ran on a mobile robot. Whenever the robot would hit something, it would re-train the network. The feedforward portion of the net ran in real-time; while the back-propagation training took on the ...


6

"Optimal learning" is a very vague term, and it is completely dependent on the specific problem you're working on. The term you're looking for is "overfitting": (The green line is the error in predicting the result on the training data, the purple line the quality of the model, and the red line is the error of the learned model being used "in production") ...


5

First, here's what you CAN do with those sensors. Assuming you are not constantly accelerating you can use the accelerometer to know which direction is "down" (the gyro can be used as well for faster updates). If there aren't any magnetic field disturbances, you can also use the compass to know which direction is forward. Usually this is done using either an ...


5

Perhaps the best way to get started on this kind of problem is to take relevant coursework(either online or in real life) or to read an introductory book on this topic. A good introductory book on motion planning and SLAM is Principles of Robotic Motion. A good course on SLAM/Mobile Robots: Control of Mobile Robots


5

Short answer: the strongest reinforcement effect comes from delivering a valuable reward on an intermittent (random) schedule. Longer version: One aspect of your question is about operant conditioning, at least as it applies to teaching maths to a complex organism. Applying this to machine learning is known as reinforcement learning. Economics (as per ...


4

My understanding of your problem is that you would like to discover and navigate a 2D maze of irregular obstacles with a non-holonomic robot using a single forward-looking ultrasonic range sensor and wheel odometry. This is a hard problem. "Best" solution Although a "best" or "optimal" solution to this problem possibly could be implemented on an 8-bit ...


4

The mechanics of your vehicle are not extremely relevant here; I will assume that the motion your vehicle induces on the sensors will be within their specifications. Entire volumes have been written on "sensor fusion", which is the act of combining measurements from multiple sensors (e.g. your gyro, accelerometer, and compass). Doing this 100% accurately ...


3

You've asked more than one question, so I'll try to answer them in order. The Robotics community has not yet hit the limits of current hardware, so very little work is being done on the exotic cutting edge like neuromorphic hardware. The exception to this is software neural nets, which have come in and out of fashion for decades, and the Nv artificial ...


3

It actually makes sense that the dot product in both cases is the same (zero) because the dot product of two vectors does not consider the vectors' origins. Or in other words the math for the dot product places the two vectors at the same origin. In this sense there is no way to distinguish converging or diverging vectors. I think what you need to do is to ...


3

Regarding methodologies and tools, I recommend Chris Eliasmith's How to Build a Brain. It presents the Semantic Pointer Architecture (SPA), a cognitive model that has been realized in the open source Nengo toolkit. I have read the book's introduction and some of Eliasmith's papers, and so far the approach looks very promising.


3

These issues are addressed, to some extent, by the study of utility functions in economics. A utility function expresses effective or perceived values of one thing in terms of another. (While the curves shown in the question are reward functions and express how much reward will be tendered for various performance levels, similar-looking utility functions ...


3

You might want to have a look at my maze solving robot solution (http://www.benaxelrod.com/robots/maze/index.html). I used a Lego RCX which is more powerful than an 8bit microcontroller, but is still pretty resource constrained. I abstracted away most of the hardware problems to focus on the algorithm. It uses a flood-fill or A* type algorithm.


3

Unfortunately, I have no experience with ez-b, but I have looked over the site a little bit. I do, however, have lots of Arduino experience. The program is, indeed, stored on the board's local memory. However, it is very possible to write a program that can interact with your computer. With my Arduino, I often write programs that communicate with my computer ...


3

Gazebo is a good tool for what you want to do. Since you're using a custom robot you will need to build a model for the simulator to use. They have managed to make doing so pretty easy but for a quadraped I can imagine it will take a bit of time. Gazebo is also nice because it works well with ROS which means that if you build you could build a program to ...


3

This reminds me of QWOP (seriously). You need to plan a sequence of button presses to move forward. For every situation the runner finds himself in, we need to know what button to press, how long to hold it, etc. When you play that, you probably look a lot like this video I stumbled across (pun alert): NN training bi-pedal walkers What you need to ...


3

Yes indeed, it's possible to embed neural network in microcontrollers. There are many such examples of this in the scientific literature but I can cite a striking example of what can be done with a very simple MCU if you're smart enough. In Evolutionary Bits'n'Spikes, the authors describe the implementation of a real time spiking neural network AND a genetic ...


3

I think the problem you're going to find is that machine learning requires learning. If the goals or objective vary just a little, then manually adjusting the software shouldn't be too difficult (if you programmed it well), and it might only take a few trials for the AI to adjust to the new scenario. If the objectives change so much that you're looking at "...


3

Sure, a drone can land on a powerline. That's a standard task like the "peg in hole problem" for robotarms. The aim is to maneuver a UAV near to a highvoltage line and eating all the energy. The earliest paper was written in 2009 and has a nice plotchart of the Electro-Magnetic Field on page 8 Powerline perching with a fixed-wing UAV for directing the UAV in ...


3

I think yes it can but how? My options are here: Static system for conventional systems It should stand or hang to line/pole/special place like birds. Please watch video for an example: https://www.youtube.com/watch?v=MvRTALJp8DM Dynamic system Harmless/secure distance present day wireless charging methods: use low energy harvesting drone or an ...


3

I read a bit more and realized that in RL states and rewards accept a wide variety of interpretations and this is the real complexity nowadays of this learning problem. In case of PID values, problem can be formulated as the following: imagine a Kp value, it represents a state. Next state could be increase or decrease 0.1. Same with the next state, and so ...


3

Many reainforcement learning methods require descrete actions. As you indentified, increasing and decreasing the values is one option. If it is an adaptive PID, then it might take some time to incerase the parameters if you only have an increase by the factor of 0.1. I would recommend more then one increasing factor as possible action. Increase by 0.1, 1, 10,...


3

I cannot comment on 'most common', but I can definitely share several tools and research efforts towards using FPGA for deep-learning. See my survey paper on FPGA-based accelerators for CNN which reviews 75+ recent papers. Some of these research projects have released their code, such as DNNWeaver. Also, see tools from companies such as Xilinx. Finally, see ...


3

You need enough domain knowledge to be able to tell if someone is bullshitting you or not, to be able to determine when someone has an achievable or unachievable project idea, to be able to determine who has talent and who doesn't, etc. And money. A lot of money. Quality engineers don't work for free.


2

Really this is a question to be answered by experiments. Will it work? It seems like it could. Two things that will be important to look at are: Training time - You are still using a neural network and they take time to train. Whether this formulation would reduce the number of rounds required for training is really to be seen. It will of course change with ...


2

The recently open-sourced V-REP simulator may suite your needs. I found it more approachable than Gazebo, and it can run on Windows, OSX, and Linux. Their tutorials are fairly straight forward. There are a ton of different ways to interface with it programmatically (including with ROS). It looks like there is even a tutorial for making a hexapod, which you ...


2

This wouldn't cover the robot simulation, but the OpenCV Machine Learning Library might be useful for evaluating learning algorithms and training parameters to download to the robot. It includes a neural network implementation, which may be of particular interest for this problem. OpenCv is a standard library too, and would likely integrate well with some ...


2

I have built a lot of walking robots, in my experience if you can't get it to walk by programming a gait you are not going to get it to learn because you don't know what it is supposed to do and the search space is too large. Using an Arduino you may be able to get it to fine tune some movements iff you can define good movements.


2

A simplified method for learning would be to make the robot into one random position and then another and tweak the second position until it moves forward. Using this position as a start do the process again n times and then you will have n positions to move through that make the robot move forward.


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