# Tag Info

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

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

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

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

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

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

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

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.

2

As a general answer: Yes, PID controller use variable setpoints, in fact, this is what makes them usefull, that you can always change the setpoint of your system (regardless of this varis slowly or fast, stepwise or not). The general algorithm you have specified is also correct, however you have to make sure that the variable typse you use can handle that ...

2

What you are trying to do is to identify a system. Since you kind of know what to expect, your system is not black box, it is grey box or white box. There is a lot of theory on how to identify these systems. The field itself is called System Identification and you can find a lot of books and publications for all kinds of systems (blackbox, greybox, ...

2

What you are describing seems a lot like reinforcement learning, and yes, it works well for this sort of scenario. It is a popular enough approach that you should be able to find starter code in whatever language you prefer. This paper looks like it could be interesting for you. Basic set-up Typically the way the problem is set up is that we want to find a ...

2

It's usually best to contact the author directly if you have a specific question about a specific paper. The simulations are there only to illustrate the principal of the passivity observer and controller, so it makes sense they did not elaborate on them too much. The first simulation uses velocity and position as the input and appears to have an initial ...

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