-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Data -.inf drive_module_steering_angle_controller #1
Comments
That sounds like I have created some subtle bugs. Do you have a reproduction case. Does it always happen when you stop the robot? |
Yes |
Hello! I made a PR for this fix and another fix regarding the TF: #2 |
hi I just tried the Togn3k version but i noticed once the vel and steering stop publishing sending a /cmv_vel all 0 dose not reset the angle or reduce the last vel. changing the angular vel alone will change the linear vel but the angular vel will not change (no messages published )and with a small linear vel(0.00001) angular vel works as expected Peter |
after digging in the code i found this in control_model.py at line 231 |
So if I remember correctly the I think(??) there's some code somewhere that if the steering angle is |
I have been playing with it all day now and it seems to work fine with and i like the way when it stops the wheels are a zero |
What do you mean with the order the wheel angle and velocity are published? |
never mind i solved it |
you're right @peterheim1 : ignoring the inf values cause the robot to not correctly stop when i send 0.0
|
There's a check in one of the pieces of code, but not in all of them (doh). I should really update the controller code with the code I have from https://github.com/pvandervelde/basic-swerve-sim. It's got a controller that should be an improvement. |
I have a strange problem Rotate on the spot also causes a lot of fluctuations for the first 1 to 2 seconds with the slower acceleration if I publish a angle or velocity from the topic publisher in RQT it works if I mix X and Z values in normal driving the wheel angles will fluctuate some time as much as 100deg but only 1 wheel When running navigation every thing works until the wheels fluctuates then the robot gets lost
|
Eeehhh that's not ideal. Do you have a reproduction case anywhere? Any code that I can try to run? |
On my real robot that publishes joint_states at 50 hz it will happen all the time but it gets worse as time goes on. my joint_state publisher listens to steering and velocity topic pass that info to the MCU on the robot steering is looped back through to joint_states and velocity is taken from the robot actual wheel velocity |
here is a link to my joint_state publisher omni_controller |
So is your I just tried running Zinger in Ignition:
|
I'm using a real robot. my controller only reads the steering angle and velocity commands and publishes a joint_state message commands to the MCU(teensy 3.5)are done through serial. the steering angles are passed straight back to joint states and the velocity is the actual wheel velocity. the steering is done with RC servos so i expect a bit of error. The robot moves as expected ie 1 meter forward is reflected in odom and a 90 degrees turn as well |
The controller code subscribes to the joint_states here:
And then uses them here:
At the end of that function it notifies the steering_controller that there is a new set of drive module states, which then get translated into a new body state. The body state is heavily used when calculating the next values for the drive modules. Especially if it uses one of the different control profiles. If I would have to take a guess (and it's very much a guess without any data to look at) this might be caused by the code restarting the control profiles each time, or it is trying to correct for the natural jitters that are caused by real life physics. |
so if the joint_state message where to be corrupted would that result in strange wheel angles ie 10r 2 wheels turning by a large amount? |
That is my current hypothesis but I have no proof. Is there anyway we can grab some data? Can we grab a ROS bag with the steering inputs and the joint states. I would imagine that if we send the joint states through a simulation then we should see something? |
here is a link to some bags i recorded today ros bags |
Sweet thanks. I just grabbed them and had a look at your first dataset. It's very jittery :( It's going to take me a bit to figure out what's going on to be honest. |
Hi
very impressed with your work
I tried the zinger_swerve_controller for my swerve robot but when you stop the robot the
drive_module_steering_angle_controller/commands data shows
if /cmd_vel is not 0 then no inf
trying to convert them to a INT I get
OverflowError: cannot convert float infinity to integer
The text was updated successfully, but these errors were encountered: