Comments (5)
A couple of notes, I tried setting install/share/irobot_create_control/config/control.yaml to have extremely low acceleration to see if it was being applied, I tried the folowing
# Velocity and acceleration limits
# Whenever a min_* is unspecified, default to -max_*
linear.x.has_velocity_limits: true
linear.x.has_acceleration_limits: true
linear.x.has_jerk_limits: false
linear.x.max_velocity: 0.306
linear.x.min_velocity: -0.306
linear.x.max_acceleration: 0.01
# Not using jerk limits yet
# linear.x.max_jerk: 0.0
# linear.x.min_jerk: 0.0
angular.z.has_velocity_limits: true
angular.z.has_acceleration_limits: true
angular.z.has_jerk_limits: false
angular.z.max_velocity: 1.9
angular.z.min_velocity: -1.9
# Using 0.6 linear for each wheel, assuming one wheel accel to 600
# and other to -600 with wheelbase leads to 5.15 rad/s^2
# angular.z.max_acceleration: 5.15
# angular.z.min_acceleration: -5.15
angular.z.max_acceleration: 0.01
angular.z.min_acceleration: -0.01
# Not using jerk limits yet
# angular.z.max_jerk: 0.0
# angular.z.min_jerk: 0.0
But the robot seems to hit its max velocities instantly as opposed to the slow ramp I would expect. Secondly, I noticed linear and angular seem to use separate speed limiters, this doesn't account for the case where the command linear and angular are individually in bounds but the combination of both is higher than the individual wheel limits. For example if the command linear.x=0.306 and angular.z=1.9 is sent, each value is within limits, but if you execute both simultaneously, its outside of the individual wheel velocity limits. I can go into more detail on how this should be handled when this task gets assigned. If the acceleration limits in the existing code are a quick fix, it might make sense to fix that first, but if its a larger fix, it might be worth thinking about the full design, as the individual axis fix might be thrown away.
from create3_sim.
There is a PR to fix the diff_drive_controller not obeying limits in ros2_controllers, its PR #252. That will address the not obeying any accel limits, but won't fix the per wheel max velocity/acceleration violation
from create3_sim.
The PR to fix ros2_controllers accel limits merged into ros2_controllers, we will need to update our fork with the latest and get it into the create3_galactic branch. I asked @alsora to help with that. Once that is done, I think we can close this for now and consider the per wheel acceleration limits as follow on work. Those will likely have to be implemented in ros2_controllers diff_drive_controller, so it makes sense to wait until their master works on galactic and we stop using our fork, then we can make a branch to submit a PR against it and point to that branch until the PR is accepted.
from create3_sim.
Done.
Now both the master
and create3_galactic
branches include ros-controls/ros2_controllers@0469455
from create3_sim.
Closing for now. We can revisit the per wheel limits later
from create3_sim.
Related Issues (20)
- Package 'irobot_create_gazebo_bringup' not found HOT 2
- Can't activate controller 'diffdrive_controller' with Ignition HOT 7
- Release for Humble and Rolling? HOT 24
- Sim doesn't realize goals are complete - and no data on /odom HOT 11
- Can't Build create3_sim HOT 3
- Incorrect timestamps published using Gazebo simulation HOT 1
- SEGFAULT when adding a second Create3 Robot HOT 2
- Ignition: Missing IR intensity sensors HOT 3
- GAZEBO Simulation doesn't start up well
- Humble Multi-Robot-Sim TF namespace issue HOT 4
- Sensor Issue with a namespaced multi_sim HOT 5
- Building reference errors (Create3Hmi.cc) HOT 1
- No data under dock_status and ir_opcode topics using namespace
- About how to add a LIDAR to create3 and aws launch error HOT 2
- Disable Reflexes HOT 2
- Multi-Robot Simulation: Crash when spawning more than two robots
- Remove the Ignition install option from README (Will Not Run Create3_Sim) HOT 3
- Docking action succeeds but not centered on dock HOT 1
- Ignition: missing /cliff_intensity topic
- Issue with Spawner for diffdrive_controller: Controller manager not available HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from create3_sim.