12
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 ...
6
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 ...
4
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:
...
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 ...
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 ...
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 ...
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 = ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
2
votes
Motor acceleration and position with PID control
I believe the resource https://robotics.stackexchange.com/a/21571/6941 already pretty much answers your question.
In essence, both the following approaches are valuable and can be combined together:
...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
2
votes
Accepted
How do I make a robot imported using urdf and ROS2 gravity? It just floats
You can start by checking the e-puck URDF. It can be a good source of inspiration. The problem may come from the conversion of the URDF, which is not creating any physics for the whole robot node. One ...
2
votes
SW2URDF model is floating in Gazebo
The instructions to attach the base link to "world" would apply if you're modeling a robot with a fixed base, e.g. a fixed robot arm. For mobile robots, you should not need this joint. You ...
2
votes
Accepted
SW2URDF model is floating in Gazebo
I resolved it by changing the model (redesigning the model on Solidworks)
All the wheels should be touching the floor, in my case the caster wheel is above the ground by 1mm and gazebo is not happy ...
1
vote
Accepted
Going from Spline to Differential Drive Command
If you have the path you want the robot to stay on, it sounds like you need Pure Pursuit. In this simple algorithm, you steer the robot to some look-ahead point on the path. The gist of it is ...
Ben♦
- 5,825
1
vote
Accepted
How to drive mecanum wheels robot: code or algorithm
I've built one and added the code here: https://github.com/charlch/MecanumBot/blob/master/MecanumBot.ino
The core of the maths is this:
Firstly turn the 1000 to 2000 input into -1.0 to 1.0
...
1
vote
4 wheeled differential wheeled (skid-steer) robot steering problem
The most likely cause is that your motor torque is too small. Another way to look at this is that the friction between wheel and ground is too large.
You can reduce this friction by using smoother ...
1
vote
how to implement autonomous navigation using lidar and hector?
http://wiki.ros.org/amcl
You should try this and take a look at http://wiki.ros.org/turtlebot_navigation/Tutorials/Autonomously%20navigate%20in%20a%20known%20map
It provides the code to use amcl and ...
1
vote
Motor encoders randomly start counting backward, then go back to normal
What kind of motors are you using? Because the behaviour you describe makes me think of a brushless motor, due to the fact that you have a rotating magnetic field having the rotor spin. But in the ...
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.
...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
differential-drive × 108ros × 36
navigation × 15
mobile-robot × 12
control × 12
pid × 11
wheeled-robot × 11
gazebo × 10
kinematics × 8
odometry × 7
ros2 × 7
inverse-kinematics × 6
arduino × 5
slam × 5
ros-kinetic × 5
python × 4
ros-humble × 4
ros-control × 4
localization × 3
raspberry-pi × 3
simulation × 3
forward-kinematics × 3
two-wheeled × 3
quadrature-encoder × 3
driver × 3