11 votes

How do the PID parameters (Kp, Ki, and Kd) affect the heading of a differential driving robot when they are increased individually?

Proportional term: this controls how quickly to turn the steering when the heading is not at the set value. A low P will lead to sluggish steering, reacting only slowly to set heading changes. It may ...
user avatar
  • 1,001
5 votes

Inverse kinematics for differential robot knowing linear and angular velocities

Your linear velocity should be the average of both wheel values. Assuming there's some wheel radius of WHEEL_RADIUS, as you've stated, then you should get each ...
user avatar
  • 14.5k
4 votes
Accepted

Adjusting the PWM frequency and duty cycle to achieve the desired angular velocity in differential drive robots

At first, I did not go trough your code to check for errors in the formulas but from a high level perspective this seems ok. Therefore, your position controller is fine. What you lack is a lowlevel ...
user avatar
3 votes

Understanding differential drive

Your instincts are correct if you are talking about rotating both wheels forward (or reverse) with the same rotational speed. In that case, the robot would move linearly forward (or backward), just ...
user avatar
  • 4,326
3 votes

Plotting location using wheel encoder data

A few things: I took a look at your data set. Did you make sure you used the time column correctly? The first entry is "1429481388546050050" without the decimal. To make it in seconds, it should be ...
user avatar
  • 950
3 votes
Accepted

How to find kinematics of differential drive caster robot?

Kinematics of mobile robots For the figure on the left: I = Inertial frame; R = Robot frame; S = Steering frame; W = Wheel frame; $\beta$ = Steering angle; For the figure on the right: L = ...
user avatar
3 votes
Accepted

How to perform odometry on an arduino for a differential wheeled robot?

I would add a few lines after you check that theta is between +/- 2pi: ...
user avatar
  • 14.5k
3 votes
Accepted

Changing tank drive (differential) mode to single joystick drive mode

In order to do this, you need to have something on the robot that can intercept your "single joystick" signal from the remote control and translate it to left/right wheel speeds. Your arduino might ...
user avatar
  • 10.8k
3 votes

Extended Kalman filtering for IMU and Encoder

EKF sensor fusion is achieved simply by feeding data streams from different sensors to the filter. So all you need to do is setup your implementation to accept both encoder and IMU data. This is ...
user avatar
  • 1,266
2 votes

differential drive PID controller

You aren't properly mapping your steering value to the wheel speeds. In fact, I don't think you're applying the PID correctly at all. From your code, my guess is that you're using ...
user avatar
  • 10.8k
2 votes
Accepted

Differential drive trajectory following control

Pure pursuit is the standard method for following a trajectory with a differential drive (or ackerman steering) robot. It is a very simple technique. You should be able to search for it and find ...
user avatar
  • 5,215
2 votes
Accepted

Differential Drive Robot Control

At the foundation of PID control, there is the assumption that the quantity you are measuring (and using to compute your error) has a direct linear relationship with the quantity you are controlling. ...
user avatar
  • 136
2 votes
Accepted

Designing compatible spur gears for a robot gearbox

To make compatible gears, you need to match the pitch and shape of the teeth. First, check out this wiki article about gears and especially the image about nomenclature, so you have a good idea of ...
user avatar
  • 283
2 votes

Plotting location using wheel encoder data

Thanks for the update. Now it looks like $x_c$ and $y_c$ denote the origin/starting position, and $\theta$ is positive, measured CCW from the positive x-axis. Now I am even more concerned about the ...
user avatar
  • 14.5k
2 votes
Accepted

Understanding differential drive

The answer is very simple; Steer drive is what you know from a car where one motor powers both the wheels (either the front or the rear wheels) and then steering is achieved by turning the front ...
user avatar
  • 136
2 votes

How do the PID parameters (Kp, Ki, and Kd) affect the heading of a differential driving robot when they are increased individually?

Andy's response is good, and he hits all of the important points but to fully understand PID control in the context of a differential drive robot, it might be useful to take a step back and consider ...
user avatar
  • 916
2 votes

What is difference between 2 wheels and 4 wheels and tracked differential mobile base kinematics?

The short answer is that the equations/models for these different vehicle should be different but there is no value in using more accurate equations. All these equations are approximations that make ...
user avatar
  • 4,205
2 votes
Accepted

Arduino for mobile robot

It depends what Arduino you are going to use. I don't think that you can use Arduino Nano/Micro for this because you will not have enough I/O and memory. You can use Arduino Mega (maybe UNO) but you ...
user avatar
  • 161
2 votes

Advantage of Kalman filter in differential drive planar robot

It seem that your are missing some intuition about the function of a Kalman filter type filtering method. To a large degree the working principle of the Kalman filter is combining information from ...
user avatar
2 votes
Accepted

How to make my robot move parallel to edge of the table?

I can't use any line-following method. Actually, you are quite wrong, the way I understand the problem. It is a line-following. It is just that the line is not painted (like on the road). The line is ...
user avatar
  • 301
2 votes

How to make my robot move parallel to edge of the table?

The problem you are describing is quite similar to line following from a controls perspective, there is a difference in how the line is detected. Line following robots use a wide variety of ways to ...
user avatar
  • 6,322
2 votes

How to handle motor stall zones in differential drive point-forward go to goal algorithm?

For a similar problem (TT motors can't start the bot rolling on a carpet) I have been toying with the idea of setting up PID control for the angular velocity. If it stays stuck, the integral term ...
user avatar
  • 1,111
2 votes

How to choose closest angle when crossing -180 degrees

This looks like a common angle wrapping mistake. I am assuming you're defining your angles between -180° ($-\pi$) to +180° ($\pi$). Let's say your current heading is -170°. And you desired heading is ...
user avatar
  • 166
2 votes

Drive unicycle kinematics equations through the geometry

tl;dr: don't worry about it Your system really operates in continuous time, described by differential equations. It's a convenient, even necessary, approximation to use discrete time and difference ...
user avatar
  • 1,111
2 votes
Accepted

Center line steering with differential drive

Based on the suggestion “look into PID”l controller” I did some more research on that for line following and that’s exactly what I was looking for. Funny in some ways my naive algorithm already uses a ...
user avatar
1 vote

4 Wheel Differential Drive Robot with different speeds

Dynamic friction is always lower than static friction. If you are purposefully putting your wheels into a slip mode, then you are putting the wheels into a condition where they have less traction. ...
user avatar
  • 14.5k
1 vote

ROS Gazebo Odometry Issue

this may be a bit late to answer, but i hope it may be of help for people learning ros in the future. First, in the URDF model, mu1 and ...
user avatar
1 vote

calculating differential drive robot ICC position

OK, I'm going to work on the assumption that you are trying to calculate the Instantaneous Centre of Curvature, and that the values of $R$ and $\theta$ that you have been given are the distance from ...
user avatar
  • 1,009
1 vote

How can I run Tests/Simulations of Control and Motion Planning for a Bare Metal Robot?

You can alter the C code structure in the Controller, so that the code you want to test is indepencent from platfrom specific code. (You can only test the platform independent code using Software in ...
user avatar
  • 6,322
1 vote

Forward Kinematics od Differential Robot

1) Load or import the data that is in your xlsx files into w1 and w2, by using importdata as an array of values. 2) Write a for loop for extractting individual ...
user avatar

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