Merge pull request #1280 from erwincoumans/master

pybullet a bit more refactoring, moving around files.
This commit is contained in:
erwincoumans 2017-08-27 21:58:19 -07:00 committed by GitHub
commit 449c8afc11
248 changed files with 356400 additions and 251 deletions

View File

@ -2,177 +2,8 @@ Royalty Free License
Original kitchen model downloaded from from https://www.turbosquid.com/3d-models/free-obj-model/1064415 Original kitchen model downloaded from from https://www.turbosquid.com/3d-models/free-obj-model/1064415
Converted using Bullet/Extras/obj2sdf Converted using Bullet/Extras/obj2sdf
See https://blog.turbosquid.com/royalty-free-license/ This kitchen was originally using the royalty free license https://blog.turbosquid.com/royalty-free-license/
Royalty Free License
This is a legally binding agreement between licensee (“you”), and TurboSquid regarding your rights to use Stock Media Products from the Site under this license. “You” refers to the purchasing entity, whether that is a natural person who must be at least 18 years of age, or a corporate entity. The rights granted in this agreement are granted to the purchasing entity, its parent company, and its majority owned affiliates on a “royalty free” basis, which means that after a Purchase, there are no future royalties or payments that are required. Collectively, these rights are considered “extended uses”, and are granted to you, subject to applicable Editorial Use Restrictions described below. The license granted is wholly transferable to other parties so long it is in force and not terminated, otherwise violated, or extinguished, as set forth herein. This agreement incorporates by reference the Terms of Use as well as the Sites policies and procedures as such.
I. Introduction & Definitions
Definitions
This agreement is intended to be easy to understand, and to provide clarity for using Stock Media Products in the work you create (“Creations”). Over the years, TurboSquid has been asked many questions about how Stock Media Products may be used in Creations, and we have attempted to answer those questions in this agreement.
Some words in this agreement are given specific meanings. Words that appear initially in quotations, such as “you” and “Creations”, are defined in the text preceding the word. Other capitalized words are defined below:
“Stock Media Product” is the collection of one or more digital files, packaged in the form of a product on the Site that can be identified by a product ID, and that is uploaded by you, or otherwise made available to you, for Purchase on the Site. A Stock Media Product may include 3D models, texture maps, motion captures, photographs, imagery, application and plug-in software, materials and shaders, shapes and vector graphics, training materials, building components, sound effects, stock music, and videos. Additionally, a Stock Media Product may include a number of individual files of different file formats to make it easier for Customers to work in a variety of software applications (such as 3ds Max, Maya, and Cinema 4D), and may also include other files (such as jpeg images used for texturing), and images or other files that are used for promotional purposes. For Customers and their use in Creations, this definition also includes derivative and intermediary files used for that purpose.
“Site” refers to the TurboSquid websites, APIs, software applications or any approved means or utility either currently in existence or in the future; the software and source code used by TurboSquid to provide such services; user interface layouts, designs, images, text, knowledgebase articles, program offers; site information provided in reports (such as popular keyword searches); and all other intellectual property protected under copyright, trademark, patent, publicity, or any other proprietary right.
“Purchase” is the acquisition of a Stock Media Product by you from the Site under this agreement, whether as a purchase of Stock Media Product made available at a price of greater than $0, or a download of Stock Media Product made available at no charge.
“TurboSquid” includes TurboSquid, Inc. and all licensed affiliates and partners that distribute Stock Media Products on behalf of TurboSquid, Inc.
“Product Page” is the product page or interface that displays Stock Media Products available for Purchase on the Site.
“Computer Game” is a type of Creation that includes digital games, computer-based games, handheld electronic games, mobile games, online games, social games, game mods, and console-based games.
“Imagery” is a Creation made of any single image or sequence of images.
“Intellectual Property” means, copyright, trademark, trade secret, right of publicity, or any other proprietary right throughout the world.
To make reading this agreement easier and less repetitive, the following constructions are used:
“Include,” including,” and “such as” are considered to be followed with “but not limited to.” Examples are used in this agreement to illustrate, rather than limit, the scope of the terms.
“The following restrictions”, “the foregoing restrictions”, and “subject to the restrictions” are considered to be followed with “in addition to all other restrictions applicable within this agreement.”
II. License Rights
1. Ownership. TurboSquid does not grant title or ownership in Stock Media Products. All rights in Stock Media Products not expressly granted in this agreement are reserved by TurboSquid for itself and its licensors.
2. Rights Granted. For Stock Media Products, TurboSquid grants to you a non-exclusive, perpetual, worldwide right and license to copy, distribute, reproduce, adapt, publicly display, publicly perform, digitally perform, transmit, broadcast, telecast, advertise, create derivative works, and market Stock Media Products within Creations in the uses authorized in this agreement. You may request authorization for a use not covered by this agreement (“New Use”) by writing agent@turbosquid.com. TurboSquid is authorized to approve a New Use if TurboSquid finds in its sole judgment that the New Use is substantially similar to another established use in this agreement, and authorizes the New Use in writing.
3. Rights Granted When Sharing Stock Media Products. If you Purchase as an employee of a corporate entity,sharing Purchased Stock Media Products with other employees of your corporate entity is allowed. Examples of allowed sharing include storing files on a networked hard drive, and aggregating Stock Media Products for later use in future Creations. You are responsible for any downstream distribution, use, or misuse by a recipient of a shared Stock Media Product.In all cases, sharing Stock Media Products with external people or entities is only allowed in the following situations, and with the following restrictions:
a. In the production of a Creation owned by you, if you are working in collaboration with external parties, and there is a need to share Stock Media Products for the development and production of your Creation, sharing Stock Media Products with those external parties is allowed. Any external party that receives Stock Media Products may only use Stock Media Products on your Creations and must take reasonable care to secure and limit access to Stock Media Products to that purpose.
b. In the production of a Creation owned by another entity (“your Client”), if you are working as a contractor and need to share Stock Media Products with your Client, or any external parties working with your Client, sharing Stock Media Products is allowed, subject to the restriction that all parties may use Stock Media Products only for your Clients particular Creation, and for successive versions of your Clients Creation, such as sequel Computer Games or movies that utilize the same 3D models. All parties must take reasonable care to secure and limit access to Stock Media Products to the parties working on your Clients Creation. For all other use by any party, Stock Media Products must be Purchased again to create a new license agreement governing that use.
4. Editorial Use Restriction for Some Stock Media Products. The following restrictions apply to any Stock Media Product affixed with an “Editorial” notice on its Product Page. The Editorial notice is one way to alert you that certain subject matter depicted by Stock Media Products, such as a manufactured product under a brand name, may be protected by another partys Intellectual Property rights (“Other-Party Intellectual Property”). Permitted use of Other-Party Intellectual Property in Stock Media Products is limited to news reporting in Creations of some cultural, editorial, journalistic, or otherwise newsworthy value, and includes news reporting on television and the internet. This restriction does not apply if you have the needed authorization to use the Other-Party Intellectual Property for your Creation, such as if you are the Intellectual Property owner yourself, or an Intellectual Property owners advertising team, hired party, or licensee purchasing that companys product.
5. Other-Party Intellectual Property. TurboSquid does not own or license any Other-Party Intellectual Property. TurboSquid does not in any way make any representations or warranties about Other-Party Intellectual Property associated with Stock Media Products. You are solely responsible for determining the need for and, if appropriate, obtaining any needed Other-Party clearance, consent, or release to use any Other-Party Intellectual Property in your Creations.
6. Creations of Imagery.
Permitted Uses of Creations of Imagery. Subject to the following restrictions, you may use Creations of Imagery within news, film, movies, television programs, video projects, multi-media projects, theatrical display, software user interfaces; architectural renderings, Computer Games, virtual worlds, simulation and training environments; corporate communications, marketing collateral, tradeshow promotional items, booth decorations and presentations; pre-visualizations, product prototyping and research; mobile, web, print, television, and billboard advertising; online and electronic publications of blogs, literature, social media, and email campaigns; website designs and layouts, desktop and mobile wallpapers, screensavers, toolbar skins; books, magazines, posters, greeting cards; apparel items, brochures, framed or printed artwork, household items, office items, lenticular prints, product packaging and manufactured products.
Restrictions on Permitted Uses of Creations of Imagery.
a. Stock Media Clearinghouse. You may NOT publish or distribute Creations of Imagery through another stock media clearinghouse, for example as part of an online marketplace for photography, clip art, or design templates.
b. Promotional Images. Images displayed for the promotion of Stock Media Products, such as preview images on the Stock Media Products Product Page (“Promotional Images”), may be used in Creations of Imagery, provided that the Stock Media Product itself has been Purchased and subject to the following restrictions:
i. You may NOT use a Promotional Image that has any added element which is not included as part of the Stock Media Product. An example of this type of restricted use is if the Stock Media Product contains a 3D model of an airplane, and there is a Promotional Image of that airplane rendered over a blue sky; however, the blue sky image is not included as part of the Stock Media Product. Other prohibited examples include use of Promotional Images from movies or advertisements that may have used Stock Media Product.
ii. You may NOT use any Promotional Image that has a logo, mark, watermark, attribution, copyright or other notice superimposed on the image without prior approval from TurboSquid Support.
c. Business Logos. You may NOT use Imagery in any Creation that is a trademark, servicemark, or business logo. This restriction is included because the owners of these types of Creations typically seek exclusivity on the use of the imagery in their Creation, which is incompatible with the non-exclusive license granted to you under this agreement.
7. Creations of Computer Games and Software
Permitted Uses in Creations of Computer Games and Software. Subject to the following restrictions, you may include Stock Media Products in Creations of Computer Games, virtual worlds, simulation and training environments; mobile, desktop and web applications; and interactive electronic publications of literature such as e-books and electronic textbooks.
Restrictions on Permitted Uses of Stock Media Products in Creations of Games and Software.
a. Interactivity. Your inclusion of Stock Media Products within any such Creation is limited to uses where Stock Media Product is contained in an interactive experience for the user and not made available outside of the interactive experience. Such a permitted example of this use would be to include a 3D model of human anatomy in a medical training application, in a way that the 3D model or its environment may be manipulated or interacted with.
b. Access to Stock Media Products. You must take all reasonable and industry standard measures to prevent other parties from gaining access to Stock Media Products. Stock Media Products must be contained in proprietary formats so that they cannot be opened or imported in a publicly available software application or framework, or extracted without reverse engineering. You may NOT publish or distribute Stock Media Products in any open format, or format encrypted with decryptable open standards (such as WebGL or an encrypted compression archive).
c. Open Systems. You may NOT include Stock Media Products in Creations that have the general functionality for importing and/or exporting Stock Media Products. An example of such a prohibited use is to include Stock Media Products as a starter library within a Creation that allows users to generally work with 3D models, even if the Stock Media Product itself is somehow protected and is not capable of being exported. Instead, the users of such a software application may Purchase Stock Media Products directly from the Site.
d. Virtual Good Sales. You may NOT import, upload, reproduce, make available, publish, transmit, distribute, or sublicense Stock Media Products in Creations of virtual goods or worlds for any 3D community (“Virtual World”), unless you or your Client owns the Virtual World platform and it complies with the foregoing restrictions.
8. Creations of Physical Form.
Permitted Uses in Creations of Physical Form. Subject to the following restrictions, you may use Stock Media Products to make physical Creations such as 3D printed works, articles of manufacture, custom vehicles, furniture, jewelry, sculptural artwork, toys, and physical entertainment goods (“Creations of Physical Form”).
Restrictions on Permitted Uses in Creations of Physical Form.
a. Substantially Similar Creations. Permitted use of any Creation of Physical Form in which a Stock Media Product is untransformed or substantially similar to the Stock Media Product, is limited to personal use, gifts, or charitable donations, with a maximum of 5 instances of such Creation per Purchase; unless the Stock Media Product is a small part of a much larger array of other physical objects in the Creation. For example, if you are creating a real-world, physical human skeleton for manufacture for sale, it is permitted to add a 3D printed human head that exactly resembles the Purchased Stock Media Product, but it is not permitted to sell the 3D printed head by itself. Another permitted example of a Stock Media Product being a small part of a larger array is using a 3D model that ends up within an automobile as a part of the automobile.
b. No Other-Party Intellectual Property. You may NOT reproduce Other-Party Intellectual Property in any Creation of Physical Form for any purpose.
9. 3D Industry Promotional Use. If TurboSquid has granted you, as a hardware or software partner, access to priced Stock Media Products on a free-of-charge basis, your use of Stock Media Products is restricted to internal testing for your 3D software or hardware products, and to the promotion of your software or hardware products with Creations of Imagery provided that an attribution of the artists name and the Site are included. You agree that should any Stock Media Products be used outside of these purposes in ways that are normally allowed after a Purchase, that you will promptly Purchase the Stock Media Products and otherwise comply with the terms herein.
10. Unauthorized Use. If you use Stock Media Products in an unauthorized way, TurboSquid may terminate your account and pursue other penalties, damages, losses, and profits TurboSquid is entitled to under this agreement or at law or equity. The following are unauthorized uses that are explicitly prohibited:
a. Competition. You may NOT use Stock Media Products in a way that competes with the Site or the Stock Media Products themselves.
b. Re-Distribution. You may NOT re-distribute, publish, or make Stock Media Products available to any third party except in the form of a permitted Creation, or shared as authorized in this agreement.
c. Group Buying. You may NOT aggregate funds to Purchase Stock Media Products with one or more other parties. An example of this prohibited use is a website membership where members pool their money to make a single Purchase that is shared by the members of the group. Each such member must Purchase individually.
d. Stock Media Product Clearinghouses. You may NOT publish, distribute, or make Stock Media Products available through any online clearinghouse infrastructure.
e. No Obscene or Unlawful Use. You may NOT use Stock Media Products for any defamatory, harassing, pornographic, obscene, or racist purpose, or to infringe any partys Intellectual Property rights.
f. False Attribution. You may NOT misrepresent yourself as the creator of Stock Media Products.
III. License Term & Termination
1. Term. Your right and license to Stock Media Products is perpetual, unless terminated as described herein.
2. Termination. Your license grant is terminated immediately and without notice in the cases below. In such termination, you and any recipients of Stock Media Products must cease use, distribution, and destroy all copies of Stock Media Products.
a. Reversal of Purchase. Your right and license to Stock Media Products are contingent on your Purchase of Stock Media Products. Any payment reversal of a Purchase for any reason immediately terminates all rights granted under this agreement. Potential Reasons for a payment reversal include:
i. TurboSquid reverses your Purchase at your request.
ii. TurboSquid receives a charge back notice from your bank or credit card cancelling your Purchase and withdrawing the funds used for your Purchase.
iii. TurboSquid determines in its sole discretion that your Purchase was fraudulent.
iv. Your purchase was made with a dishonored check.
v. Your purchase was made and there is a bank transfer failure.
vi. When you are granted delayed payment terms, and fail to make payments such that TurboSquid sends you notice and terminates your account.
b. Failure to Abide by the License Grant. Material failure to abide by the terms of this agreement immediately terminates your right and license to Stock Media Products. If you detect a violation of the license grant by you or any recipient of shared Stock Media Products, and promptly report the violation to agent@turbosquid.com, TurboSquid will make a good faith effort to find an appropriate remedy to preserve your license grant.
IV. Warranties
You covenant, represent, and warrant to TurboSquid that:
1. You have full right, power, legal capacity, and authority to enter into and perform this agreement, have obtained any third-party consent needed to do so, and, prior to any Purchase, had an opportunity to seek independent legal counsel.
2. You will not use Stock Media Products except pursuant to the terms of this agreement. Should you use Stock Media Products in an unauthorized way, you agree to any reasonable fee or penalty exercised by TurboSquid under this agreement or applicable law.
3. You will, prior to Purchase, determine the need for and, if appropriate, obtain any needed third-party clearance, consent, or release to use Other-Party Intellectual Property shown in the digital rendering of Stock Media Products, and shall not use Stock Media Products to infringe any partys Intellectual Property rights.
4. You will immediately notify TurboSquid of any Intellectual Property claim against your use of Stock Media Products or any other rights issue, before disclosing such issue to any third-party.
V. Limitation of Liability
1. Stock Media Products are provided on an “as is”, “as available”, and “with all faults” basis. TurboSquid makes no representations, warranties, conditions, or guarantees as to the usefulness, quality, suitability, truth, fitness for a particular purpose, non-infringement, merchantability, or cosmetic attributes of Stock Media Products, and does not guarantee the accuracy or completeness of specifications associated with Stock Media Products, including measurements, weight, durability, strength, materials, general physical properties, regulatory compliance, other engineering or construction attributes.
2. TurboSquid disclaims all express or implied conditions, representations, and warranties of any kind regarding Stock Media Products, including any implied warranty or condition of merchantability. TurboSquid allows your Purchase to be refunded under certain reasonable time frames and conditions, subject to the Sites policies.
3. You assume all risk for any damage to your computer systems and network for any damage to your computer system by obtaining Stock Media Products, including any damages resulting from computer viruses.
4. To the fullest extent permitted by law, TurboSquid shall not be liable for any direct, indirect, punitive, special, incidental, consequential, or exemplary damages (including loss of business, revenue, profits, goodwill, use, data, electronically transmitted orders, or other economic advantage) arising out of or in connection with Stock Media Products, even if TurboSquid has previously been advised of, or reasonably could have foreseen, the possibility of such damages, however they arise, whether in breach of contract or in tort (including negligence). To the extent that any jurisdiction does not allow the exclusion or limitation of direct, incidental, or consequential damages, portions of the preceding limitation or exclusion may not apply, but should be construed to the greatest extent applicable in such jurisdictions.
5. You agree to indemnify and hold TurboSquid and its subsidiaries, affiliates, shareholders, officers, directors, agents, licensors, licensee, suppliers, alliance members, other partners, employees and representatives (“TurboSquid Parties”) harmless from any claim or demand, including reasonable attorneys fees, made by any third party due to, or arising out of your use of the Source Material or Creations.
VI. Other Terms
1. Entire Agreement. This agreement constitutes the entire agreement between you and TurboSquid relating to your Purchase, unless you have a corporate license agreement with TurboSquid. Corporate licenses are available with additional protections for additional fees. Please contact agent@turbosquid.com if your organization requires a corporate license. TurboSquid does not otherwise offer any other changes, additions, variations, or additional signed forms related to this agreement. No modification to this agreement will be binding, unless in writing and signed by an authorized TurboSquid representative.
2. Material Breach. You agree that any material breach of these Terms will result in irreparable harm to TurboSquid for which damages would be an inadequate remedy and, therefore, in addition to its rights and remedies otherwise available at law, TurboSquid will be entitled to equitable relief, including both a preliminary and permanent injunction, if such a breach occurs. You waive any requirement for the posting of a bond or other security if TurboSquid seeks such an injunction.
3. Import/Export Regulations. Stock Media Products may be subject to the U.S. export laws and the export or import laws of other countries. You agree to comply strictly with all such laws and, in particular, shall with Stock Media Products: (a) obtain any export, re-export, or import authorizations required by U.S. or Your local laws; (b) not design, develop or produce missile, chemical/biological, or nuclear weaponry; and (c) not provide Stock Media Products to prohibited countries and entities identified in the U.S. export regulations.
4. Governing Law. This agreement is governed by New York law, excluding conflict of law principles. Any action or proceeding arising out of or related to this agreement must be brought in a state or federal court located in New York, New York, and both parties irrevocably submit to the exclusive jurisdiction of such courts. All notices, requests and other communications under this agreement must be in writing (e-mail messages shall be deemed writings).
5. LIMITED INTERNAL USER ARBITRATION. You acknowledge and agree that TurboSquid may, in its sole discretion, arbitrate disputes between TurboSquid users involving Stock Media Products (including any purchaser or supplier of Stock Media Products), and such findings shall be final and non-appealable. Either party may request that TurboSquid arbitrate the dispute, or TurboSquid may elect, at its option, to arbitrate the dispute. After TurboSquid elects to arbitrate any dispute hereunder, TurboSquid will waive any rights to a commission from both the Purchase and arbitration, and the parties must keep the results and process confidential and may not disclose anything related to the dispute to any other party (whether by oral, written, or other type of disclosure). To resolve disputes, TurboSquid may decide to terminate or suspend users, revoke the license, offer replacement Stock Media Products, reestablish the licensee, or surrender or reallocate fees (whether by refund, charitable donation, or otherwise). TurboSquid may award up to 3X the Purchase price to either party depending on the circumstances. YOU UNDERSTAND, ACKNOWLEDGE, AND AGREE THAT ACCEPTING THIS ARBITRATION PROVISION WAIVES RIGHTS TO JUDICIAL RESOLUTION, TRIAL BY JURY AND RIGHTS YOU WOULD OTHERWISE HAVE IF YOU HAD NOT AGREED TO THIS ARBITRATION PROVISION.
6. Notice. Any notice under this agreement shall be via email to agent@turbosquid.com, provided that you receive an acknowledgement email from a TurboSquid representative within 5 business days. If no such acknowledgement email is received, notice must be in writing and delivered by mail to the following address.
TurboSquid, Inc.
c/o TurboSquid Support
935 Gravier St., Suite 1600
New Orleans, LA 70112
7. Assignment. TurboSquid may not assign its rights under this agreement without providing you notice, except in the case of a bankruptcy, merger, acquisition, sale of all or substantially all of TurboSquids assets to a subsequent owner or operator, or similar event. You may not assign your rights under this agreement without the prior written consent of TurboSquid, which will not be unreasonably withheld.
8. English. This agreement may be translated into other languages, but English is the official language of this agreement and in any conflict between the English language version and any other version, the English language version shall control.
This Royalty Free License is effective for use with Stock Media Products for use on or after July 23, 2015.
However, in personal email the author gave permission to use it for any purpose with Bullet:
You can use it freely with Bullet, without restrictions.
Author contact: info@fabrika3b.com

View File

@ -3768,6 +3768,7 @@ void b3SetTimeOut(b3PhysicsClientHandle physClient, double timeOutInSeconds)
} }
double b3GetTimeOut(b3PhysicsClientHandle physClient) double b3GetTimeOut(b3PhysicsClientHandle physClient)
{ {
PhysicsClient* cl = (PhysicsClient*)physClient; PhysicsClient* cl = (PhysicsClient*)physClient;
@ -3779,6 +3780,25 @@ double b3GetTimeOut(b3PhysicsClientHandle physClient)
return -1; return -1;
} }
b3SharedMemoryCommandHandle b3SetAdditionalSearchPath(b3PhysicsClientHandle physClient, char* path)
{
PhysicsClient* cl = (PhysicsClient*)physClient;
b3Assert(cl);
b3Assert(cl->canSubmitCommand());
struct SharedMemoryCommand* command = cl->getAvailableSharedMemoryCommand();
b3Assert(command);
command->m_type = CMD_SET_ADDITIONAL_SEARCH_PATH;
command->m_updateFlags = 0;
int len = strlen(path);
if (len<MAX_FILENAME_LENGTH)
{
strcpy(command->m_searchPathArgs.m_path,path);
}
return (b3SharedMemoryCommandHandle)command;
}
void b3MultiplyTransforms(const double posA[3], const double ornA[4], const double posB[3], const double ornB[4], double outPos[3], double outOrn[4]) void b3MultiplyTransforms(const double posA[3], const double ornA[4], const double posB[3], const double ornB[4], double outPos[3], double outOrn[4])
{ {
b3Transform trA; b3Transform trA;

View File

@ -482,6 +482,8 @@ void b3SetProfileTimingDuractionInMicroSeconds(b3SharedMemoryCommandHandle comma
void b3SetTimeOut(b3PhysicsClientHandle physClient, double timeOutInSeconds); void b3SetTimeOut(b3PhysicsClientHandle physClient, double timeOutInSeconds);
double b3GetTimeOut(b3PhysicsClientHandle physClient); double b3GetTimeOut(b3PhysicsClientHandle physClient);
b3SharedMemoryCommandHandle b3SetAdditionalSearchPath(b3PhysicsClientHandle physClient, char* path);
void b3MultiplyTransforms(const double posA[3], const double ornA[4], const double posB[3], const double ornB[4], double outPos[3], double outOrn[4]); void b3MultiplyTransforms(const double posA[3], const double ornA[4], const double posB[3], const double ornB[4], double outPos[3], double outOrn[4]);
void b3InvertTransform(const double pos[3], const double orn[4], double outPos[3], double outOrn[4]); void b3InvertTransform(const double pos[3], const double orn[4], double outPos[3], double outOrn[4]);

View File

@ -4001,6 +4001,14 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm
} }
break; break;
} }
case CMD_SET_ADDITIONAL_SEARCH_PATH:
{
BT_PROFILE("CMD_SET_ADDITIONAL_SEARCH_PATH");
b3ResourcePath::setAdditionalSearchPath(clientCmd.m_searchPathArgs.m_path);
serverStatusOut.m_type = CMD_CLIENT_COMMAND_COMPLETED;
hasStatus = true;
break;
}
case CMD_LOAD_URDF: case CMD_LOAD_URDF:
{ {
BT_PROFILE("CMD_LOAD_URDF"); BT_PROFILE("CMD_LOAD_URDF");

View File

@ -1,4 +1,3 @@
#ifndef SHARED_MEMORY_COMMANDS_H #ifndef SHARED_MEMORY_COMMANDS_H
#define SHARED_MEMORY_COMMANDS_H #define SHARED_MEMORY_COMMANDS_H
@ -105,6 +104,12 @@ struct MjcfArgs
int m_flags; int m_flags;
}; };
struct b3SearchPathfArgs
{
char m_path[MAX_FILENAME_LENGTH];
};
struct BulletDataStreamArgs struct BulletDataStreamArgs
{ {
char m_bulletFileName[MAX_FILENAME_LENGTH]; char m_bulletFileName[MAX_FILENAME_LENGTH];
@ -960,6 +965,7 @@ struct SharedMemoryCommand
struct b3CreateMultiBodyArgs m_createMultiBodyArgs; struct b3CreateMultiBodyArgs m_createMultiBodyArgs;
struct b3RequestCollisionInfoArgs m_requestCollisionInfoArgs; struct b3RequestCollisionInfoArgs m_requestCollisionInfoArgs;
struct b3ChangeTextureArgs m_changeTextureArgs; struct b3ChangeTextureArgs m_changeTextureArgs;
struct b3SearchPathfArgs m_searchPathArgs;
}; };
}; };

View File

@ -4,7 +4,9 @@
#define SHARED_MEMORY_KEY 12347 #define SHARED_MEMORY_KEY 12347
///increase the SHARED_MEMORY_MAGIC_NUMBER whenever incompatible changes are made in the structures ///increase the SHARED_MEMORY_MAGIC_NUMBER whenever incompatible changes are made in the structures
///my convention is year/month/day/rev ///my convention is year/month/day/rev
#define SHARED_MEMORY_MAGIC_NUMBER 201707140
#define SHARED_MEMORY_MAGIC_NUMBER 201708270
//#define SHARED_MEMORY_MAGIC_NUMBER 201707140
//#define SHARED_MEMORY_MAGIC_NUMBER 201706015 //#define SHARED_MEMORY_MAGIC_NUMBER 201706015
//#define SHARED_MEMORY_MAGIC_NUMBER 201706001 //#define SHARED_MEMORY_MAGIC_NUMBER 201706001
//#define SHARED_MEMORY_MAGIC_NUMBER 201703024 //#define SHARED_MEMORY_MAGIC_NUMBER 201703024
@ -69,6 +71,7 @@ enum EnumSharedMemoryClientCommand
CMD_REQUEST_COLLISION_INFO, CMD_REQUEST_COLLISION_INFO,
CMD_REQUEST_MOUSE_EVENTS_DATA, CMD_REQUEST_MOUSE_EVENTS_DATA,
CMD_CHANGE_TEXTURE, CMD_CHANGE_TEXTURE,
CMD_SET_ADDITIONAL_SEARCH_PATH,
//don't go beyond this command! //don't go beyond this command!
CMD_MAX_CLIENT_COMMANDS, CMD_MAX_CLIENT_COMMANDS,

View File

@ -67,6 +67,24 @@ struct TempResourcePath
} }
}; };
static char sAdditionalSearchPath[B3_MAX_EXE_PATH_LEN] = {0};
void b3ResourcePath::setAdditionalSearchPath(const char* path)
{
if (path)
{
int len = strlen(path);
if (len<(B3_MAX_EXE_PATH_LEN-1))
{
strcpy(sAdditionalSearchPath,path);
sAdditionalSearchPath[len] = 0;
}
} else
{
sAdditionalSearchPath[0] = 0;
}
}
int b3ResourcePath::findResourcePath(const char* resourceName, char* resourcePathOut, int resourcePathMaxNumBytes) int b3ResourcePath::findResourcePath(const char* resourceName, char* resourcePathOut, int resourcePathMaxNumBytes)
{ {
//first find in a resource/<exeName> location, then in various folders within 'data' using b3FileUtils //first find in a resource/<exeName> location, then in various folders within 'data' using b3FileUtils
@ -78,6 +96,18 @@ int b3ResourcePath::findResourcePath(const char* resourceName, char* resourcePat
return strlen(resourcePathOut); return strlen(resourcePathOut);
} }
if (sAdditionalSearchPath[0])
{
TempResourcePath tmpPath(resourcePathMaxNumBytes+1024);
char* resourcePathIn = tmpPath.m_path;
sprintf(resourcePathIn,"%s/%s",sAdditionalSearchPath,resourceName);
//printf("try resource at %s\n", resourcePath);
if (b3FileUtils::findFile(resourcePathIn, resourcePathOut, resourcePathMaxNumBytes))
{
return strlen(resourcePathOut);
}
}
int l = b3ResourcePath::getExePath(exePath, B3_MAX_EXE_PATH_LEN); int l = b3ResourcePath::getExePath(exePath, B3_MAX_EXE_PATH_LEN);
if (l) if (l)
{ {

View File

@ -8,6 +8,7 @@ class b3ResourcePath
public: public:
static int getExePath(char* path, int maxPathLenInBytes); static int getExePath(char* path, int maxPathLenInBytes);
static int findResourcePath(const char* sourceName, char* resourcePath, int maxResourcePathLenInBytes); static int findResourcePath(const char* sourceName, char* resourcePath, int maxResourcePathLenInBytes);
static void setAdditionalSearchPath(const char* path);
}; };
#endif #endif

View File

@ -1,4 +1,13 @@
import os, inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
print ("current_dir=" + currentdir)
parentdir = os.path.join(currentdir,"../gym")
os.sys.path.insert(0,parentdir)
import pybullet as p import pybullet as p
import pybullet_data
import time import time
cid = p.connect(p.SHARED_MEMORY) cid = p.connect(p.SHARED_MEMORY)
@ -14,9 +23,9 @@ useRealTimeSim = 1
#p.startStateLogging(p.STATE_LOGGING_VIDEO_MP4, "racecar.mp4") #p.startStateLogging(p.STATE_LOGGING_VIDEO_MP4, "racecar.mp4")
p.setRealTimeSimulation(useRealTimeSim) # either this p.setRealTimeSimulation(useRealTimeSim) # either this
#p.loadURDF("plane.urdf") #p.loadURDF("plane.urdf")
p.loadSDF("stadium.sdf") p.loadSDF(os.path.join(pybullet_data.getDataPath(),"stadium.sdf"))
car = p.loadURDF("racecar/racecar.urdf") car = p.loadURDF(os.path.join(pybullet_data.getDataPath(),"racecar/racecar.urdf"))
for i in range (p.getNumJoints(car)): for i in range (p.getNumJoints(car)):
print (p.getJointInfo(car,i)) print (p.getJointInfo(car,i))

View File

@ -1,16 +1,27 @@
#os.sys.path.insert is only needed when pybullet is not installed
#but running from github repo instead
import os, inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
print ("current_dir=" + currentdir)
parentdir = os.path.join(currentdir,"../gym")
os.sys.path.insert(0,parentdir)
import pybullet import pybullet
import pybullet_data
import time import time
#choose connection method: GUI, DIRECT, SHARED_MEMORY #choose connection method: GUI, DIRECT, SHARED_MEMORY
pybullet.connect(pybullet.GUI) pybullet.connect(pybullet.GUI)
pybullet.loadURDF("plane.urdf",0,0,-1) pybullet.loadURDF(os.path.join(pybullet_data.getDataPath(),"plane.urdf"),0,0,-1)
#load URDF, given a relative or absolute file+path #load URDF, given a relative or absolute file+path
obj = pybullet.loadURDF("r2d2.urdf") obj = pybullet.loadURDF(os.path.join(pybullet_data.getDataPath(),"r2d2.urdf"))
posX=0 posX=0
posY=3 posY=3
posZ=2 posZ=2
obj2 = pybullet.loadURDF("kuka_lwr/kuka.urdf",posX,posY,posZ) obj2 = pybullet.loadURDF(os.path.join(pybullet_data.getDataPath(),"kuka_iiwa/model.urdf"),posX,posY,posZ)
#query the number of joints of the object #query the number of joints of the object
numJoints = pybullet.getNumJoints(obj) numJoints = pybullet.getNumJoints(obj)

View File

@ -0,0 +1,6 @@
import pybullet as p
import os
def getDataPath():
resdir = os.path.join(os.path.dirname(__file__))
return resdir

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,48 @@
# cube.obj
#
o cube
mtllib cube.mtl
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 0.000000 1.000000
vt 1.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 -1.000000 0.000000
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
g cube
usemtl cube
s 1
f 1/1/1 2/2/1 3/3/1
f 3/3/1 2/2/1 4/4/1
s 2
f 3/1/2 4/2/2 5/3/2
f 5/3/2 4/2/2 6/4/2
s 3
f 5/4/3 6/3/3 7/2/3
f 7/2/3 6/3/3 8/1/3
s 4
f 7/1/4 8/2/4 1/3/4
f 1/3/4 8/2/4 2/4/4
s 5
f 2/1/5 8/2/5 4/3/5
f 4/3/5 8/2/5 6/4/5
s 6
f 7/1/6 1/2/6 5/3/6
f 5/3/6 1/2/6 3/4/6

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -0,0 +1,30 @@
<?xml version="0.0" ?>
<robot name="cube.urdf">
<link name="baseLink">
<contact>
<lateral_friction value="1.0"/>
<inertia_scaling value="3.0"/>
</contact>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value=".1"/>
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="cube.obj" scale=".05 .05 .05"/>
</geometry>
<material name="white">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size=".05 .05 .05"/>
</geometry>
</collision>
</link>
</robot>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,13 @@
# Blender MTL File: 'None'
# Material Count: 1
newmtl blinn3
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 2
map_Ka duckCM.png
map_Kd duckCM.png

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,609 @@
o convex_0
v -0.086018 0.502143 0.615873
v -0.225720 0.427101 -0.544625
v -0.268729 0.362660 -0.533833
v 0.623016 0.276638 -0.017993
v 0.601512 0.867587 -0.082516
v -0.601818 0.867587 0.003477
v -0.677007 0.126174 0.228965
v 0.386620 0.244455 0.476150
v 0.300756 0.137003 -0.351171
v 0.569331 0.835252 0.282696
v -0.677007 0.190691 -0.286648
v -0.709188 0.631101 0.379366
v -0.472792 0.706295 -0.383432
v 0.483314 0.577413 -0.404901
v -0.859718 0.545154 -0.050254
v 0.150225 0.104745 0.432983
v -0.386774 0.867587 0.293487
v -0.537305 0.244455 0.486828
v -0.247225 0.094067 -0.329701
v 0.623016 0.588166 0.368574
v -0.666179 0.534402 -0.394110
v -0.257901 0.867587 -0.232917
v -0.107523 0.620348 -0.512363
v -0.290081 0.620348 0.572820
v 0.386620 0.104745 0.121503
v 0.666025 0.523649 -0.189864
v -0.838214 0.287390 0.121503
v 0.515647 0.856758 -0.200656
v 0.161053 0.373413 -0.523041
v 0.225414 0.577413 0.562029
v -0.257901 0.362660 0.615873
v -0.279405 0.094067 0.400949
v 0.687529 0.502295 0.207382
v -0.655503 0.405595 0.476150
v 0.461810 0.330402 -0.394110
v -0.633999 0.104745 -0.146925
v 0.526323 0.222949 0.293374
v -0.677007 0.770811 -0.168508
v -0.161207 0.169261 -0.447841
v 0.515647 0.867587 0.271904
v -0.838214 0.620424 0.132295
v 0.118045 0.341079 0.594290
v -0.805881 0.287390 -0.168508
v 0.311431 0.094067 -0.157716
v -0.601818 0.287466 -0.415579
v 0.676853 0.749306 0.024946
v 0.483314 0.566660 0.486828
v -0.193388 0.169261 0.519089
v -0.752196 0.341154 0.357896
v -0.644674 0.792241 0.250435
v 0.128721 0.577413 -0.512250
v 0.633845 0.652607 -0.254387
v -0.580314 0.663359 0.454567
v 0.472638 0.180014 -0.222239
v -0.419107 0.566660 -0.490894
v -0.118199 0.663359 0.540559
v -0.504972 0.158508 -0.372527
v -0.773701 0.179938 -0.039576
v 0.289927 0.094067 0.304165
v -0.397603 0.523649 0.583612
v -0.483620 0.867587 -0.179186
v 0.547827 0.362660 0.400949
v -0.655503 0.169186 0.357896
v -0.773701 0.727800 -0.039576
f 41 50 64
f 5 6 17
f 6 5 22
f 13 22 23
f 22 5 28
f 23 22 28
f 3 2 29
f 24 1 30
f 4 26 33
f 18 31 34
f 9 29 35
f 29 14 35
f 32 7 36
f 19 32 36
f 25 4 37
f 4 33 37
f 13 21 38
f 9 19 39
f 3 29 39
f 29 9 39
f 10 5 40
f 5 17 40
f 30 10 40
f 15 27 41
f 16 8 42
f 30 1 42
f 1 31 42
f 15 21 43
f 27 15 43
f 19 9 44
f 32 19 44
f 11 43 45
f 43 21 45
f 5 10 46
f 10 20 46
f 20 33 46
f 33 26 46
f 20 10 47
f 10 30 47
f 42 8 47
f 30 42 47
f 31 18 48
f 32 16 48
f 16 42 48
f 42 31 48
f 34 12 49
f 12 41 49
f 41 27 49
f 17 6 50
f 41 12 50
f 2 23 51
f 28 14 51
f 23 28 51
f 29 2 51
f 14 29 51
f 28 5 52
f 14 28 52
f 26 35 52
f 35 14 52
f 5 46 52
f 46 26 52
f 24 17 53
f 12 34 53
f 17 50 53
f 50 12 53
f 4 25 54
f 26 4 54
f 9 35 54
f 35 26 54
f 44 9 54
f 25 44 54
f 2 3 55
f 21 13 55
f 23 2 55
f 13 23 55
f 3 45 55
f 45 21 55
f 17 24 56
f 24 30 56
f 40 17 56
f 30 40 56
f 36 11 57
f 19 36 57
f 3 39 57
f 39 19 57
f 45 3 57
f 11 45 57
f 7 27 58
f 11 36 58
f 36 7 58
f 43 11 58
f 27 43 58
f 8 16 59
f 16 32 59
f 37 8 59
f 25 37 59
f 44 25 59
f 32 44 59
f 1 24 60
f 31 1 60
f 34 31 60
f 24 53 60
f 53 34 60
f 6 22 61
f 22 13 61
f 38 6 61
f 13 38 61
f 33 20 62
f 8 37 62
f 37 33 62
f 47 8 62
f 20 47 62
f 27 7 63
f 7 32 63
f 18 34 63
f 48 18 63
f 32 48 63
f 49 27 63
f 34 49 63
f 21 15 64
f 6 38 64
f 38 21 64
f 15 41 64
f 50 6 64
o convex_1
v -0.193580 1.125601 0.443872
v -0.236532 1.179294 -0.383444
v -0.236532 1.275851 -0.383444
v -0.741519 1.222234 0.368646
v -0.150542 1.619669 0.089200
v -0.032381 0.867587 -0.007315
v -0.709262 1.114847 -0.179140
v -0.601710 1.544392 -0.125539
v 0.139599 1.254419 -0.018086
v -0.526501 0.867587 0.207508
v -0.451206 1.533714 0.347105
v -0.365302 0.867587 -0.232909
v 0.021352 1.297359 0.314961
v -0.139847 1.512131 -0.243679
v -0.000124 1.104094 -0.275907
v -0.043162 0.942863 0.261193
v -0.440511 1.061079 0.454558
v -0.505025 1.200802 -0.351133
v -0.677005 0.953692 -0.028772
v -0.300960 1.437006 0.422331
v -0.741519 1.372559 0.175280
v -0.215056 0.867587 0.293336
v 0.053609 1.458514 -0.071770
v -0.386864 1.641176 -0.028772
v -0.365388 1.501453 -0.286593
v -0.741519 1.093340 0.336418
v 0.107342 1.039647 0.067827
v -0.000124 1.480021 0.207340
v -0.000124 1.340298 -0.265136
v -0.612577 1.533714 0.164510
v -0.150628 0.932109 -0.265136
v -0.505025 1.050325 -0.329676
v -0.537196 0.867587 -0.136226
v -0.741519 1.275851 -0.082541
v -0.558758 1.447760 -0.254366
v -0.440511 1.190048 0.476184
v -0.279570 1.608991 0.228881
v 0.075085 1.028817 -0.125455
v 0.064304 1.125601 0.261193
v 0.118037 1.286605 0.153739
v -0.193580 1.608991 -0.114684
v -0.096809 1.404745 0.368646
v -0.451206 1.630422 0.099886
v -0.225837 1.050325 -0.361903
v 0.096561 1.254419 -0.168453
v -0.741519 1.082662 -0.050229
v -0.515806 0.953692 0.347105
v -0.644748 1.211556 -0.265136
v -0.107590 1.028893 0.379332
v -0.182799 1.555222 0.282734
v -0.096895 0.867587 -0.157683
v -0.397559 1.350976 -0.361903
v -0.139847 1.232987 0.433185
v -0.698481 1.447760 -0.050229
v -0.666224 1.018139 -0.189910
v -0.193580 1.404745 -0.340446
v -0.096809 1.232987 -0.351133
v -0.032381 1.555222 -0.028772
v -0.580234 0.867587 0.110741
v -0.354693 1.576729 -0.200765
v -0.558758 1.523036 0.282650
v 0.075085 1.437006 0.089200
v -0.397559 1.480021 0.400874
v -0.053943 0.867587 0.153655
f 91 80 128
f 70 74 76
f 67 66 82
f 74 70 86
f 81 68 90
f 68 85 90
f 78 87 93
f 82 66 96
f 76 74 97
f 96 76 97
f 90 85 98
f 72 89 99
f 68 81 100
f 81 65 100
f 73 91 102
f 91 70 102
f 80 91 103
f 103 91 104
f 91 73 104
f 92 77 104
f 77 103 104
f 88 69 105
f 77 92 106
f 69 88 107
f 88 72 107
f 72 94 107
f 75 101 107
f 101 69 107
f 95 76 108
f 79 95 108
f 96 66 108
f 76 96 108
f 87 73 109
f 79 93 109
f 93 87 109
f 73 102 109
f 102 79 109
f 83 90 110
f 98 71 110
f 90 98 110
f 74 86 111
f 86 81 111
f 81 90 111
f 90 74 111
f 82 96 112
f 71 98 112
f 99 82 112
f 65 81 113
f 86 80 113
f 81 86 113
f 80 103 113
f 92 69 114
f 101 75 114
f 69 101 114
f 84 106 114
f 106 92 114
f 70 76 115
f 76 95 115
f 95 79 115
f 79 102 115
f 102 70 115
f 67 82 116
f 82 99 116
f 99 89 116
f 100 65 117
f 84 100 117
f 103 77 117
f 77 106 117
f 106 84 117
f 65 113 117
f 113 103 117
f 85 94 118
f 94 72 118
f 98 85 118
f 72 99 118
f 112 98 118
f 99 112 118
f 97 83 119
f 96 97 119
f 110 71 119
f 83 110 119
f 112 96 119
f 71 112 119
f 89 78 120
f 78 93 120
f 67 116 120
f 116 89 120
f 66 67 121
f 93 79 121
f 108 66 121
f 79 108 121
f 67 120 121
f 120 93 121
f 87 78 122
f 69 92 122
f 105 69 122
f 78 105 122
f 74 90 123
f 90 83 123
f 97 74 123
f 83 97 123
f 72 88 124
f 78 89 124
f 89 72 124
f 105 78 124
f 88 105 124
f 68 75 125
f 85 68 125
f 94 85 125
f 75 107 125
f 107 94 125
f 73 87 126
f 104 73 126
f 92 104 126
f 87 122 126
f 122 92 126
f 75 68 127
f 68 100 127
f 100 84 127
f 114 75 127
f 84 114 127
f 86 70 128
f 80 86 128
f 70 91 128
o convex_2
v -0.881191 1.372585 0.314915
v -0.752297 1.157735 -0.093320
v -0.741541 1.157735 -0.093320
v -0.741541 1.157735 0.357909
v -0.945660 1.243704 0.078656
v -0.741541 1.340341 0.046399
v -0.956394 1.361845 0.100130
v -0.891925 1.275925 0.347218
v -0.741541 1.361845 0.185979
v -0.870435 1.168500 0.035662
v -0.945660 1.404830 0.228973
v -0.741541 1.211460 0.379476
v -0.806010 1.179240 0.357909
v -0.752297 1.232964 -0.082537
v -0.945660 1.254444 0.035662
v -0.967172 1.351105 0.228973
v -0.838256 1.157735 -0.039589
v -0.902681 1.404830 0.207499
v -0.902681 1.351105 0.336481
v -0.827500 1.329601 0.336481
v -0.848990 1.222224 0.368692
v -0.741541 1.318861 0.003405
v -0.924170 1.394066 0.153815
v -0.827500 1.179240 -0.061063
v -0.967172 1.318861 0.078656
v -0.848990 1.297381 0.368692
v -0.773787 1.157735 0.336481
v -0.945660 1.297381 0.046399
v -0.741541 1.243704 0.357909
v -0.967172 1.383326 0.228973
v -0.956394 1.265185 0.100130
v -0.881191 1.394066 0.261230
v -0.741541 1.361845 0.132341
f 146 137 161
f 130 131 132
f 132 131 134
f 132 134 137
f 132 137 140
f 133 138 141
f 132 140 141
f 131 130 142
f 138 133 143
f 130 132 145
f 138 143 145
f 129 139 147
f 144 136 147
f 137 129 148
f 133 141 149
f 141 140 149
f 134 131 150
f 131 142 150
f 142 135 150
f 135 139 151
f 146 134 151
f 139 146 151
f 134 150 151
f 150 135 151
f 142 130 152
f 130 145 152
f 145 143 152
f 129 147 154
f 147 136 154
f 148 129 154
f 136 149 154
f 149 140 154
f 132 141 155
f 141 138 155
f 145 132 155
f 138 145 155
f 135 142 156
f 142 152 156
f 152 143 156
f 153 135 156
f 143 153 156
f 140 137 157
f 137 148 157
f 148 154 157
f 154 140 157
f 139 135 158
f 147 139 158
f 144 147 158
f 135 153 158
f 153 144 158
f 143 133 159
f 136 144 159
f 133 149 159
f 149 136 159
f 153 143 159
f 144 153 159
f 129 137 160
f 139 129 160
f 137 146 160
f 146 139 160
f 137 134 161
f 134 146 161
o convex_3
v 0.343788 0.867587 0.153823
v 0.623140 0.878339 0.057098
v 0.623140 0.867587 0.057098
v 0.429760 0.878339 -0.168537
v 0.483464 0.953541 0.046370
v 0.515649 0.878339 0.261277
v 0.547888 0.867587 -0.147038
v 0.408267 0.921300 -0.093312
v 0.408267 0.921300 0.164552
v 0.558634 0.910564 -0.093312
v 0.558634 0.921300 0.164552
v 0.354535 0.867587 -0.103998
v 0.569381 0.867587 0.229007
v 0.580127 0.921300 0.024913
v 0.494156 0.932044 -0.093312
v 0.376028 0.910564 0.024913
v 0.429760 0.867587 0.250506
v 0.472745 0.932044 0.175280
v 0.537142 0.942788 0.024913
v 0.408267 0.932044 0.024913
v 0.429760 0.889084 0.239778
v 0.515649 0.878339 -0.168537
v 0.590874 0.878339 -0.082541
v 0.343788 0.878339 0.153823
v 0.354535 0.878339 -0.103998
f 185 177 186
f 164 162 168
f 168 162 173
f 165 168 173
f 162 164 174
f 164 163 174
f 163 172 174
f 172 167 174
f 172 163 175
f 169 166 176
f 165 169 176
f 162 174 178
f 174 167 178
f 166 170 179
f 167 172 179
f 172 166 179
f 166 172 180
f 175 171 180
f 172 175 180
f 176 166 180
f 171 176 180
f 166 169 181
f 170 166 181
f 169 177 181
f 177 170 181
f 178 167 182
f 179 170 182
f 167 179 182
f 168 165 183
f 171 168 183
f 165 176 183
f 176 171 183
f 163 164 184
f 164 168 184
f 168 171 184
f 175 163 184
f 171 175 184
f 173 162 185
f 170 177 185
f 162 178 185
f 182 170 185
f 178 182 185
f 169 165 186
f 165 173 186
f 177 169 186
f 173 185 186
o convex_4
v -0.924164 1.082508 0.121620
v -0.741519 1.136206 0.357985
v -0.752291 1.136206 0.357985
v -0.741519 1.157711 -0.082575
v -0.741519 1.061012 0.089363
v -0.881191 1.157711 0.089363
v -0.902678 1.061012 0.250519
v -0.902678 1.125462 0.261257
v -0.816750 1.114719 -0.050317
v -0.752291 1.157711 0.336466
v -0.741519 1.071765 0.271952
v -0.902678 1.146949 0.057149
v -0.773777 1.082508 -0.018060
v -0.902678 1.061012 0.143009
v -0.795264 1.093251 0.336466
v -0.827503 1.146949 0.325728
v -0.924164 1.136206 0.164529
v -0.806017 1.157711 -0.071793
v -0.741519 1.093251 -0.039580
v -0.870438 1.103995 0.304252
v -0.934917 1.103995 0.153747
v -0.741519 1.061012 0.207480
f 197 193 208
f 190 188 191
f 189 188 196
f 188 190 196
f 190 192 196
f 191 188 197
f 195 187 198
f 195 199 200
f 193 187 200
f 191 193 200
f 187 195 200
f 199 191 200
f 188 189 201
f 197 188 201
f 193 197 201
f 189 196 202
f 196 192 202
f 192 198 203
f 202 192 203
f 194 202 203
f 192 190 204
f 190 195 204
f 198 192 204
f 195 198 204
f 190 191 205
f 195 190 205
f 191 199 205
f 199 195 205
f 194 193 206
f 201 189 206
f 193 201 206
f 202 194 206
f 189 202 206
f 187 193 207
f 193 194 207
f 198 187 207
f 194 203 207
f 203 198 207
f 193 191 208
f 191 197 208

View File

@ -0,0 +1,32 @@
<?xml version="0.0" ?>
<robot name="cube.urdf">
<link name="baseLink">
<contact>
<lateral_friction value="1.0"/>
<rolling_friction value="0.0"/>
<contact_cfm value="0.0"/>
<contact_erp value="1.0"/>
</contact>
<inertial>
<origin rpy="0 0 0" xyz="0.0 0.02 0.0"/>
<mass value=".1"/>
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="duck.obj" scale=".05 .05 .05"/>
</geometry>
<material name="yellow">
<color rgba="1 1 0.4 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="duck_vhacd.obj" scale=".05 .05 .05"/>
</geometry>
</collision>
</link>
</robot>

View File

@ -0,0 +1,388 @@
<?xml version="1.0" ?>
<sdf version='1.6'>
<world name='default'>
<model name='wsg50_with_gripper'>
<pose frame=''>0 0 0.26 3.14 0 0</pose>
<link name='world'>
</link>
<joint name='base_joint' type='prismatic'>
<parent>world</parent>
<child>base_link</child>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.5</lower>
<upper>10</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='base_link'>
<pose frame=''>0 0 0 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>1.2</mass>
<inertia>
<ixx>1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1</iyy>
<iyz>0</iyz>
<izz>1</izz>
</inertia>
</inertial>
<visual name='base_link_visual'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>meshes/WSG50_110.stl</uri>
</mesh>
</geometry>
<material>
</material>
</visual>
</link>
<link name='motor'>
<pose frame=''>0 0 0.03 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0 0 0.01 0 0 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.02 </size>
</box>
</geometry>
</visual>
</link>
<joint name='base_joint_motor' type='prismatic'>
<child>motor</child>
<parent>base_link</parent>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.047</lower>
<upper>0.001</upper>
<effort>10.0</effort>
<velocity>10.0</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='left_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>-0.03 0 0.01 0 -1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_left_hinge_joint' type='revolute'>
<child>left_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='right_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0.03 0 0.01 0 1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_right_hinge_joint' type='revolute'>
<child>right_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='gripper_left'>
<pose frame=''>-0.055 0 0.06 0 -0 0</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_left_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_left_fixed_joint_lump__finger_left_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_left_hinge_joint' type='revolute'>
<child>gripper_left</child>
<parent>left_hinge</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-1.0</lower>
<upper>1.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0.01</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='gripper_right'>
<pose frame=''>0.055 0 0.06 0 0 3.14159</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_right_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_right_fixed_joint_lump__finger_right_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_right_hinge_joint' type='revolute'>
<child>gripper_right</child>
<parent>right_hinge</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-1.0</lower>
<upper>1.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0.01</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='finger_right'>
<pose frame=''>0.062 0 0.145 0 0 1.5708</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_right_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_right_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_right' type='fixed'>
<parent>gripper_right</parent>
<child>finger_right</child>
</joint>
<link name='finger_left'>
<pose frame=''>-0.062 0 0.145 0 0 4.71239</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_left_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_left_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_left' type='fixed'>
<parent>gripper_left</parent>
<child>finger_left</child>
</joint>
</model>
</world>
</sdf>

View File

@ -0,0 +1,394 @@
<?xml version="1.0" ?>
<sdf version='1.6'>
<world name='default'>
<model name='wsg50_with_gripper'>
<pose frame=''>0 -2.3 2.1 0 0 0</pose>
<link name='world'>
<pose frame=''>0 0 0 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1</iyy>
<iyz>0</iyz>
<izz>1</izz>
</inertia>
</inertial>
</link>
<joint name='base_joint' type='fixed'>
<parent>world</parent>
<child>base_link</child>
</joint>
<link name='base_link'>
<pose frame=''>0 0 0 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>1.2</mass>
<inertia>
<ixx>1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1</iyy>
<iyz>0</iyz>
<izz>1</izz>
</inertia>
</inertial>
<visual name='base_link_visual'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>meshes/WSG50_110.stl</uri>
</mesh>
</geometry>
<material>
</material>
</visual>
</link>
<link name='motor'>
<pose frame=''>0 0 0.03 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0 0 0.01 0 0 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.02 </size>
</box>
</geometry>
</visual>
</link>
<joint name='base_joint_motor' type='prismatic'>
<child>motor</child>
<parent>base_link</parent>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.047</lower>
<upper>0.001</upper>
<effort>10.0</effort>
<velocity>10.0</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='left_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>-0.03 0 0.01 0 -1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_left_hinge_joint' type='revolute'>
<child>left_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='right_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0.03 0 0.01 0 1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_right_hinge_joint' type='revolute'>
<child>right_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='gripper_left'>
<pose frame=''>-0.055 0 0.06 0 -0 0</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_left_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_left_fixed_joint_lump__finger_left_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_left_hinge_joint' type='revolute'>
<child>gripper_left</child>
<parent>left_hinge</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-4.0</lower>
<upper>4.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0.01</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='gripper_right'>
<pose frame=''>0.055 0 0.06 0 0 3.14159</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_right_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_right_fixed_joint_lump__finger_right_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_right_hinge_joint' type='revolute'>
<child>gripper_right</child>
<parent>right_hinge</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-4.0</lower>
<upper>4.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0.01</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='finger_right'>
<contact>
<lateral_friction value="1.0"/>
<spinning_friction value="1.5"/>
</contact>
<pose frame=''>0.042 0 0.145 0 0 1.5708</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_right_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_right_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_right' type='fixed'>
<parent>gripper_right</parent>
<child>finger_right</child>
</joint>
<link name='finger_left'>
<contact>
<lateral_friction value="1.0"/>
<spinning_friction value="1.5"/>
</contact>
<pose frame=''>-0.042 0 0.145 0 0 4.71239</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_left_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_left_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_left' type='fixed'>
<parent>gripper_left</parent>
<child>finger_left</child>
</joint>
</model>
</world>
</sdf>

View File

@ -0,0 +1,27 @@
<?xml version="0.0" ?>
<robot name="left_finger.urdf">
<link name="baseLink">
<contact>
<lateral_friction value="1.0"/>
<inertia_scaling value="3.0"/>
</contact>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0.05"/>
<mass value=".2"/>
<inertia ixx="0.1" ixy="0" ixz="0" iyy="0.1" iyz="0" izz="0.1"/>
</inertial>
<visual>
<origin rpy="0 0 4.71239" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/l_gripper_tip_scaled.stl" scale="1 1 1"/>
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0.042"/>
<geometry>
<box size="0.02 0.02 0.15"/>
</geometry>
</collision>
</link>
</robot>

View File

@ -0,0 +1,394 @@
<?xml version="1.0" ?>
<sdf version='1.6'>
<world name='default'>
<model name='wsg50_with_gripper'>
<pose frame=''>0 0 0.7 3.14 0 0</pose>
<link name='world'>
</link>
<joint name='base_joint' type='prismatic'>
<parent>world</parent>
<child>base_link</child>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.5</lower>
<upper>10</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='base_link'>
<pose frame=''>0 0 0 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>1.2</mass>
<inertia>
<ixx>1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1</iyy>
<iyz>0</iyz>
<izz>1</izz>
</inertia>
</inertial>
<visual name='base_link_visual'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>meshes/WSG50_110.stl</uri>
</mesh>
</geometry>
<material>
</material>
</visual>
</link>
<link name='motor'>
<pose frame=''>0 0 0.03 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0 0 0.01 0 0 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.02 </size>
</box>
</geometry>
</visual>
</link>
<joint name='base_joint_motor' type='prismatic'>
<child>motor</child>
<parent>base_link</parent>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.055</lower>
<upper>0.001</upper>
<effort>10.0</effort>
<velocity>10.0</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='left_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>-0.03 0 0.01 0 -1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_left_hinge_joint' type='revolute'>
<child>left_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='right_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0.03 0 0.01 0 1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_right_hinge_joint' type='revolute'>
<child>right_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='gripper_left'>
<pose frame=''>-0.055 0 0.06 0 -0 0</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_left_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_left_fixed_joint_lump__finger_left_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_left_hinge_joint' type='prismatic'>
<child>gripper_left</child>
<parent>base_link</parent>
<axis>
<xyz>1 0 0</xyz>
<limit>
<lower>-0.01</lower>
<upper>0.05</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='gripper_right'>
<pose frame=''>0.055 0 0.06 0 0 3.14159</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_right_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_right_fixed_joint_lump__finger_right_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_right_hinge_joint' type='prismatic'>
<child>gripper_right</child>
<parent>base_link</parent>
<axis>
<xyz>1 0 0</xyz>
<limit>
<lower>-0.01</lower>
<upper>0.05</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='finger_right'>
<contact>
<spinning_friction>.3</spinning_friction>
<rolling_friction>0.04</rolling_friction>
</contact>
<pose frame=''>0.062 0 0.145 0 0 1.5708</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_right_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_right_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_right' type='fixed'>
<parent>gripper_right</parent>
<child>finger_right</child>
</joint>
<link name='finger_left'>
<contact>
<spinning_friction>.3</spinning_friction>
<rolling_friction>0.04</rolling_friction>
</contact>
<pose frame=''>-0.062 0 0.145 0 0 4.71239</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_left_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_left_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_left' type='fixed'>
<parent>gripper_left</parent>
<child>finger_left</child>
</joint>
</model>
</world>
</sdf>

View File

@ -0,0 +1,391 @@
<?xml version="1.0" ?>
<sdf version='1.6'>
<world name='default'>
<model name='wsg50_with_gripper'>
<pose frame=''>1.4 -0.2 2.1 0 0 0</pose>
<link name='world'>
<pose frame=''>0 0 0 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1</iyy>
<iyz>0</iyz>
<izz>1</izz>
</inertia>
</inertial>
</link>
<joint name='base_joint' type='fixed'>
<parent>world</parent>
<child>base_link</child>
</joint>
<link name='base_link'>
<pose frame=''>0 0 0 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>1.2</mass>
<inertia>
<ixx>1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1</iyy>
<iyz>0</iyz>
<izz>1</izz>
</inertia>
</inertial>
<visual name='base_link_visual'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>meshes/WSG50_110.stl</uri>
</mesh>
</geometry>
<material>
</material>
</visual>
</link>
<link name='motor'>
<pose frame=''>0 0 0.03 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0 0 0.01 0 0 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.02 </size>
</box>
</geometry>
</visual>
</link>
<joint name='base_joint_motor' type='prismatic'>
<child>motor</child>
<parent>base_link</parent>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.055</lower>
<upper>0.001</upper>
<effort>10.0</effort>
<velocity>10.0</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='left_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>-0.03 0 0.01 0 -1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_left_hinge_joint' type='revolute'>
<child>left_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='right_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0.03 0 0.01 0 1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_right_hinge_joint' type='revolute'>
<child>right_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='gripper_left'>
<pose frame=''>-0.055 0 0.06 0 -0 0</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_left_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_left_fixed_joint_lump__finger_left_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_left_hinge_joint' type='prismatic'>
<child>gripper_left</child>
<parent>base_link</parent>
<axis>
<xyz>1 0 0</xyz>
<limit>
<lower>-0.01</lower>
<upper>0.05</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='gripper_right'>
<pose frame=''>0.055 0 0.06 0 0 3.14159</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_right_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_right_fixed_joint_lump__finger_right_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_right_hinge_joint' type='prismatic'>
<child>gripper_right</child>
<parent>base_link</parent>
<axis>
<xyz>1 0 0</xyz>
<limit>
<lower>-0.01</lower>
<upper>0.05</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='finger_right'>
<contact>
<lateral_friction>1.0</lateral_friction>
<spinning_friction>1.5</spinning_friction>
</contact>
<pose frame=''>0.062 0 0.145 0 0 1.5708</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_right_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_right_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_right' type='fixed'>
<parent>gripper_right</parent>
<child>finger_right</child>
</joint>
<link name='finger_left'>
<contact>
<lateral_friction>1.0</lateral_friction>
<spinning_friction>1.5</spinning_friction>
</contact>
<pose frame=''>-0.062 0 0.145 0 0 4.71239</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_left_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_left_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_left' type='fixed'>
<parent>gripper_left</parent>
<child>finger_left</child>
</joint>
</model>
</world>
</sdf>

View File

@ -0,0 +1,307 @@
<?xml version="1.0" ?>
<sdf version='1.6'>
<world name='default'>
<model name='wsg50_with_gripper'>
<pose frame=''>0 0 0.4 3.14 0 0</pose>
<link name='world'>
</link>
<joint name='base_joint' type='prismatic'>
<parent>world</parent>
<child>base_link</child>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-10</lower>
<upper>10</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='base_link'>
<pose frame=''>0 0 0 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>1.2</mass>
<inertia>
<ixx>1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1</iyy>
<iyz>0</iyz>
<izz>1</izz>
</inertia>
</inertial>
<visual name='base_link_visual'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>meshes/WSG50_110.stl</uri>
</mesh>
</geometry>
<material>
</material>
</visual>
</link>
<link name='motor'>
<pose frame=''>0 0 0.03 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0 0 0.01 0 0 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.02 </size>
</box>
</geometry>
</visual>
</link>
<joint name='base_joint_motor' type='prismatic'>
<child>motor</child>
<parent>base_link</parent>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.055</lower>
<upper>0.001</upper>
<effort>10.0</effort>
<velocity>10.0</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='left_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>-0.03 0 0.01 0 -1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_left_hinge_joint' type='revolute'>
<child>left_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='right_hinge'>
<pose frame=''>0 0 0.04 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.035 0 0 0</pose>
<mass>0.1</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='motor_visual'>
<pose frame=''>0.03 0 0.01 0 1.2 0</pose>
<geometry>
<box>
<size>0.02 0.02 0.07 </size>
</box>
</geometry>
</visual>
</link>
<joint name='motor_right_hinge_joint' type='revolute'>
<child>right_hinge</child>
<parent>motor</parent>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-20.0</lower>
<upper>20.0</upper>
<effort>10</effort>
<velocity>10</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>0</use_parent_model_frame>
</axis>
</joint>
<link name='gripper_left'>
<pose frame=''>-0.055 0 0.06 0 -0 0</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_left_visual'>
<pose frame=''>0 0 -0.06 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_left_fixed_joint_lump__finger_left_visual_1'>
<pose frame=''>0 0 -0.037 0 0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_left_hinge_joint' type='prismatic'>
<child>gripper_left</child>
<parent>base_link</parent>
<axis>
<xyz>1 0 0</xyz>
<limit>
<lower>-0.01</lower>
<upper>0.04</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='gripper_right'>
<pose frame=''>0.055 0 0.06 0 0 0</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<visual name='gripper_right_visual'>
<pose frame=''>0 0 -0.06 0 0 3.14159</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_right_fixed_joint_lump__finger_right_visual_1'>
<pose frame=''>0 0 -0.037 0 0 3.14159</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_right_hinge_joint' type='prismatic'>
<child>gripper_right</child>
<parent>base_link</parent>
<axis>
<xyz>1 0 0</xyz>
<limit>
<lower>-0.04</lower>
<upper>0.01</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>0</damping>
<friction>0</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
</model>
</world>
</sdf>

View File

@ -0,0 +1,27 @@
<?xml version="0.0" ?>
<robot name="right_finger.urdf">
<link name="baseLink">
<contact>
<lateral_friction value="1.0"/>
<inertia_scaling value="3.0"/>
</contact>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0.05"/>
<mass value=".2"/>
<inertia ixx="0.1" ixy="0" ixz="0" iyy="0.1" iyz="0" izz="0.1"/>
</inertial>
<visual>
<origin rpy="0 0 1.5708" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/l_gripper_tip_scaled.stl" scale="1 1 1"/>
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0.042"/>
<geometry>
<box size="0.02 0.02 0.15"/>
</geometry>
</collision>
</link>
</robot>

View File

@ -0,0 +1,306 @@
<?xml version="1.0" ?>
<sdf version='1.6'>
<world name='default'>
<model name='wsg50_with_gripper'>
<pose frame=''>0 0 0.27 3.14 0 0</pose>
<link name='world'>
</link>
<joint name='base_joint' type='prismatic'>
<parent>world</parent>
<child>base_link</child>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.5</lower>
<upper>10</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>100</damping>
<friction>100</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='base_link'>
<pose frame=''>0 0 0 0 -0 0</pose>
<inertial>
<pose frame=''>0 0 0 0 -0 0</pose>
<mass>1.2</mass>
<inertia>
<ixx>1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1</iyy>
<iyz>0</iyz>
<izz>1</izz>
</inertia>
</inertial>
<collision name='base_link_collision'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<box>
<size>0.2 0.05 0.05 </size>
</box>
</geometry>
</collision>
<visual name='base_link_visual'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>meshes/WSG50_110.stl</uri>
</mesh>
</geometry>
<material>
</material>
</visual>
<gravity>1</gravity>
<velocity_decay/>
<self_collide>0</self_collide>
</link>
<link name='gripper_left'>
<pose frame=''>-0.055 0 0 0 -0 0</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='gripper_left_collision'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</collision>
<collision name='gripper_left_fixed_joint_lump__finger_left_collision_1'>
<pose frame=''>0 0 0.023 0 -0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</collision>
<visual name='gripper_left_visual'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_left_fixed_joint_lump__finger_left_visual_1'>
<pose frame=''>0 0 0.023 0 -0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='base_joint_gripper_left' type='prismatic'>
<child>gripper_left</child>
<parent>base_link</parent>
<axis>
<xyz>1 0 0</xyz>
<limit>
<lower>-0.001</lower>
<upper>0.055</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>100</damping>
<friction>100</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='gripper_right'>
<pose frame=''>0.055 0 0 0 -0 3.14159</pose>
<inertial>
<pose frame=''>0 0 0.0115 0 -0 0</pose>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='gripper_right_collision'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</collision>
<collision name='gripper_right_fixed_joint_lump__finger_right_collision_1'>
<pose frame=''>0 0 0.023 0 -0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</collision>
<visual name='gripper_right_visual'>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/GUIDE_WSG50_110.stl</uri>
</mesh>
</geometry>
</visual>
<visual name='gripper_right_fixed_joint_lump__finger_right_visual_1'>
<pose frame=''>0 0 0.023 0 -0 0</pose>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>meshes/WSG-FMF.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='base_joint_gripper_right' type='prismatic'>
<child>gripper_right</child>
<parent>base_link</parent>
<axis>
<xyz>-1 0 0</xyz>
<limit>
<lower>-0.055</lower>
<upper>0.001</upper>
<effort>1</effort>
<velocity>1</velocity>
</limit>
<dynamics>
<damping>100</damping>
<friction>100</friction>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
</axis>
</joint>
<link name='finger_right'>
<contact>
<lateral_friction>1.0</lateral_friction>
<spinning_friction>1.5</spinning_friction>
</contact>
<pose frame=''>0.062 0 0.145 0 0 1.5708</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_right_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_right_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_right' type='fixed'>
<parent>gripper_right</parent>
<child>finger_right</child>
</joint>
<link name='finger_left'>
<contact>
<lateral_friction>1.0</lateral_friction>
<spinning_friction>1.5</spinning_friction>
</contact>
<pose frame=''>-0.062 0 0.145 0 0 4.71239</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.1</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1</iyy>
<iyz>0</iyz>
<izz>0.1</izz>
</inertia>
</inertial>
<collision name='finger_left_collision'>
<pose frame=''>0 0 0.042 0 0 0 </pose>
<geometry>
<box>
<size>0.02 0.02 0.15 </size>
</box>
</geometry>
</collision>
<visual name='finger_left_visual'>
<pose frame=''>0 0 0 0 0 0 </pose>
<geometry>
<mesh>
<scale>1 1 1 </scale>
<uri>meshes/l_gripper_tip_scaled.stl</uri>
</mesh>
</geometry>
</visual>
</link>
<joint name='gripper_finger_left' type='fixed'>
<parent>gripper_left</parent>
<child>finger_left</child>
</joint>
</model>
</world>
</sdf>

View File

@ -0,0 +1,373 @@
<?xml version="1.0" ?>
<!-- =================================================================================== -->
<!-- | This document was autogenerated by xacro from ../urdf/husky.urdf.xacro | -->
<!-- | EDITING THIS FILE BY HAND IS NOT RECOMMENDED | -->
<!-- =================================================================================== -->
<!--
Software License Agreement (BSD)
\file husky.urdf.xacro
\authors Paul Bovbel <pbovbel@clearpathrobotics.com>
\copyright Copyright (c) 2015, Clearpath Robotics, Inc., All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that
the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote
products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<robot name="husky_robot" xmlns:xacro="http://ros.org/wiki/xacro">
<!-- Included URDF/XACRO Files -->
<material name="Black">
<color rgba="0.1 0.1 0.1 1.0"/>
</material>
<material name="Blue">
<color rgba="0.0 0.0 0.8 1.0"/>
</material>
<material name="Green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>
<material name="Grey">
<color rgba="0.7 0.7 0.7 1.0"/>
</material>
<material name="DarkGrey">
<color rgba="0.3 0.3 0.3 1.0"/>
</material>
<material name="Red">
<color rgba="0.8 0.0 0.0 1.0"/>
</material>
<material name="White">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
<material name="Yellow">
<color rgba="0.8 0.8 0.0 1.0"/>
</material>
<!-- Base Size -->
<!-- Wheel Mounting Positions -->
<!-- Wheel Properties -->
<!-- Base link is on the ground under the robot -->
<link name="base_footprint"/>
<gazebo reference="base_footprint">
<material>Gazebo/DarkGrey</material>
</gazebo>
<joint name="chassis_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0.14493"/>
<parent link="base_footprint"/>
<child link="base_link"/>
</joint>
<!-- Chassis link is the center of the robot's bottom plate -->
<link name="base_link">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/base_link.stl"/>
</geometry>
<material name="Black"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0.12498"/>
<geometry>
<!-- Make collision box slightly bigger in x and z directions. -->
<box size="1.0074 0.5709 0.2675"/>
</geometry>
</collision>
<inertial>
<mass value="33.455"/>
<origin xyz="-0.08748 -0.00085 0.09947"/>
<inertia ixx="0.6022" ixy="-0.02364" ixz="-0.1197" iyy="1.7386" iyz="-0.001544" izz="2.0296"/>
</inertial>
</link>
<gazebo reference="base_link">
</gazebo>
<!-- IMU Link is the standard mounting position for the UM6 IMU.-->
<!-- Can be modified with environment variables in /etc/ros/setup.bash -->
<link name="imu_link"/>
<joint name="imu_joint" type="fixed">
<origin rpy="$(optenv HUSKY_IMU_RPY 0 -1.5708 3.1416)" xyz="$(optenv HUSKY_IMU_XYZ 0.19 0 0.149)"/>
<parent link="base_link"/>
<child link="imu_link"/>
</joint>
<gazebo reference="imu_link">
</gazebo>
<!-- Husky wheel macros -->
<link name="front_left_wheel_link">
<contact>
<lateral_friction value="1.0"/>
<rolling_friction value="0.0"/>
<stiffness value="30000"/>
<damping value="1000"/>
</contact>
<inertial>
<mass value="2.637"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.02467" ixy="0" ixz="0" iyy="0.02467" iyz="0" izz="0.04411"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/wheel.stl"/>
</geometry>
<material name="DarkGrey"/>
</visual>
<collision>
<origin rpy="1.570795 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.1143" radius="0.17775"/>
</geometry>
</collision>
</link>
<gazebo reference="front_left_wheel_link">
<mu1 value="1.0"/>
<mu2 value="1.0"/>
<kp value="10000000.0"/>
<kd value="1.0"/>
<fdir1 value="1 0 0"/>
<material>Gazebo/Grey</material>
<turnGravityOff>false</turnGravityOff>
</gazebo>
<joint name="front_left_wheel" type="continuous">
<parent link="base_link"/>
<child link="front_left_wheel_link"/>
<origin rpy="0 0 0" xyz="0.256 0.2854 0.03282"/>
<axis rpy="0 0 0" xyz="0 1 0"/>
</joint>
<transmission name="front_left_wheel_trans" type="SimpleTransmission">
<type>transmission_interface/SimpleTransmission</type>
<actuator name="front_left_wheel_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<joint name="front_left_wheel">
<hardwareInterface>VelocityJointInterface</hardwareInterface>
</joint>
</transmission>
<link name="front_right_wheel_link">
<contact>
<lateral_friction value="1.0"/>
<rolling_friction value="0.0"/>
<stiffness value="30000"/>
<damping value="1000"/>
</contact>
<inertial>
<mass value="2.637"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.02467" ixy="0" ixz="0" iyy="0.02467" iyz="0" izz="0.04411"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/wheel.stl"/>
</geometry>
<material name="DarkGrey"/>
</visual>
<collision>
<origin rpy="1.570795 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.1143" radius="0.17775"/>
</geometry>
</collision>
</link>
<gazebo reference="front_right_wheel_link">
<mu1 value="1.0"/>
<mu2 value="1.0"/>
<kp value="10000000.0"/>
<kd value="1.0"/>
<fdir1 value="1 0 0"/>
<material>Gazebo/Grey</material>
<turnGravityOff>false</turnGravityOff>
</gazebo>
<joint name="front_right_wheel" type="continuous">
<parent link="base_link"/>
<child link="front_right_wheel_link"/>
<origin rpy="0 0 0" xyz="0.256 -0.2854 0.03282"/>
<axis rpy="0 0 0" xyz="0 1 0"/>
</joint>
<transmission name="front_right_wheel_trans" type="SimpleTransmission">
<type>transmission_interface/SimpleTransmission</type>
<actuator name="front_right_wheel_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<joint name="front_right_wheel">
<hardwareInterface>VelocityJointInterface</hardwareInterface>
</joint>
</transmission>
<link name="rear_left_wheel_link">
<contact>
<lateral_friction value="1.0"/>
<rolling_friction value="0.0"/>
<stiffness value="30000"/>
<damping value="1000"/>
</contact>
<inertial>
<mass value="2.637"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.02467" ixy="0" ixz="0" iyy="0.02467" iyz="0" izz="0.04411"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/wheel.stl"/>
</geometry>
<material name="DarkGrey"/>
</visual>
<collision>
<origin rpy="1.570795 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.1143" radius="0.17775"/>
</geometry>
</collision>
</link>
<gazebo reference="rear_left_wheel_link">
<mu1 value="1.0"/>
<mu2 value="1.0"/>
<kp value="10000000.0"/>
<kd value="1.0"/>
<fdir1 value="1 0 0"/>
<material>Gazebo/Grey</material>
<turnGravityOff>false</turnGravityOff>
</gazebo>
<joint name="rear_left_wheel" type="continuous">
<parent link="base_link"/>
<child link="rear_left_wheel_link"/>
<origin rpy="0 0 0" xyz="-0.256 0.2854 0.03282"/>
<axis rpy="0 0 0" xyz="0 1 0"/>
</joint>
<transmission name="rear_left_wheel_trans" type="SimpleTransmission">
<type>transmission_interface/SimpleTransmission</type>
<actuator name="rear_left_wheel_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<joint name="rear_left_wheel">
<hardwareInterface>VelocityJointInterface</hardwareInterface>
</joint>
</transmission>
<link name="rear_right_wheel_link">
<contact>
<lateral_friction value="1.0"/>
<rolling_friction value="0.0"/>
<stiffness value="30000"/>
<damping value="1000"/>
</contact>
<inertial>
<mass value="2.637"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.02467" ixy="0" ixz="0" iyy="0.02467" iyz="0" izz="0.04411"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/wheel.stl"/>
</geometry>
<material name="DarkGrey"/>
</visual>
<collision>
<origin rpy="1.570795 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.1143" radius="0.17775"/>
</geometry>
</collision>
</link>
<gazebo reference="rear_right_wheel_link">
<mu1 value="1.0"/>
<mu2 value="1.0"/>
<kp value="10000000.0"/>
<kd value="1.0"/>
<fdir1 value="1 0 0"/>
<material>Gazebo/Grey</material>
<turnGravityOff>false</turnGravityOff>
</gazebo>
<joint name="rear_right_wheel" type="continuous">
<parent link="base_link"/>
<child link="rear_right_wheel_link"/>
<origin rpy="0 0 0" xyz="-0.256 -0.2854 0.03282"/>
<axis rpy="0 0 0" xyz="0 1 0"/>
</joint>
<transmission name="rear_right_wheel_trans" type="SimpleTransmission">
<type>transmission_interface/SimpleTransmission</type>
<actuator name="rear_right_wheel_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
<joint name="rear_right_wheel">
<hardwareInterface>VelocityJointInterface</hardwareInterface>
</joint>
</transmission>
<link name="top_plate_link">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/top_plate.stl"/>
</geometry>
<material name="Yellow"/>
</visual>
</link>
<joint name="top_plate" type="fixed">
<parent link="base_link"/>
<child link="top_plate_link"/>
</joint>
<gazebo reference="top_plate_link">
<material>Gazebo/Yellow</material>
</gazebo>
<link name="user_rail_link">
<visual>
<geometry>
<mesh filename="meshes/user_rail.stl"/>
</geometry>
<material name="DarkGrey"/>
</visual>
</link>
<joint name="user_rail" type="fixed">
<origin rpy="0 0 0" xyz="0.272 0 0.245"/>
<parent link="base_link"/>
<child link="user_rail_link"/>
</joint>
<gazebo reference="user_rail_link">
<material>Gazebo/DarkGrey</material>
</gazebo>
<link name="front_bumper_link">
<visual>
<geometry>
<mesh filename="meshes/bumper.stl"/>
</geometry>
<material name="DarkGrey"/>
</visual>
</link>
<joint name="front_bumper" type="fixed">
<origin rpy="0 0 0" xyz="0.48 0 0.091"/>
<parent link="base_link"/>
<child link="front_bumper_link"/>
</joint>
<gazebo reference="front_bumper_link">
<material>Gazebo/DarkGrey</material>
</gazebo>
<link name="rear_bumper_link">
<visual>
<geometry>
<mesh filename="meshes/bumper.stl"/>
</geometry>
<material name="DarkGrey"/>
</visual>
</link>
<joint name="rear_bumper" type="fixed">
<origin rpy="0 0 3.14159" xyz="-0.48 0 0.091"/>
<parent link="base_link"/>
<child link="rear_bumper_link"/>
</joint>
<gazebo reference="rear_bumper_link">
<material>Gazebo/DarkGrey</material>
</gazebo>
</robot>

View File

@ -0,0 +1,16 @@
newmtl jenga
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.0000 0.0000 0.0000
Kd 0.5880 0.5880 0.5880
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Ka jenga.tga
map_Kd jenga.png

View File

@ -0,0 +1,113 @@
# jenga.obj
#
o jenga
mtllib jenga.mtl
v -0.5 -0.5 0.5
v 0.5 -0.5 0.5
v 0.5 0.5 0.5
v -0.5 0.5 0.5
v -0.5 -0.5 -0.5
v 0.5 -0.5 -0.5
v 0.5 0.5 -0.5
v -0.5 0.5 -0.5
v -0.5 -0.5 -0.5
v -0.5 0.5 -0.5
v -0.5 0.5 0.5
v -0.5 -0.5 0.5
v 0.5 -0.5 -0.5
v 0.5 0.5 -0.5
v 0.5 0.5 0.5
v 0.5 -0.5 0.5
v -0.5 -0.5 -0.5
v -0.5 -0.5 0.5
v 0.5 -0.5 0.5
v 0.5 -0.5 -0.5
v -0.5 0.5 -0.5
v -0.5 0.5 0.5
v 0.5 0.5 0.5
v 0.5 0.5 -0.5
vt 0 1
vt 0 0.75
vt 0.25 0.75
vt 0.25 1
vt 0.25 0.5
vt 0.25 0.75
vt 0.5 0.75
vt 0.5 0.5
vt 1 0.75
vt 0.75 0.75
vt 0.75 1
vt 1 1
vt 0.25 0.75
vt 0.5 0.75
vt 0.5 1
vt 0.25 1
vt 0 0.5
vt 0 0.75
vt 0.25 0.75
vt 0.25 0.5
vt 0.75 0.75
vt 0.75 1
vt 0.5 1
vt 0.5 0.75
vn 0 0 1
vn 0 0 1
vn 0 0 1
vn 0 0 1
vn 0 0 -1
vn 0 0 -1
vn 0 0 -1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 -1 0
vn 0 -1 0
vn 0 -1 0
vn 0 -1 0
vn 0 1 0
vn 0 1 0
vn 0 1 0
vn 0 1 0
g jenga
usemtl jenga
s 1
f 1/1/1 2/2/2 3/3/3
f 1/1/1 3/3/3 4/4/4
s 2
f 7/7/7 6/6/6 5/5/5
f 8/8/8 7/7/7 5/5/5
s 3
f 11/11/11 10/10/10 9/9/9
f 12/12/12 11/11/11 9/9/9
s 4
f 13/13/13 14/14/14 15/15/15
f 13/13/13 15/15/15 16/16/16
s 5
f 19/19/19 18/18/18 17/17/17
f 20/20/20 19/19/19 17/17/17
s 6
f 21/21/21 22/22/22 23/23/23
f 21/21/21 23/23/23 24/24/24

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

View File

@ -0,0 +1,29 @@
<?xml version="0.0" ?>
<robot name="jenga.urdf">
<link name="baseLink">
<contact>
<lateral_friction value=".5"/>
</contact>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value=".05"/>
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="jenga.obj" scale="0.15 0.05 0.03"/>
</geometry>
<material name="blue">
<color rgba="0.5 0.5 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.15 0.05 0.03"/>
</geometry>
</collision>
</link>
</robot>

View File

@ -0,0 +1,205 @@
<?xml version="1.0" ?>
<sdf version="1.4">
<model name="Amazon Pod">
<static>1</static>
<pose>0 1 0 0 0 0</pose>
<link name="pod_link">
<inertial>
<pose>0.0 .0 1.2045 0 0 0</pose>
<mass>0</mass>
<inertia>
<ixx>0</ixx>
<ixy>0.0</ixy>
<ixz>0.0</ixz>
<izz>0.0</izz>
<iyz>0.0</iyz>
<iyy>0.0</iyy>
</inertia>
</inertial>
<visual name="pod_visual">
<pose>0 0 0 1.5707 0 0 </pose>
<geometry>
<mesh>
<uri>meshes/pod_lowres.stl</uri>
</mesh>
</geometry>
<material>
<diffuse>0.9 0.8 0.5 1</diffuse>
</material>
</visual>
<collision concave="yes" name="pod_collision">
<pose>0 0 1.21515 1.5707 0 0</pose>
<geometry>
<box>
<size>0.875 1.754 0.03</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>-0.42 0 1.18 1.5707 0 1.5707 </pose>
<geometry>
<box>
<size>0.875 1.754 0.03</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0.42 0.42 1.17 1.5707 0 0</pose>
<geometry>
<box>
<size>0.03 2.3 0.03</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>-0.42 0.42 1.17 1.5707 0 0</pose>
<geometry>
<box>
<size>0.03 2.3 0.03</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>-0.42 -0.42 1.17 1.5707 0 0</pose>
<geometry>
<box>
<size>0.03 2.3 0.03</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0.42 -0.42 1.17 1.5707 0 0</pose>
<geometry>
<box>
<size>0.03 2.3 0.03</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0.15 0 1.49 1.5707 0 1.5707 </pose>
<geometry>
<box>
<size>0.875 1.32 0.01</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>-0.15 0 1.49 1.5707 0 1.5707 </pose>
<geometry>
<box>
<size>0.875 1.32 0.01</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0 .57 1.5707 0 1.5707 </pose>
<geometry>
<box>
<size>0.875 0.45 0.01</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0.42 0 1.18 1.5707 0 1.5707 </pose>
<geometry>
<box>
<size>0.875 1.754 0.03</size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0 1.06 0 0 0 </pose>
<geometry>
<box>
<size>0.905 0.856 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0 1.06 0 0 0 </pose>
<geometry>
<box>
<size>0.905 0.856 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0 0.80 0 0 0 </pose>
<geometry>
<box>
<size>0.905 0.856 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0.43 0.81 0 0 0 </pose>
<geometry>
<box>
<size>0.856 0.018 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 -0.43 0.81 0 0 0 </pose>
<geometry>
<box>
<size>0.856 0.018 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0.43 1.08 0 0 0 </pose>
<geometry>
<box>
<size>0.856 0.018 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 -0.43 1.08 0 0 0 </pose>
<geometry>
<box>
<size>0.856 0.018 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0 0.37 0 0 0 </pose>
<geometry>
<box>
<size>0.905 0.856 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0 1.29 0 0 0 </pose>
<geometry>
<box>
<size>0.905 0.856 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0 1.53 0 0 0 </pose>
<geometry>
<box>
<size>0.905 0.856 0.028 </size>
</box>
</geometry>
</collision>
<collision concave="yes" name="pod_collision">
<pose>0 0 1.78 0 0 0 </pose>
<geometry>
<box>
<size>0.905 0.856 0.028 </size>
</box>
</geometry>
</collision>
</link>
</model>
</sdf>

Some files were not shown because too many files have changed in this diff Show More