Giter Site home page Giter Site logo

Identify Orchestration Needs about roscondemo HOT 6 CLOSED

o3de avatar o3de commented on June 8, 2024
Identify Orchestration Needs

from roscondemo.

Comments (6)

forhalle avatar forhalle commented on June 8, 2024

.

from roscondemo.

adamdbrw avatar adamdbrw commented on June 8, 2024

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):

  1. Queue all the trees in the given rows (can be implemented with a lazy / buffered approach).
  2. For each tree in our queue:
    1. 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).
    2. Gather apples from the current tree until all are gathered.
      1. Calculate our manipulator's reach (x, y, z ranges coverage, it will be a cube - this could be done on startup).
      2. 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
        1. Calculate the desired position of a manipulator.
        2. Position manipulator in front of an apple (simultaneously approach with x and y, extend at the end).
        3. Apple picking: our apple vanishes.
        4. Add the apple to our storage.
        5. If storage is full, do the unloading (e. g. spawn a couple of full crates of apples behind the robot, become empty).

from roscondemo.

adamdbrw avatar adamdbrw commented on June 8, 2024

If points 3a and 3b could be done through integration with moveIt2, that would be great (we would like to demonstrate it).

from roscondemo.

adamdbrw avatar adamdbrw commented on June 8, 2024

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.

adamdbrw avatar adamdbrw commented on June 8, 2024

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.

forhalle avatar forhalle commented on June 8, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.