drake

PrismaticJoint limits not enforced

耗尽温柔 提交于 2020-06-16 18:52:38
问题 I'm creating a system of bodies with radially expanding bodies connected with PrismaticJoints, and finding that, although I initialized each joint with joint position limits, the joints pass these limits due to external forces like gravity easily. Here is a plot showing some joints' translations over time to show how they pass the lower and upper limits at 3.5 and 4.2: What am I missing? My call to create the joints looks like this: const multibody::Joint<double>& joint = plant_->AddJoint

PrismaticJoint limits not enforced

二次信任 提交于 2020-06-16 18:51:19
问题 I'm creating a system of bodies with radially expanding bodies connected with PrismaticJoints, and finding that, although I initialized each joint with joint position limits, the joints pass these limits due to external forces like gravity easily. Here is a plot showing some joints' translations over time to show how they pass the lower and upper limits at 3.5 and 4.2: What am I missing? My call to create the joints looks like this: const multibody::Joint<double>& joint = plant_->AddJoint

How to “dampen” MultibodyPlant's compliant contact model in a simulation?

可紊 提交于 2020-06-01 05:14:06
问题 TL;DR At present, I'm tinkering with a simple clutter-generation Python script. Where can I find information on how to best "minimize" energy in a plant that I wish to forward simulate, possibly by "damping" the parameters for MultibodyPlant 's contact model? My desire is to be able to forward simulate clutter falling into a sink (or bin), and effectively have the kinetic energy be dampened out (i.e. no bouncing), in such a way that hopefully doesn't make the integration too stiff. For now, I

With MultibodyPlant, why do I get `SolveQuadraticForTheSmallestPositiveRoot(): condition 'Delta > 0' failed`?

此生再无相见时 提交于 2020-05-29 09:53:46
问题 (This is from a Drake Slack conversation.) I'm playing with an "exploding IIWA" demo to prototype some workflows with MultibodyPlant and SceneGraph . Basically, I'm just adding a robot arm that has articulation (revolute joints between multiple links) and dropping the robot arm from a height. When it hits a certain point, I want to pause the simulation, remove all of the joints, and the resume the simulation. Here is the code that I am working with (which needs some Drake PRs at present to

With MultibodyPlant, why do I get `SolveQuadraticForTheSmallestPositiveRoot(): condition 'Delta > 0' failed`?

我与影子孤独终老i 提交于 2020-05-29 09:53:08
问题 (This is from a Drake Slack conversation.) I'm playing with an "exploding IIWA" demo to prototype some workflows with MultibodyPlant and SceneGraph . Basically, I'm just adding a robot arm that has articulation (revolute joints between multiple links) and dropping the robot arm from a height. When it hits a certain point, I want to pause the simulation, remove all of the joints, and the resume the simulation. Here is the code that I am working with (which needs some Drake PRs at present to

modelling elastic collisions in drake

谁说我不能喝 提交于 2020-05-16 02:29:31
问题 I am trying to model an elastic bouncing ball in drake. However, I have not figured out how to set something like the coefficient of restitution for the urdf model I load. Does drake support elastic collisions for the point contact model? If yes how can I set the respective parameters? Edit: I already tried setting the penetration allowance with plant.set_penetration_allowance(0.0001) but I got the following error: AttributeError: 'MultibodyPlant_[float]' object has no attribute 'set

PyDrake ComputePointPairPenetration() kills kernel

懵懂的女人 提交于 2020-05-15 09:25:22
问题 In calling ComputePointPairPenetration() from a QueryObject in Drake in Python in a Jupyter Notebook environment, ComputePointPairPenetration() reliably kills the kernel. I'm not sure what's causing it and couldn't figure out how to get any error message. In case it's relevant I'm running pydrake locally on a Mac. Here is relevant code: builder = DiagramBuilder() plant, scene_graph = AddMultibodyPlantSceneGraph(builder, time_step=0.00001) file_name = FindResource("models/robot.urdf") model =

PyDrake ComputePointPairPenetration() kills kernel

旧城冷巷雨未停 提交于 2020-05-15 09:25:10
问题 In calling ComputePointPairPenetration() from a QueryObject in Drake in Python in a Jupyter Notebook environment, ComputePointPairPenetration() reliably kills the kernel. I'm not sure what's causing it and couldn't figure out how to get any error message. In case it's relevant I'm running pydrake locally on a Mac. Here is relevant code: builder = DiagramBuilder() plant, scene_graph = AddMultibodyPlantSceneGraph(builder, time_step=0.00001) file_name = FindResource("models/robot.urdf") model =

Constraint force for closed loop MultibodyPlant

久未见 提交于 2019-12-24 21:52:07
问题 Since RigidBodyTree is on its way out, I'm trying to use MultibodyPlant to study my closed loop multibody robot. I'm testing things out using the drake/examples/simple_four_bar/FourBar.sdf my_plant, scene_graph = AddMultibodyPlantSceneGraph(builder) Parser(plant=my_plant).AddModelFromFile("FourBar.sdf") But get the following error RuntimeError: This mobilizer is creating a closed loop since the outboard body already has an inboard mobilizer connected to it. If a physical loop is really needed

How to make sense of the continuous_state vector?

走远了吗. 提交于 2019-12-20 04:15:41
问题 Background I am trying to balance a mobile inverted pendulum (i.e. segway). For the simulation, I created a simple robot that involves a pole attached to a cylinder (wheel) through a revolute joint. Question After constructing my MIP plant, plant.num_positions() returns 8 and plant.num_velocities() returns 7 , i.e. the total continuous_state size is 15 How do I make sense of this large number of states? I suppose one of these represents the angle that the pole makes with the vertical. How do