Git Product home page Git Product logo

curg-archive / graspit_bci Goto Github PK

View Code? Open in Web Editor NEW
0.0 20.0 2.0 8.18 MB

THIS VERSION OF GRASPIT IS FOR A SPECIFIC PROJECT. IT IS HIGHLY LIKELY THAT IT IS BROKEN FOR YOUR APPLICATION. PLEASE DO NOT CLONE THIS REPOSITORY EXPECTING IT TO WORK. YOU PROBABLY WANT https://github.com/graspit-simulator/graspit INSTEAD!

Shell 0.02% C++ 64.66% C 23.37% Objective-C 0.06% Python 0.02% Batchfile 0.01% QMake 0.49% Prolog 0.06% Makefile 0.10% Groff 2.05% HTML 9.17%

graspit_bci's Introduction

graspit_bci

THIS VERSION OF GRASPIT IS FOR A SPECIFIC PROJECT. IT IS HIGHLY LIKELY THAT IT IS BROKEN FOR YOUR APPLICATION. PLEASE DO NOT CLONE THIS REPOSITORY EXPECTING IT TO WORK. YOU PROBABLY WANT https://github.com/graspit-simulator/graspit INSTEAD!

graspit_bci's People

Contributors

jon-weisz avatar jruales avatar jvarley avatar sridharsrihari avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graspit_bci's Issues

worlds should have a getActiveInstance()

World's should be allowed to be more than singular, but either every object created should be created with a world OR there should be a way of getting the current world for an object.

Basically, worlds should act like singletons MOST of the time, so their constructor should replace the activeWorld with the most recently constructed one.

This means you CAN create more than one in theory, but if you just want the active one, you can always call getActiveInstance on the class.

The constructor may need a mutex to make this truly safe, but for now we will ignore that.

Add grasp test

required for issue #1 ClientSocket needs an analyzeGrasp method that sends a string and the grasp.

To be useful, it also needs a signal in the ivmgr class similar to the processWorldPlanner signal. Call it analyzeGrasp also. It then needs to be connected to an analyzeGrasp method in the constructor.

The signal should be emitted by addUniqueSolution method after the grasp is added to the list in egPlanner.cpp,

Add setEmissiveColor to robot class

Similar to the way the Robot class has a setTransparency, it should have a setEmissiveColor or maybe a more general setColor with an enum for the type of color to change.

move guide drawing out of ivmgr

align, rotateHandLat and rotateHandLong have no real place in the ivmgr. Move them to the the view controller for the bci experiment.

add tf field to pointcloud

currently we transform the pointcloud data before sending to graspit, we just send the tf, and then let graspit put the pointcloud in whatever frame it likes.

Add robustness to communication between graspit and graspit_python_node

The whole system needs much more robustness to our of order communications.

Requests while the connection is being made

Multiple grasps being recieved at the same time for analysis (currently fails because graspit requests the current hand pose while processing each grasp, which causes interspersed communication.

Restarting graspit while the graspit_python_node is running fails because the existing target state is not reiterated. This causes problems with the point cloud showing in graspit.

Restarting the graspit python node while graspit is running because the target state is not reiterated.

Restarting the arm planner while graspit is running fails because the model list is not persistent and because the target state is not reiterated.

Reachability testing for grasps as they are planned

This issue can be broken down in to four parts:
1 - Modifying the grasp planner to have a unique identifier for each grasp and a 'tested' attribute for each grasp. Testing the reachability is going to happen in a asynchronously different program, and we don't want to have to pass back the entire grasp description with the results to go looking for it.

2 - Modifying the grasp_message_robot_server node in the trajectory_planner package to actually do the test.

3 - Modifying graspitServer.cpp to accept a message with the grasp identifier and result of the test

4 - Modifying the eigengrasp planner to either remove those grasps without hitting race conditions while modifying the grasp list.

don't make objects move to center the target

Depends on #23
Right now, the objects all move to center the target object at (0,0) -- The z axes remain unchanged

This should happen. Instead, the axes should get drawn around where the object actually is.

Start a protobuf server

Look at the way that a new GraspitSocketServer is made. Do the same thing for the protobuf server.

It should probably use socket 4766, since the graspitsocketserver uses 4765

Add grasp attribute modification to graspit socket server

Required for issue #1
The Graspit Socket server should accept a SetGraspAttribute grasp_identifier attributeString float_value command that looks at the currently running planner, finds the identified grasp if possible, and sets the given attribute to the given value.

Refactor the point cloud rendering

The point cloud rendering in graspitServer.cpp is a huge hack
It needs to be rewritten so that it doesn't create a whole new subgraph every time a point cloud comes in.
Instead it look up the appropriate nodes and only create them as needed.
Additionally, it should get a transform node, so that outside observers don't need to transform it for us.

onLine planner's grasp reranking is broken

The online planner reranks grasps and is supposed to maintain one list of grasps that is implicitly divided in half.
The first ten grasps should be those that are already analyzed for reachability, if they are successful
The second ten grasps should be those that have not yet been analyzed.

It is important that we reserve space for grasps that have not been analyzed so that they are not permanently rejected in favor of those that have been.

Respect reachability test failure

The online planner's updateSolutionsList function should respect test failure by pausing the grasp to the end of the list. The hand view window should ignore grasps that fail the test

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.