feat: add urdf example
This commit is contained in:
committed by
Sébastien Crozet
parent
0446d4457f
commit
5c44d936f7
@@ -1,23 +1,23 @@
|
||||
[package]
|
||||
name = "rapier-examples-3d"
|
||||
name = "rapier-examples-3d"
|
||||
version = "0.1.0"
|
||||
authors = [ "Sébastien Crozet <developer@crozet.re>" ]
|
||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||
edition = "2021"
|
||||
default-run = "all_examples3"
|
||||
|
||||
[features]
|
||||
parallel = [ "rapier3d/parallel", "rapier_testbed3d/parallel" ]
|
||||
simd-stable = [ "rapier3d/simd-stable" ]
|
||||
simd-nightly = [ "rapier3d/simd-nightly" ]
|
||||
other-backends = [ "rapier_testbed3d/other-backends" ]
|
||||
enhanced-determinism = [ "rapier3d/enhanced-determinism" ]
|
||||
parallel = ["rapier3d/parallel", "rapier_testbed3d/parallel"]
|
||||
simd-stable = ["rapier3d/simd-stable"]
|
||||
simd-nightly = ["rapier3d/simd-nightly"]
|
||||
other-backends = ["rapier_testbed3d/other-backends"]
|
||||
enhanced-determinism = ["rapier3d/enhanced-determinism"]
|
||||
|
||||
[dependencies]
|
||||
rand = "0.8"
|
||||
getrandom = { version = "0.2", features = [ "js" ] }
|
||||
Inflector = "0.11"
|
||||
getrandom = { version = "0.2", features = ["js"] }
|
||||
Inflector = "0.11"
|
||||
wasm-bindgen = "0.2"
|
||||
obj-rs = { version = "0.7", default-features = false }
|
||||
obj-rs = { version = "0.7", default-features = false }
|
||||
serde = "1"
|
||||
bincode = "1"
|
||||
|
||||
@@ -27,6 +27,9 @@ path = "../crates/rapier_testbed3d"
|
||||
[dependencies.rapier3d]
|
||||
path = "../crates/rapier3d"
|
||||
|
||||
[dependencies.rapier-urdf]
|
||||
path = "../crates/rapier-urdf"
|
||||
|
||||
[[bin]]
|
||||
name = "all_examples3"
|
||||
path = "./all_examples3.rs"
|
||||
|
||||
@@ -55,6 +55,7 @@ mod rope_joints3;
|
||||
mod sensor3;
|
||||
mod spring_joints3;
|
||||
mod trimesh3;
|
||||
mod urdf3;
|
||||
mod vehicle_controller3;
|
||||
mod vehicle_joints3;
|
||||
|
||||
@@ -119,6 +120,7 @@ pub fn main() {
|
||||
("Sensor", sensor3::init_world),
|
||||
("Spring Joints", spring_joints3::init_world),
|
||||
("TriMesh", trimesh3::init_world),
|
||||
("Urdf", urdf3::init_world),
|
||||
("Vehicle controller", vehicle_controller3::init_world),
|
||||
("Vehicle joints", vehicle_joints3::init_world),
|
||||
("Keva tower", keva3::init_world),
|
||||
|
||||
38
examples3d/urdf3.rs
Normal file
38
examples3d/urdf3.rs
Normal file
@@ -0,0 +1,38 @@
|
||||
use rapier3d::prelude::*;
|
||||
use rapier_testbed3d::Testbed;
|
||||
use rapier_urdf::{RapierRobot, UrdfLoaderOptions};
|
||||
|
||||
pub fn init_world(testbed: &mut Testbed) {
|
||||
/*
|
||||
* World
|
||||
*/
|
||||
let mut bodies = RigidBodySet::new();
|
||||
let mut colliders = ColliderSet::new();
|
||||
let mut impulse_joints = ImpulseJointSet::new();
|
||||
let mut multibody_joints = MultibodyJointSet::new();
|
||||
|
||||
/*
|
||||
* Ground
|
||||
*/
|
||||
let options = UrdfLoaderOptions {
|
||||
create_colliders_from_visual_shapes: true,
|
||||
create_colliders_from_collision_shapes: false,
|
||||
apply_imported_mass_props: true,
|
||||
make_roots_fixed: true,
|
||||
// rigid_body_blueprint: RigidBodyBuilder::dynamic().gravity_scale(0.0),
|
||||
collider_blueprint: ColliderBuilder::ball(0.0)
|
||||
.density(0.0)
|
||||
.active_collision_types(ActiveCollisionTypes::empty()),
|
||||
..Default::default()
|
||||
};
|
||||
let (mut robot, _) = RapierRobot::from_file("assets/3d/sample.urdf", options).unwrap();
|
||||
|
||||
// robot.insert_using_impulse_joints(&mut bodies, &mut colliders, &mut impulse_joints);
|
||||
robot.insert_using_multibody_joints(&mut bodies, &mut colliders, &mut multibody_joints);
|
||||
|
||||
/*
|
||||
* Set up the testbed.
|
||||
*/
|
||||
testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
|
||||
testbed.look_at(point![100.0, 100.0, 100.0], Point::origin());
|
||||
}
|
||||
Reference in New Issue
Block a user