5

Obstacle padding/ robot padding. Suppose you are working in a 2D environment and that you have an obstacle of the size 2x2. When doing planning (graph search, etc.), you increase the size of the obstacle to, for example, 3x3. Then when you find a path, the path is guaranteed to be at least of the distance 1 away from the actual obstacle. As for a smoother ...


5

There is a saying in software engineering which states that your company structure is reflected in your software architecture (I cannot recall the exact phrase). This is true for a robot control software stack also. Control is closed loop, planning (motion, trajectory or any other planning) is not (it is open loop). In a closed loop solution (i assume in ...


4

The kalman filter that you've already been using on single robots can be broadened to apply to the swarm of robots. If you previously represented the state of a single robot with 5 variables, and you have 3 robots, then combine all 3 robot states into one state with 15 variables. That larger state representing the entire group could reasonably be called the "...


4

I have used POMDP like models on top of a localization algorithm (Adaptive Monte Carlo Localization, from ROS), and a person detector [1][2] to find and follow a person with a humanoid robot. These two algorithms generate the input (observation) for the POMDP model in [1] and [2]. Also in [3] they used a POMDP model with similar input. As next step we used ...


3

It's true that using RL in robotics involves many challenges, including the usually high dimensionality of problem spaces, the cost and limitations of real-world sessions, the impossibility or perfectly modelling the robot-environment system, and the complexity of reward functions that accurately reflect desired behaviors. That said, a number of approaches ...


3

I think what you are seeing here is a decade advancement in microprocessor and robotic control technologies. By the time the second and third papers were written, in 2000 & 1998, the definition of 'task planning' had switched from static pre-planning to dynamic reactive planning. The difference in microcomputer speeds between 1990 and 1998 is enormous. ...


3

Most planning algorithms reduce your robot to a point and plan a path for that point. The arising problem is exaclty what you are facing. As suggested before, obstacle padding is one of the methods, but generally, the configuration space has been proposed to solve this problem. Configuration space is a more advanced and more general way of padding ...


3

To expand on Alexandre's answer: Controlling the arm with the Jacobian along an end-effector trajectory is one way to do it. However, this will not give you obstacle avoidance. Although you could manually check for collisions at each time step, but i imagine this could get ugly. Additionally, this is a gradient technique, so you will be constrained to the ...


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 ...


2

Use bearings-only localization to model camera informativeness, and simulate measurements with zero noise (e.g., no innovation). For a variety of reasons, this is actually theoretically sound way of estimating the informativeness of a path. There are many "measurement free" informative-ness metrics, like the Fisher Information Matrix. All you need are the ...


2

The main problem with motion planning is the time-dimension. Not only that the UAV can move up, down, forward or backward, but the motion is also defined along the time-axis. A motion plan like "up, up, down" is fundamental different then "up, down, up". After few steps, the number of possibilities grows exponential. Even on simple examples like quadrotor ...


2

I'm having a hard time following your code, partly because I don't know Python but I think mostly because I'm not sure I understand your variables. That said, I think I do understand your problem. An approach I would take to solve this would be to "warp" the data before evaluation, then make your decisions, then "de-warp" the output. For example, consider ...


2

I would recommend using some sort of discretized local map. For 3D use octomap (https://octomap.github.io/) and 2D a grid map. But honestly, I would try the laziest option, putting each depth reading in octomap form and planning with it to see if a local map is really needed. Remember that you have to represent non-occupied space to use A*. The discretized ...


2

I think what you said in your question is correct so far. Single and multi query planning refers to the number of planning tasks you are about to execute. That means, the number of different paths you want to plan, given an unchanging environment. PRM constructs a graph-structure (roadmap) of the free configuration space. Instead of exploring the c space ...


1

I don't know how you're storing or recalling your presets, but you can put a Rate Limiter block between it and your joint and limit how quickly your joint reference changes. I made a short clip for you - here I'm using a square wave set to 45*(pi/180) as the amplitude, with a frequency of 0.25 Hz. The net result is 90 degree motion (-45 to +45 degrees) and ...


1

I can speak to space robotics, and military-type robotics, and some commercial robots, but there isn't really a "typical" robot yet. How does motion planning differ from controls? A drunk person can plan a path or sequence of motions, but cannot follow it well. A drunk person has motion and path planning but suffers poor control (esp poor reaction ...


1

shortest path between 2 points This spec goes into the cost function design. maintain a minimum distance to obstacles Given 2D occupancy grid, threshold probability values to get occupied/free cell representation of the environment. Then, expand each obstacle cell by given minimum distance value. Once done, this spec goes into the cost ...


1

In contrast to motion planning, task planning operates on a symbolic higher level. Often, it's connected to natural language descriptions like “open door” and “stand-up”. This makes it a natural choice for a domain specific language. The words in the new language are equal to the actions a robot can execute. The alternative would be, to realize the tasks in ...


1

Task and motion planning describes different levels of abstraction in a domain. Motion planning is about lowlevel actions for example move the car forward for 1 meter, while task planning is about high level actions for example to overtake another car. Task planning is usually treated under the umbrella term PDDL which is a dedicated planning language for ...


1

KnowRob is a knowledge processing system that combines knowledge representation and reasoning methods with techniques for acquiring knowledge and for grounding the knowledge in a physical system and can serve as a common semantic framework for integrating information from different sources. KnowRob combines static encyclopedic knowledge, common-sense ...


1

You may find this example useful. I recently used A* for highway driving in traffic, driving at 50 mph and passing other cars. https://github.com/ericlavigne/CarND-Path-Planning The A* algorithm supports decision-making only in discrete problems. I discretized highway driving by only considering positions that are either in the middle of a lane or halfway ...


1

What is the problem you're having with the file? The only two things I notice off the bat are that you aren't outputting an endline character between rows on your output stream and that it looks like you're initializing the digraph variable in an odd manner. As I mentioned previously, it's been a long time since I've used c++, but could you not just call int ...


1

Use the bits in your array to create a connectivity map, assign distances between points (but it sounds like the map is uniformly sampled), then implement some version of Dykstra's algoritm. The map you have can be parsed to see which non-wall tiles have neighbors. Use this, with a regular numbering scheme, to establish the connectivity graph. Each location ...


1

To solve the redundancy problem, you can use the Resolved Motion Rate technique. It consist of finding the articular position using the iterative equation $$\Delta \theta = J^\dagger T \Delta x + J^\dagger (I-T) h$$ With $J^\dagger$ the pseudoinverse of the jacobian matrix, $T$ the projector that defines the null space of the task to accomplish, $\Delta x$ ...


1

For designing you can use Solidworks. And for simple simulation use Solidworks Simulation with Solidworks Motion Analysis. You can import/export data from/to MatLab or various other programs. Sensors and actuator can be placed on arbitrary points to sense the stress, displacement, etc. Use solidworks to test and improve the design. Another very good ...


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