Whatever I try, my kobuki base keeps shaking, also often referred as "wobbling" behavior in gazebo > 2
Video: https://youtu.be/aBOjJyfX10M
**My environment** (where I want it to work)
ROS Indigo + osrf ros_gazebo5_pkgs + kobuki(from source)
Where it works:
ROS Indigo either x32/x64 with gazebo2 (same sources of kobuki - just recompile..)
Where it doesn't work:
ROS + gazebo > v2
Where I tried:
ROS Jade + gazebo5
ROS Indigo x32/x64 + gazebo4/gazebo5
manual compile:
- gazebo7 -> no compile (too many errors to fix)
- gazebo6 -> no compile (too many errors to fix)
- gazebo5 -> compiles
- gazebo4 -> compiles
**Fixes tried:**
I found and tried several solutions, most point to the deprecated velocity /force commands.:
- change / remove the velocity command. http://answers.gazebosim.org/question/8371/kobukiturtlebot-doesnt-move-when-given-velocity-commands-in-gazebo-5/
- also mentioned max_force https://bitbucket.org/osrf/gazebo/commits/0a08678cadde3fc3594fcdef777df8ea9b12c29c?at=restore_max_force5
- more confusion about max_force or fmax http://answers.gazebosim.org/question/8458/setmaxforce-deprecated-in-gazebo-50/
- suggests fmax right https://github.com/ros-simulation/gazebo_ros_pkgs/blob/jade-devel/gazebo_plugins/src/gazebo_ros_diff_drive.cpp
- suggests max_force right https://bitbucket.org/osrf/gazebo/src/406e1297bb41cabc090c26db1642e5bbdd0b5479/plugins/SkidSteerDrivePlugin.cc?fileviewer=file-view-default
For me its currently unclear what's correct fmax or max_force however just commenting out should also work.
**The problem in Code:**
/*
// deprecated
joints_[LEFT]->SetVelocity(0, wheel_speed_cmd_[LEFT] / (wheel_diam_ / 2.0));
joints_[RIGHT]->SetVelocity(0, wheel_speed_cmd_[RIGHT] / (wheel_diam_ / 2.0));
// some suggest just comment SetMaxForce (the following)
joints_[LEFT]->SetMaxForce(0, torque_);
joints_[RIGHT]->SetMaxForce(0, torque_);
// some suggest this as alternative code to SetMaxForce, but max_force seems wrong, it should be fmax
joints_[LEFT]->SetParam("max_force",0, torque_);
joints_[RIGHT]->SetParam("max_force",0, torque_);
*/
// my best solution (that still didnt work)
joints_[LEFT]->SetParam("vel",0, wheel_speed_cmd_[LEFT] / (wheel_diam_ / 2.0));
joints_[RIGHT]->SetParam("vel",0, wheel_speed_cmd_[RIGHT] / (wheel_diam_ / 2.0));
joints_[LEFT]->SetParam("fmax",0, torque_);
joints_[RIGHT]->SetParam("fmax",0, torque_);
**Summary:**
I tried various versions of this.. including just commenting everything. Yes I cleaned and recompiled everytime..
Note: Without Gravity -> no problems, but.. no gravity is not a solution
So what could also happen?
damper? weight?
I played with kp,kd,mu1/2, mass, inertia nothing helped.
Others had the same issue and for them it worked..
https://github.com/mayfieldrobotics/kobuki_desktop/commit/4246c6e4330f39725df3eb39a0b77a7fcc6185b1
from forum
http://answers.ros.org/question/209126/kobuki-strange-behaviour-in-gazebo/
and even used for a "jade" branch https://github.com/yujinrobot/kobuki_desktop/issues/41
its officially applied..
but its not working (for me)
according to Javier it should work in gazebo4
I have tested the same code in Gazebo4.1.3 and it works like a charm, so it is a Gazebo5 problem.
Javier V. Gómez (May 13 '15)
From
I tried, it didn’t.. (for me..)
-> the error happens already in gazebo4
something in the migration from gazebo2 to gazebo4?
migration
https://bitbucket.org/osrf/gazebo/src/5adf274c0172e4707ac86523c3aedd3d332f3c7c/Migration.md?fileviewer=file-view-default
and
changelog
https://bitbucket.org/osrf/gazebo/src/default/Changelog.md?fileviewer=file-view-default
PS: Yes I also tested the execution of my changes by messaging the ROS_INFO_STREAM
what magic ingredient am I missing?
↧