27

Compare the following two images: The path planning is somewhat trivial. There's only one path: the rope. The motion planning on the other hand is not that easy. In a maze the path planning is hard and motion planning is easy: Of course both planning tasks can be easy or hard at the same time or anything in between. They are linked to one another in that ...


8

In order to answer my own question Configuration space and Joint space must be defined. Configuration space of a rigid body is a minimum set of parameters that can determine position of each point in that body or Configuration space is set of all possible configurations of that body. Configuration space of the end-effector is set of all possible positions ...


7

I implemented something like this in College: https://github.com/Auburn-Automow/au_automow_common/tree/master/automow_planning Basically we just passed the vertices of the boustrophedon path as goals to move_base. Here's a video of a bag file being played back: https://www.youtube.com/watch?v=R7nLgYquECg Here's the class paper we did for the planner: ...


7

Kinematic constraints involves only constraint on the motion (kinematics means the study of motion without considering the force that causes it), which may involve configuration variables and their time derivatives (including higher order derivatives). In particular, no inertial parameters are involved in the constraint. The constraint is geometric in nature,...


6

I think you may be misunderstanding the nature of gimbal lock. It sounds like you may be trying to remove an actual term in a rotation matrix calculation , but this is incorrect because each axis is still able to rotate. What happens with gimbal lock is that one of the rotational degrees of freedom of the object you are rotating is removed. This happens when ...


6

What's the difference between turn-by-turn GPS and driving a car? GPS is path planning: high-level commands like, "turn right in 1 mile." Driving is motion planning, which means following a route established by path planning while at the same time taking care of the minutia: interfacing with the car, staying in lane, watching for pedestrians, obeying ...


5

Classical control theory requires Linear Time Invariant systems. Most robots of interest actually have non-linear dynamics. Of course many optimal control techniques also require linear systems. LQR for instance stands for Linear Quadratic Regulator meaning it takes a quadratic cost function and gives the optimal control for a system with linear dynamics. ...


5

In robotics the configuration space is exactly the joint space of the manipulator. Differently, to indicate the space where the forward kinematic law maps the joints configuration into, we use the terms task space and operational space, equivalently.


5

Since the configuration space is the set of all possible configurations the link can have, i.e. all possible angles from 0° to 360°, shouldn't the c-space be a line rather than a circle? You are correct that a rotating link has one variable $\theta$ that can attain any value in the range $[0, 2\pi]$ (let's talk in radian). However, the configuration space ...


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

In general you need 6 parameters to describe the position and orientation of any joint with respect to a link coordinate frame. The DH parameterisation includes 2 constraints so only 4 parameters are required. The constraints are: axis $x_j$ intersects axis $z_{j-1}$ axis $x_j$ is perpendicular to axis $z_{j-1}$ (see Robotics, Vision & Control, ...


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

Line following is a simple reactive behaviour. Before you get into planning to solve the obstacle avoidance problem - which can get quite complex - you should consider simpler solutions. What this simpler solution could be depends a bit on the environment and on your robot. But let me make a suggestion: while() follow line if( detect obstacle ) ...


4

Let me put homotopy into the context of planning algorithms Suppose you want to get from point A to point B. Clearly, the easiest way is to traverse a straight line. But if there is an obstacle in the way of this straight line path, what should you do? If you want to obtain the "optimal" path (e.g. traversing the least total distance to the goal), you ...


4

They are modeling the probability as a normal distribution with the given mean and variance.


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

If you are able to sense obstacles with a sensor pattern that is circular (eg laser scanner, contact sensors on a circular body, etc), and you can rotate the robot pose without translation, then you can satisfy the assumptions of the Bug algorithm. If you use a point model for your robot in the map, then you grow the obstacles by the radius of your robot. ...


4

Since the problem is one dimensional, you are actually asking to compute a velocity profile. (A velocity profile is the information of how a path is traversed with respect to time.) Now the problem is "How to travel for $B$ units within time $T$?" (Let's call the duration $T$ instead.) A velocity profile can be viewed as a curve in the $v$-$t$ (velocity vs ...


4

Many articles reference algorithms such as A*, PRM or RRT based planners to motion planning algorithms which seems unreasonable since it is still necessary to parametrize found path with time.I wonder, why? First of all, RRT, for example, can be used to plan trajectories directly. When the robot in question has $n$ DOFs, such a planning problem happens in a ...


4

Your intuition is partially correct in the sense that you ought to go with position control implemented via velocity commands resorting to a kinematic (not dynamic) model of the manipulator. This can be explained by inspecting one of the easiest policy used for inverse kinematics, $$ \dot{\mathbf{q}} = \mathbf{J}^{-1} \cdot \left( \mathbf{x}_d - \mathbf{x}(\...


3

The paper “Optimizing Train Speed Profiles to Improve Regeneration Efficiency of Transit Operations” (in JRC2014-3795.pdf) by Haichuan Tang et al addresses some of the issues mentioned in the question and sets out a dynamic programming method for solving related problems. The paper's goals are different than yours, but its method and some of its references ...


3

Assuming constant accelerations, "stopping" (slowing) distance can be calculated with: $$ x = x_0 + v_0 t + \frac{1}{2} a t^2 \\ $$ where $x_0$ is your initial position, $v_0$ is your initial speed, $a$ is your acceleration, and $t$ is time. Assuming you are trying to get from one constant speed to another constant speed, you can calculate the time ...


3

The state space is the space of possible values that the state can take. For any given system it depends on which variables you are taking into account. For instance it is common to consider the 2D position $(x, y)$ and the orientation $\theta$ of the system. For this example the state space consists of three dimensions where $x$ and $y$ could conceivable ...


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

The VisiLibity implementation appears to have python bindings.


3

There are several traps you might have stepped into, but it is difficult to tell without more information. The first issues that came to my mind: The equations you wrote down are for sampling from the velocity motion model. But then you write about the Kalman Gain approaching singularity, which only makes sense of you apply a Gaussian filter (EKF or UKF). ...


3

There isn't really a difference. "Path planning" might be used more often to simply describe the problem of finding a desired path from one state (or sub-set of states) to another. Whereas "motion planning" might be used to describe the same problem but more specifically the actual commanded motions that the robot uses to track the series of desired states ...


3

Going forward, a Klann linkage has a near-vertical leg drop action. (See the legs at left in the wikipedia animated GIF.) It has a near-vertical leg lift action if running in reverse. (See the legs at right in the illustration.) Note, this linkage and some other leg mechanism linkages use a rotary crank; ie, rather than using a 180° back-and-forth motor, ...


3

It's really easy. env = openravepy.Environment() env.StopSimulation() env.Load('_ArmFileName'_.xml') #Whatever .xml file you're using robot = env.GetRobots()[0] manip = robot.SetActiveManipulator('left_arm') #whatever arm you're using robot.SetDOFValues(joint_values, manip.GetArmIndices()) env.CheckCollision(robot) where joint_values is the an array of the ...


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


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