ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

ErikHells's profile - activity

2016-11-03 10:32:46 -0500 received badge  Famous Question (source)
2016-09-01 01:45:30 -0500 commented answer What is the unit of the commands from the diff_drive_controller?

Now, that makes perfectly sense. Of course! Thank you! :)

2016-09-01 01:45:10 -0500 received badge  Scholar (source)
2016-08-31 13:23:01 -0500 commented answer What is the unit of the commands from the diff_drive_controller?

Tnks! So in my case with a return value of 10, the wheels should turn 10 times per second? That's 3.14 m/s (0.1pi10). Far from the 0.5 m/s I had as an input. It works by just multiplying with the wheel radius on the RobotHW-side again but the division by wheel radius in diff control is unnecessary

2016-08-31 10:43:27 -0500 received badge  Notable Question (source)
2016-08-31 00:43:50 -0500 received badge  Popular Question (source)
2016-08-30 20:55:15 -0500 received badge  Student (source)
2016-08-30 17:35:20 -0500 asked a question What is the unit of the commands from the diff_drive_controller?

Hi,

I'm trying to get a differential drive robot running with ros_control and the diff_drive_controller. I have a working setup except for knowing exactly what the commands written to the command variable in the diff_drive_controller actually means (the ones I'm supposed to convert to motor commands in my RobotHW-instance). I've gone through the code for the diff_drive_controller to actually understand what's happening and I've tried to trace down how a vel_cmd is being translated to something else in the controller.

This is the move robot code from the diff_drive_controller:

// Compute wheels velocities:
const double vel_left  = (curr_cmd.lin - curr_cmd.ang * ws / 2.0)/wr;
const double vel_right = (curr_cmd.lin + curr_cmd.ang * ws / 2.0)/wr;

My configuration file for the controller specifies the wheel separation to 0.341 meters and the wheel radius to 0.05 meters. When I'm sending a cmd_vel with a linear velocity of 0.5m/s and no angular velocity (hence, the robot should move straight ahead..) the calculations will translate to:

vel_left = (0.5 - 0.0 * 0.341 / 2.0) / 0.05; // Equals 10
vel_right = (0.5 + 0.0 * 0.341 / 2.0) 0.05; // Equals 10

So what unit is the value 10 in? S.I m/s? Can't be! I want to go with 0.5m/s straight ahead.

Trying to wrap my head around this but right now I'm just feeling stupid.. x-(

Thanks!

2016-08-26 03:51:14 -0500 received badge  Enthusiast
2016-06-21 11:17:16 -0500 commented question How to link with ros ARM libraries when cross compiling?

Any updates on this? I have the ARM toolchain installed on my desktop Ubuntu 16.04 and cross compilation works but linking does not work with the exact same error as above. Using an ARM-based main computer for ROS can't be that uncommon that noone has a working cross compilation solution, or is it?

2016-06-21 09:31:03 -0500 received badge  Supporter (source)