Podcast #128: We chat with Kent C Dodds about why he loves React and discuss what life was like in the dark days before Git. Listen now.
23

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


9

First, we need to define optimal. Since you do not say what you consider optimal, most people choose a quadratic expression. For example, suppose your current joint angles are given by the vector $\vec{\alpha}$. We can consider minimizing the movement required - with an error $\vec{x} = \vec{\alpha} - \vec{\alpha}_{start}$, you can define a cost function $J=\...


6

You are correct that kd-trees typically only work in small, Euclidean metric spaces. But, there is lots of work for general nearest neighbor applications in metric spaces (anywhere you can define a distance function essentially). The classic work is on ball trees, which then were generalized to metric trees. There is some newer work called cover trees ...


6

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


6

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


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

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

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


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


4

I believe it simply boils down to what your robot can do. If you are for some reason restricted to moving only in 4 directions, then you connect each grid cell to 4. If you can go in 8 directions, you connect each grid cell to 8. If you can go in 6 directions, you use a honeycomb grid and connect each grid cell to 6. There is no generic answer. If you ...


4

*Note, $a|b$ is the concatenation of paths $a$ and $b$. Then $c(\cdot)$ defined as the minimum clearance implies $c(a|b)=min(c(a),c(b))$ You refer to (in reference 1): Theorem 11: (Additivity of the Cost Function.) For all $\sigma_1$,$\sigma_2$ $\in X_{free}$ , the cost function c satisfies the following: $c(\sigma_1|\sigma_2) = c(\sigma_1) + c(\...


4

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


4

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


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

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


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


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

You have an interesting approach, but I think it's the wrong approach; you've painted yourself into a corner by trying to avoid some technical obstacles (instead of just tackling them). Based on the information you've provided, it sounds like the goal is for this robot to successfully mow an irregularly-shaped lawn while staying within an invisible ...


3

In case you're not already aware, the problem you are asking about is generally referred to as the two-point boundary value problem. For some systems, a closed form solution may be extremely difficult to calculate and may not even exist. As such it would help to know more about your dynamics. Your description would seem to imply that you are working with a ...


3

If both entrance and exit of the maze is at the edges of the maze, the left/right hand (wall following) algorithm should work. If you start following a wall that is connected to the exit, you could never get into a loop. If you want the robot to be able to start in the middle of a maze with loops then simple wall following is not enough. I would recommend ...


3

I'm not sure what the "standard techniques" are but here are a few a ideas. You could combine a standard jacobian based forward kinematics as your base and then apply a gradient search algorithm where you bias against things such as running out of slack on your wires or other constraints. Let me go into a bit more detail. Generally you would just give the ...


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


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