8

When using a PID loop to steer using line following, then your set point will always be the same. You will always want the line to be in the same position with respect to the robot, for instance in the centre of your sensor. So if your line sensor outputs a value from -1 to 1 with 0 being the centre of the sensor, then you will want your set point to be ...


7

No, but you do need to calculate the P/I/D terms correctly. You have: I = I + previous_I; followed by: previous_I = I; With I = 0; previous_I = 0; declared at the start. So your I term will always be zero here. What it should be is: error = reference - feedback; P_error = error; I_error = I + (error*timeStep); D_error = (error - previous_error)/...


5

Actually, the caster wheel has ideally no effect on the kinematics of the vehicle. In reality there will be some resistance from the caster wheel that does impact the vehicle motion, but we can still ignore it for the sake of designing a control law. Based on the extended discussion in the comments, your sensor can be used to measure the lateral error of ...


5

This may be overkill, but some of the past work I was involved in was trying to detect a vertical line (a pipe) in the camera's field of vision, and navigate relative to it. The process was as follows: Pick a threshold value, and split the image into black and white Perform Canny edge detection on the image Use a Hough transform to find the strongest lines ...


4

I recommend arranging your sensors like the following: Thickness of Line <--------> /\ | | / \ | * * | || | | || moving * | | * || direction | | || | * * | ...


3

It can't pass the 20 block if the robot enters it from a 15 or 20 block (so basically it gets stuck if it's coming from an angle and hits a 90 degree turn). Somehow coming from an angled line makes it more likely that your robot moves orthogonal to the 90°-ish turn, so that it gets stuck in the back-and-forth loop. Maybe if it moved very slowly backwards it ...


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

I know this is not exactly what you wanted, but you should look into the Pure Pursuit algorithm for line following.


3

Read and understand this. Refer to other sections of that site, if needed.


3

You may want to check out this question on how to tune PIDs. It sounds like you're confusing the role of error in this calculation. The PID equation takes the error measurement (actual position - desired position) and determines how much "response" should be commanded in the controller (e.g. how much force). So instead of saying if (error_value > 0)...


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


2

Anki uses optical sensors in their toy cars to implement line followers. The optical sensors are sensitive in the IR range. The fact that the lines cannot be seen is easily explained: The lines are coated with black color which is transparent in the IR range. Paliogen black L 86 or Paliogen black S 84 by BASF are such colors. If you place barcodes along the ...


2

I did a project based on RPi2 + Pi-Camera + ROS jade + OpenCV to make a line following rover. Two methods are used, one is to find contour of the track, the other is to use Hough-transform for edge detection. Under well-controlled environment (even light sources, less noises, etc.) the performance is good, and I use RANSAC to find preferred edges under noisy ...


2

The image you post is one way that should work. In the image, $\tau$ is the joint torques, and $x_d(t)$, $\dot{x}_d(t)$, and $\ddot{x}_d(t)$ are the Cartesian shape trajectory. You mention "whole control system (with the PID controller)". Perhaps you were talking about a motor or joint torque controller? The control loop image you post assumes that joint ...


2

With computer-based vision, the solution often depends greatly on the environment in which the camera is operating. You may have situations where bright light and shadows result in a very difficult sensing scenario. Or you may have aspects of your targets which affect the light characteristics (diffusing, polarizing, etc.). So the solution may not be easy ...


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

I m not familiar with those robots, but I will guess it's more used for odometry, in order to know the speed and the traveled distance. The design are packed so it is hard to see for sure, but it seems to me that there are only 2 wires per motor, so not enough for position/velocity feedback. So the best to get instantaneous speed would be a free wheel for ...


2

The first robot is RS-100 and it won this year's all-Japan fine following competition. The fifth wheel is an encoder. The robots are allowed to remember the track - this is specific to this competition as the turns are marked by white markers outside of the line. Look at the winning run of the robot and you will see that it speeds up and down in fast runs (i....


2

The robot you're trying to model is known as a Two Wheeled Differential Robot. It's easy to find specific kinematic models for it. You can start here or here.


2

I beleive you’re looking for Power Density How you utilize said power of course is up to your design. You generally want the most wattage in the smallest package, and you should get something as to what you’re looking for..but for such a small robot, the speed boost may not be as helpful as being able to accurately and quickly accelerate around/past corners. ...


1

It's a question of balance as always. You need to select motors that require voltage and current that your robot's power source can provide, physical size so that it fits on your robot and also torque and RPM to give your robot enough oomph. Also note that gearbox and wheel size affect the final top speed an acceleration. What I did was to go through ...


1

Because you don't have any specific robot in mind, let's assume that you have a two-wheeled differential drive robot (TWDDR). TWDDRs can be modeled with unicycle dynamics of the following form: $$\dot{z}=\left[\begin{matrix}\dot{x}\\ \dot{y} \\ \dot{\theta} \end{matrix}\right] = \left[\begin{matrix}cos(\theta)&0\\sin(\theta)&0\\0&1\end{matrix}\...


1

I have a similar idea like @Bending Unit 22, which is not to follow the line but its edge instead. So you detect the line only with one sensor (let's say only with the left one (blue dot)). If the you both sensor indicates line then your robot should turn right until the right sensor (green dot) indicates white surface. This is the event circled with green ...


1

Sorry I have no experience of line following robots, I use ultrasonic sensors, so this answer may be a bit naïve and there allsorts of reasons why you can't do this. Your bot travels forwards and realises it has lost the line. Assuming that the distance travelled is not "very far", less than 1/2 the length of the bot, you should be able to do a complete ...


1

I don't think you'll be able to use PID control successfully because you don't have a continuous feedback signal. Your feedback is binary on each of three sensors. From your description, you need to monitor or eliminate the gap between the sensors. Monitor meaning add more sensors in the gap, and eliminate meaning move the existing sensors close enough ...


1

It looks like there are 3 main components to the demonstration in this video. 1. Creating the map Navigation requires a map of the robot's environment -- it looks like this was done manually. It doesn't matter whether you create the digital map based on the real-world map, or a real-world map based on a contrived digital map. But the maps must match. ...


1

See this similar question and my answer to it. The question I linked asks for how to handle an unknown starting position, but it seems similar in that you and the other OP are both asking "how do I go from Dijkstra's algorithm to implementation?" Essentially, Dijkstra's algorithm only requires to you give a digraph with a set of distances or "costs" ...


1

There are a lot of possible ways to solve your problem. First, let's get you off the wrong track: this isn't a simple, line following problem. For it to be a line following robot, you need to lay track lines under your lawn for every place that you want to mow. Imagine a grid like a potato masher instead of the one your drew. The problem seems to be: ...


1

Your PID calculation is all wrong. You have: //calculate power_difference of motors power_difference = error/(Kp/100) + derivative*(Kd/100); First, you need correct error terms. You calculate: //make calculations error = position - 2500; derivative = error - lastError; I'm assuming here that 2500 is the signal you are expecting if you are exactly ...


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