People who code: we want your input. Take the Survey
7

They are exactly the same. Information matricies (aka precision matricies) are the inverse of covariance matricies. Follow this. The covariance update $$P_{+} = (I-KH)P$$ can be expanded by the definition of $K$ to be $$ P_{+} = P - KHP $$ $$ P_{+} = P - PH^T (HPH^T+R)^{-1} HP $$ Now apply the matrix inversion lemma, and we have: $$ P_{+} = P - PH^T (HPH^...


5

Ball detection using vision is not extremely difficult, especially if the ball is easy to recognize. There are a lot of tutorials and blogs which give a detailed explanation on how to implement an algorithm to solve this problem: Raspberry Pi Ball tracking Using OpenCV on the Beagleboard to track an Aibo pink ball OpenCV Tutorial C++ - Color Detection & ...


5

You're trying to do numeric integration, which takes the form: $$ \mbox{integrated value } +=\mbox{derivative} * \mbox{elapsed time} $$ What you have instead of elapsed time is some value called speed. Try setting up your numeric integration code on an interrupt, where the interrupt timing is what you would use in place of elapsed time. I'm not sure what ...


4

Your problem is not the P[I]D controller, but extracting control parameters from your system. A PID controller by itself is something like this (assuming a periodic control task): /* 1. get current position */ cur_position = get_current_position(); /* 2. calculate error */ err = goal_position - cur_position; /* 3. calculate the output */ proportional = Kp ...


4

You need to do a bit of Calculus. First a note about your input parameters: Actually acceleration depends on Force and mass. You don't specify what units your max. thrust is in so let's assume your max. thrust is your acceleration. We can do the same thing with your max. torque then and assume that it is also your acceleration (angular) and forget about ...


4

This is called "data association" in tracking literature. When you measure the position of an object, you need to know which object it was you measured. If you can estimate this probability, then you are free to choose the most likely association. This is a heavily researched topic, but boils down to Bayesian analysis. Here's a simple way: Assume we have ...


4

This might not be the right answer for your problem, but it may give you some idea how you might solve this problem: At the company, I'm working for, we have lot of issues concerning jerk and acceleration of rotary arms. Our approach is we use motion specified by a position-velocity diagram (User-Input). According to this profiles we calculate an ...


4

I think that vector field histogram method should be a good solution here. It's a method of local motion planning (avoiding local obstacles while navigating to a global target). It involves mapping measurements into cartesian occupancy grid, and making a polar obstacle density histogram from that grid. Later the direction with lowest obstacle density and ...


4

Ideal solution can be defined in many ways. The simplest way to choose one is to compare which of the 8 solutions is closest to your current pose in joint space. This is usually a good idea if you are moving along a line (or similar defined trajectores). In practics some robot manufactruers have solved this using the status and turn variables. These ...


3

The solution is actually not quite linear. There are at least two cases: 1) The fastest solution does not require maximum turning at all times. 2) The fastest solution does require maximum turning at all times. For an example of 1), consider the goal is straight ahead of the drone. For an example of 2), consider the goal is very close, but straight behind ...


3

In the end, I found that the best way to do this was to employ a very simple concept: Flood Fill. I used a stack-based iterative approach instead of the recursive option, and modified it for physical space by using an A* search to find a path from the current location to the next location in the stack (using only those grid squares that have already been ...


3

This is my go-to book for all things manipulation. But it covers some other topics as well. Robotics: Modelling, Planning and Control by Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, Giuseppe Oriolo.


3

Stabilization of a helicopter and a quadrotor are similar tasks - have a reference signal, compare that to feedback, then act on the difference. A quad rotor has four motors, and the helicopter arguably does as well: main rotor, tail rotor, swash plate fore/aft servo, swash plate port/stbd servo. I would bet you can find a helicopter community that could ...


3

A brief overview of some of these variants: A* A variant Dijkstra's algorithm that maintains a heuristic distance to the goal to first explore parts of the graph that are more likely closer to the goal (same result as Dijkstra's algorithm, but faster). Theta* An "any-angle" variant of A*. In other words, movements between nodes are not restricted to the ...


3

The OMPL library has some good quality implementations of several sampling-based motion planners, as listed here : http://ompl.kavrakilab.org/planners.html In particular, you can find several variants of RRT under the BSD license.


3

$s_{last}$ does change. Looking at the pseudo code, $s_{last}$ is updated upon each iteration of the while loop in main(), in line 31, $s_{last}=s_{start}$, if the condition on line 29 is met: if any edge costs changed Likewise, in figure 4 $s_{last}$ is updated on line 39:


3

I would recommend using an RRT or FMT sampling based path planner. The basic idea is to sample your state space and build a tree which connects your starting state to the goal state. Each time you connect two samples, you check for a collision: if there is no collision then you add the connection to your tree search, otherwise you move on. It is your ...


2

I'm not sure if you still need it, but for those who happened to google for this thread, I have made one simple version of the algorithm. Basically, it tries to build the map of the area while it cleans, and it uses the map to find the nearest unvisted node (part of the room). When it can't find any, that means the room is cleaned (or the uncleaned parts ...


2

A good rule of thumb is that where ever an MDP is useful in theory a POMDP would likely need to be used in reality. To answer your question directly I would direct you to some of the latest work coming out of the Algorithmic Robotics Lab. My advisor and I recently developed a method wherein we use a POMDP at the core of a new grey-box system identification ...


2

RANSAC is usually used to segment planes from the point cloud (see: http://www.pointclouds.org/documentation/tutorials/planar_segmentation.php). As an alternative, when you detect objects that are on the road you could neglect surfaces/points for which the curvature is close or equal to zero. However, this requires you to have some way to get the curvature ...


2

The short answer is no -- genetic algorithms are not good for path planning. The longer answer is that while a genetic algorithm is very likely capable of solving a path planning problem, it's a very inefficient way to do so. Genetic Algorithms are preferred in problems where there are many input variables and the interaction between those variables is ...


2

Here's a pretty good overview of what holmeski is saying, and using multiple sensors in general for different applications. FWIW DARPA is, and has been looking into inertial sensors with enough precision to get useful positional tracking. It's called "Micro-PNT" for "position navigation and timing" and the idea is to not need a GPS. Also, here's some more ...


2

Look into nonlinear filters, particularly the unscented kalman filter (ukf). Using a ukf to fuse the data from a gyroscope and accelerometer will allow you to estimate orientation. However, these two sensors alone will not be capable of estimating position. You will need some sort of sensor that measures distance or position. For information on the ukf, ...


2

If you're only trying to walk forward the fitness function could be the distance covered by the biped. If you're also trying to control the heading, you could define a slightly more complex function which correlates the covered distance and the heading input.


2

The forward kinematics of the manipulator will correctly identify the larger displacements of the end effector for small rotations of the proximal joints, as opposed to the smaller displacements of the end effector for small rotations of the distal joints. When these motions are due to errors - all real mechanical systems have them - the established process ...


2

GA and PSO methods are generally and more simply executed on a model of the plant you want to tune your PID for, not on the physical system. This way, you can of course converge much faster toward the solution and also you don't apply potentially disruptive gains to your PID controller. The very first step is thus to come up with a good model of your ...


2

The first hit on GitHub gives me the following implementation, which is what you seem to be looking for. https://github.com/RoboJackets/rrt


2

The first relevant line is line 6: $$U.Insert(s_{goal}, [h(s_{start}, s_{goal});0]);$$ Basically speaking, this is an association of the goal to some vector with two values in it. Now $U$ looks like this: $$U:s_{goal}\rightarrow \left(\begin{matrix}h(s_{start}, s_{goal})\\0\end{matrix}\right)$$ Of course, $U$ is a list of such associations, but within ...


2

I would highly recommend using the encoders over estimating travel distance by rpm + time. Estimating motor velocity is notoriously tricky. Especially at slow speeds. A direct measurement is always better.


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