Comments (4)
"Terminate or reset" could be renamed to "Finish: stop" in this case. What do you think? We could add a check whether all robots finished and then reset or terminate.
Split the problem and give a per robot a given set of apple raws sounds like a good approach to simplify the problem to me. Good idea. It can lead to a situation where someone would expect a different behavior (a robot is stopped while another one is still slow collection apples) but to start with seems pretty valid to me.
from roscondemo.
We will handle only one robot with this orchestration, but it should be done in a flexible way to accommodate for multiple robots (and not run into conflicts at least for some time, e.g. for entire row).
Let's keep in mind that having multiple mobile robots con lead to situations of collapse where, after some movements, the robots deal with a difficult situation to be resolved by the nav2 stack. Even assuming that we are going to use the recovery strategies available in the nav2 framework.
For spawning multiple robots we probably want to be sure that all them are in the scene before starting. Also to give them different initial positions to avoid the collapse situation described in above.
For a multiple robot scenario we also want to consider that a robot could possibly navigate from "Navigate to the closest gathering position" to "Is finished globally?" is other robots have finished all the work and there is no more gathering position to adopt.
Not sure how we are going to script the goals of each robot in the scene but we might need to add a "calculate navigation points for the robot" that can encapsulate a bit of logic to handle multi-robot/single-robot goals delivering. For a single robot this is pretty straightforward, for a multi-robot scenario the logic to determine the "new gathering spot" could be more interesting. Several strategies can be follow, probably having a global dispatcher can be the more robust approach with hardcoded positions for each of the trees.
Run apples task - it is useful to add a timeout in case we can't gather all apples.
+10. We can improve the timeout check but checking if robot/s are not increasing the total number of apples picked in a given time instead of computing the total demo time or even check if the robot is indeed moving since sometimes navigation are slow but successful, long but funny and people hate to see the fun spectacle stopped. I think that this can be added to this general diagram.
from roscondemo.
@j-rivero Good points!
This state machine is focused on a single robot scenario. I assumed we could run multiple of these in a way that they do not interfere or know about each other, for example:
- One robot for each row - is finished "globally" means that its row is finished.
- One robot for a couple of rows (exclusively), etc.
"Terminate or reset" could be renamed to "Finish: stop" in this case. What do you think?
We could add a check whether all robots finished and then reset or terminate.
from roscondemo.
We are currently working on it
from roscondemo.
Related Issues (20)
- docker image fails to communicate between rocker terminals can't spawn kraken or use rviz HOT 11
- Docker readme.md incorrectly states that Ubuntu 20.04 (Focal) is supported HOT 1
- ROSConDemo docker image is loaded with black ground texture when launched via launcher HOT 5
- Kraken_nav readme.md incorrectly states that Ubuntu 20.04 (Focal) is supported HOT 2
- ROSConDemo docker image dependent commits need to be updated to LKG tested HOT 1
- Dockerscript should not need to clone the repo that it is in HOT 5
- Update Apple Kraken to match Joint Motor Controller Components HOT 1
- Update Demo to recent changes in o3de-extras HOT 2
- Apple spawning stopped working HOT 2
- ROSConDemo Manipulator/MotorizedJointBus.h file not found HOT 1
- Add ROS 2 Iron support to docker
- Persisting ROS 2 service after simulation stop. HOT 2
- Dockerfile build errors out on `get_python.sh` HOT 4
- assert Vulkan API method failed and error RHI device HOT 10
- Editor Link step causes memory exhaustion with 16GB HOT 7
- Update dockerfile for development to 2310 HOT 4
- SceneImportSettings.h is missing in o3de/o3de main branch and 23.10.0 Release .deb installer causing ROSConDemo project build to fail HOT 5
- RHISystem: Failed to initialize RHI device HOT 8
- build failure HOT 5
- 'scripts/o3de.sh register -pp' not worked HOT 5
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 roscondemo.