Open hsynklceng opened 1 year ago
Hi @hsynklceng thanks for using diffbot. Let me try to get more insight in your problem as I didn't encounter it so far with Diffbot or REMO.
First of all, where are you setting the wheel_radius? And are you using the high-level or low-level PID approach? I am assuming the low-level PID approach which is based on the mcu firmware scripts in diffbot_base/scripts/base_controller.
If I set the wheel_radius parameter to 1, all the values are correct, but if I set it to its real value for wheel_radius, the odom and desired_position datas are corrupted.
Regarding the wheel radius definition, Diffbot and REMO use also use 0.0325 m (3.25 cm), defined here:
And I didn't encounter any odom issues. A value of 1 would mean a wheel with a diameter of 2 meter. Which value did you set and which desired_position calculation are you referring to? A link to the code location would help me to give better support.
It is also a good idea to update the wheel radius in your URDF. For example here (diffbot) and here (REMO), but this should only be relevant for simulation. The real robot reads the wheel_radius
from the parameter server.
One thing that you also have to adapt - in case you have different motors/encoders - is to set the number of encoder ticks for one full revolution. The important file where to set it is here:
The one defined in the diffbot_base_config should be only relevant for testing, but it is a good idea to also set it correctly:
Another important thing is the PID tuning:
Let me know if you are not using the low-level PID approach. Then the PID tuning looks a bit different.
firstly, thanks for answer
First of all, where are you setting the wheel_radius? And are you using the high-level or low-level PID approach? I am assuming the low-level PID approach which is based on the mcu firmware scripts in
I set on diffbot_control.yaml and yes i am using low-level PID on mcu. By the way, my wheel radius is 7.5 cm(0.075).
And I didn't encounter any odom issues. A value of 1 would mean a wheel with a diameter of 2 meter. Which value did you set and which desired_position calculation are you referring to? A link to the code location would help me to give better support.
I solved the odometry problem, it was caused by a code error in my mcu. And If I add the parameter publish_wheel_joint_controller_state: True
to diffbot_control.yaml, the topic containing the desired_position will be active.
Hi, I use diffbot package on my robot. I revised the parameters according to my own robot. But i have a problem. If I set the wheel_radius parameter to 1, all the values are correct, but if I set it to its real value for wheel_radius, the odom and desired_position datas are corrupted. How can i fix this problem? Thank you