Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Stack Of Tasks
pinocchio
Commits
05686d45
Commit
05686d45
authored
Jun 11, 2020
by
Julian Eßer
Browse files
[examples] Add python example to build a reduced robot model
parent
a77d983b
Changes
1
Hide whitespace changes
Inline
Side-by-side
examples/build-reduced-model.py
0 → 100644
View file @
05686d45
import
pinocchio
as
pin
import
example_robot_data
import
numpy
as
np
# Goal: Build a reduced model from an existing URDF model by fixing the desired joints at a specified position.
# Load UR robot arm
robot
=
example_robot_data
.
loadUR
()
# Check dimensions of the original model
print
(
'standard model: dim='
+
str
(
len
(
robot
.
model
.
joints
)))
for
jn
in
range
(
len
(
robot
.
model
.
joints
)):
print
(
robot
.
model
.
joints
[
jn
])
# Create a list of joints to lock
jointsToLock
=
[
'wrist_1_joint'
,
'wrist_2_joint'
,
'wrist_3_joint'
]
# Get the ID of all existing joints
jointsToLockIDs
=
[]
for
jn
in
range
(
len
(
jointsToLock
)):
if
robot
.
model
.
existJointName
(
jointsToLock
[
jn
]):
jointsToLockIDs
.
append
(
robot
.
model
.
getJointId
(
jointsToLock
[
jn
]))
else
:
print
(
'Warning: joint '
+
str
(
jointsToLock
[
jn
])
+
' does not belong to the model!'
)
# Set initial position of both fixed and revoulte joints
initialJointConfig
=
np
.
matrix
([
0
,
0
,
0
,
# shoulder and elbow
1
,
1
,
1
]).
T
# gripper)
# Option 1: Build the reduced model including the geometric model for proper displaying of the robot
robot
.
model
,
robot
.
visual_model
=
pin
.
buildReducedModel
(
robot
.
model
,
robot
.
visual_model
,
jointsToLockIDs
,
initialJointConfig
)
# Option 2: Only build the reduced model in case no display needed:
# robot.model = pin.buildReducedModel(robot.model, jointsToLockIDs, initialJointConfig)
# Check dimensions of the reduced model
print
(
'reduced model: dim='
+
str
(
len
(
robot
.
model
.
joints
)))
for
jn
in
range
(
len
(
robot
.
model
.
joints
)):
print
(
robot
.
model
.
joints
[
jn
])
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment