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

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

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

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

The term "singularity" characterizes those configurations in the joint space where the Jacobian matrix loses rank and thus it is not directly invertible. The Jacobian, in turn, is used to remap a trajectory from the Cartesian space to the joint space. Therefore, if you plan the trajectory straight in the joint space, then you are not going to use the ...


3

Actually I wish to implement my own algorithm (like some variation of RRT) without MoveIt!/OMPL hence it is important for me to know all the details. I am really confused about this. Any explanations or links where I can find the details and understand them would be really helpful. OMPL and MoveIt have a ton of features that are already ...


3

This thing is generally called coverage path planning. If you are particularly interested in Boustrophedon Cell Decomposition, you may have a look at the paper introducing it: Choset and Pignon (1998). You may also want to check out this survey paper.


3

Hi usually the time optimal solution of a motion not having specific constraints is know as 'bang-bang'. Where you let you system accelerate and decelerate at the maximum rate possible. In your case, you command a_max until v_max is reached then you stay at this speed until you need to break at -a_max to reach zero velocity. I also suggest to look at ...


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

You need to resort to the Special Euclidean groups. In particular, in your planar case, the group is $SE\left(2\right)$ and thus the representation is the following: $ T=\left(\begin{matrix} R & v \\ \mathbf{0} & 1\end{matrix}\right), $ where $R \in \mathbf{R}^{2\times2}$ is the matrix accounting for the rotation, whereas $v \in \mathbf{R}^2$ is ...


3

Trapezoidal trajectory is basically a piecewise quadratic function. Since the function is quadratic, its second derivative is a constant. The trajectory is then basically comprises segments of constant accelerations. Denoting a trajectory function as $x(t)$, for each segment we would have $$ x''(t) = a(t) = a, $$ where $a$ is the constant acceleration of ...


3

There are quite a lot options for this, each with different features, strengths and weaknesses. A few examples: Gazebo (as mentioned by edwinem): very well known in the robotics community, some would say it's a little bit dated Microsoft Airsim (also mentioned by edwinem): originally developed for autonomous drones and autonomous driving, uses the unreal ...


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


2

Quaternions and SLERP is what you want.


2

Not really MoveIt! is designed for robotic arms, and is being heavily adapted for the applications you see here, fixed wing aircraft typically use very diffrent types of motion planning becouse of the fact that they must maintain some forward velocity that is related to its bank angle. Aircraft motion planning typically also contains maxium g force ...


2

There is a dynamic version of A* (or of Dijkstra's algorithm) that was developed to address exactly this problem of trying to do planning on a map as you discover it. It is called D* or occasionally Stentz's algorithm after the originator, Tony Stentz. Have a look at this UIUC course page for a good description of the formulation, and the wikipedia entry has ...


2

You're welcome to steal the AStar class from my C++ highway driving project. https://github.com/ericlavigne/CarND-Path-Planning I used AStar to control a car driving on a simulated highway with traffic. In my case, state included position (along and across the highway), speed (along the highway), and time (which implicitly included the expected positions ...


2

I have found out that my code works. It is just that most of the literature I have read uses Lidar or Sonar sensors for histogram updates. I had assumed that in the case of a stereo vision set-up, all sectors are updated simultaneously. However only the sectors in the field of view of the camera is update unlike in the lidar implementation that samples a ...


2

Side note: If there are multiple objects at A and C, so the robots continue circulating to move the objects cyclically, then ABCD and CDAB are the same paths. In either case (single objects at A and C or multiple objects), just assign a weight to each segment that equals the distance travelled to go from source to destination. Add the segment lengths and ...


2

I have lots of experience with this that I won't bother you with. Most vehicle planners have multiple layers, with different requirements. In short, you're right in that they are very closely related and often overlap. There is some general consensus from what I've seen for a "layered" approach as follows. example three layers Goal planner Path planner ...


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


2

In words, rather than code. Assume you have the path defined as a dense list of points. Find the point on the path closest to robot Draw a circle of radius R about that point, then find the point on the path where the circle cuts (usually the circle will cut between two points). The circle may cut the path multiple times, take the closest (along the path) ...


2

What they describe is normally called (markerless) SLAM. Mostly implemented with laser scanners (from Sick, Velodyne, Pepperl&Fuchs,...). Classic implementations are gmapping, cartographer or hector-slam.


2

I am assuming you need a force field mapping of a two-dimensional space. You will need an array to hold the goals, unless there is only one. You will need an array to hold the obstacles. Both of these arrays must be two-dimensional to contain the coordinates of the locations. You will need an algorithm that, for a given point in your space, sums the ...


2

You made a simple mistake while calculating the derivative.The equation is: $\vec{OP}= OP_s \vec {i_s} + P_sP \vec {j_s}$ The derivative should be $\partial \vec{OP}/ \partial t =\partial({OP_s}\vec {i_s})/\partial t + \partial (P_sP \vec {j_s})/\partial t = \partial({OP_s}\vec {i_s})/\partial t $ but it's given that $d\vec{OP_s} / dt = \partial ({OP_s}\...


2

Let's suppose you have a required (continuous) trajectory in the form of an equation that you want to follow, for example take a straight line (whose equation is y=2x+5), you can break it down into discrete points and generate a velocity profile out of this trajectory, the calculated velocity profile could be fed to inverse kinematic equations [1] of robot (...


1

What you have implemented in the sourcecode is called steering behavior and was introduced by Craig Reynolds in the year 1999 in the paper Steering behaviors for autonomous characters The idea is to use a locomotion model (which is given in your sourcecode too and then calculate the angle of the car like robot. Implementing steering behavior in software is a ...


1

Solving this miracle can be done with a combination of a story graph, interactive execution of high-level commands and a planner. At first, the robot needs a control interface which accepts high-level commands, e.g. “go to south of u-shape”, “go to inside u-shape”. Then a random sequence of such motion primitives is generated until a valid plan is found. In ...


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