-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
High speed (~2+m/s) demo #1707
Comments
My bots don't go that fast, but my naive assumption is that the limit is the speed of computation. If you can go 2m/s with a big enough computer, I believe DWB should work. |
Got it, thanks for the note that helps. Weird things start to happen at higher speeds, but I don't think that DWB relies on a strong enough model of robot dynamics to actually be effected by it. Also while 2 m/s is "fast" relative to indoor, the issues I'm thinking of are mostly applicable at car speeds so maybe even 2 m/s is sufficiently slow to be fine. Any relative scale of maximum speeds you know of DWB being used at? (0.5 m/s, 1 m/s, 1.5 m/s) |
I can say from experience, I've had robots running ROS1 navigation with DWA go 2.0 m/s without too much work. You do typically need to retune some things (usually sim_time has to get longer, which skews a bunch of other parameters). The real trick is tuning the controller so that it supports BOTH 2.0m/s and slower speeds that are inevitably needed. |
Awesome, that's really helpful insight. Well, the way I designed the servers also helps with that problem quite a bit; you can have a high speed and a low speed DWB controller plugin to use in the behavior tree. We allow for multiple planner or controller plugins to be loaded in the servers at any time and called as required. Knowing that now, I can more easily put together a demo. The goal here was just to show it could do it and fix any issues involved in getting there (which I thought I'd run into). Maybe its actually just a given and I didn't know this just trivially works. |
We did a project with vehicle of size compared to large SUV with double Ackermann steering with TEB / SBPL Lattice combo in ROS1. Worked like a charm :) |
I think the big action item is to just put together a demo of this in ROS2. I don't think any development is required |
Hello, @soldierofhell . |
Hi @harderthan, unfortunatelly I can't say much of technical details cause it's proprietary project. But you can sense about the size of the platform from footage and materials publictly available like https://www.milmag.eu/news/view?news_id=4611. If you google, you'll find probably also some videos, but they may not be from autonomous driving |
@harderthan the aim of this project is to show navigation2 working with a robot traveling at high speeds using our algorithms. Then write up a page for the website around configuring your robot to do that (whatever parameters need to be updated to enable it; max speeds, update rates, etc). If any issues show up, communicating those so we can work to resolve them. |
Hi, I wonder whether such configuration page is available as of now. Currently, in simulation, for DWB controller, when I set the max_vel_x to be 2m/s, the output from DWB will always below the limit for a lot (0.6m/s). I wonder whether there are any params that need to be tuned. Thanks! |
I, too, am seeing limits around 0.6-0.7 m/s when I set @SteveMacenski Do you have any suggestions for how to troubleshoot this? Bear in mind that in my setup I am not using SLAM as discussed in this ROS discourse post. |
That is probably due to an inappropriately sized local costmap for those speeds - but yes that could solve the issue. Remember to set the X speed and the controller XY speeds as well as the costmap having the sim time / costmap size to make that happen That param is used in main, are you refering to it not working in foxy? https://github.com/ros-planning/navigation2/blob/30b405c58e6d53ba8c96381416bc4679d35a1483/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp#L490 |
Yes, I increased the size of my local costmap accordingly (I think 13x13 meters). But since I was using an older version of |
To be released in coming weeks |
I don't have personal experience working with higher speed robots, most of the things I've worked on are operating in human filled spaces where kids and other people jump in front of robots for fun.
It would be great to analyze the stack and determine if its capable of running at higher speeds (2m/s or more), and if not, what are the technologies that need to change to support it. I think the first thing to look at would be the controllers and see if DWB or TEB is suitable for higher speeds, or seeing if other techniques we should consider. I think that is the weakest link for this type of demo. Maybe @DLu can shine some light if DWB is suitable for those speeds in his experience.
Further, looking at the parameters for perception required (costmap size, update rates, etc). The planner should probably be fine as is, maybe replanning a little faster.
I imagine for this to be functionally safe, we need a lidar-based safety controller to limit speed before collisions, but for now, assume that its in an environment without people (or people that are trained not to do stupid things like jumping in front of robots at full speed). This is something that is vendor specific to meet relevant safety standards so lets just assume that this is BYO for the demo and we can consider this when we have something functionally working otherwise.
The text was updated successfully, but these errors were encountered: