Comments (6)
.
from roscondemo.
To initiate this task, here is a rough description of scripting. A "mission" script: gather apples from specified rows until interrupted or done (no more apples):
- Queue all the trees in the given rows (can be implemented with a lazy / buffered approach).
- For each tree in our queue:
- Go to a first tree in a given row (set ros2 nav goal but use ground truth position next to a tree). Each tree should have one or more gathering points (for total gathering coverage).
- Gather apples from the current tree until all are gathered.
- Calculate our manipulator's reach (x, y, z ranges coverage, it will be a cube - this could be done on startup).
- For each gathering position for the current tree (we can start with a single position).
1. Query the environment for the pickable apples (in manipulator reach).
2. Queue the picking order (some simplified algorithm for a traveling salesman problem, or just "book reading" top-bottom, left-right sweep).
3. For each apple in the queue- Calculate the desired position of a manipulator.
- Position manipulator in front of an apple (simultaneously approach with x and y, extend at the end).
- Apple picking: our apple vanishes.
- Add the apple to our storage.
- If storage is full, do the unloading (e. g. spawn a couple of full crates of apples behind the robot, become empty).
from roscondemo.
If points 3a and 3b could be done through integration with moveIt2, that would be great (we would like to demonstrate it).
from roscondemo.
Giving it a bit of thought - do you think it would be good to move some of this to ROS 2 packages? This would reflect a real use-case a bit more. One or more of the following could replace selected parts of scripting (based on ground truth):
- A node which plans the work
- Navigation node (we want this one anyway)
- Picking planner
- A node responsible for "finding" apples
- A node to manage unloading
This would take some work, but we would have an example where replacing implementations with real ones (e.g. real apple detector) is much closer.
If we make only one such node, the apple detector would be best.
It would take camera image as well as manipulator pose(s) on topic and publish bounding boxes for apples in the image. It could even be a stub which only publishes from a ground truth topic (sim "cheating") to detector topic but it would still be an example of ROS 2 interaction.
Let me know if it makes sense to you.
from roscondemo.
Orchestration Needs have been identified with the following subtasks: #42 #43 #44 #45 #46 #47.
@forhalle this task can be now closed. 42-46 tasks might spawn smaller sub-tasks in the future, but they are supposed to cover all the required automation / scripting for the live demo.
Note: we should add a task for user interaction within the AWS live demo - we should ensure manual control work, there is certain gamification to it, a timer, good camera views for the task etc.
from roscondemo.
Hi @adamdbrw - I'll close the issue this time, but feel free to close issues in the future (I don't want to be a bottleneck). Also, per these notes, thanks for creating the user interaction tasks you mention above.
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.