Skip to content

Commit 75e6da4

Browse files
committed
Merge branch 'master' into force_torque_sensor_2
2 parents 77ceac4 + f38b6e4 commit 75e6da4

27 files changed

+15958
-190
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 0.7.0
2+
current_version = 0.8.0
33
message = Bump version to {new_version}
44
commit = True
55
tag = True

CHANGELOG.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,20 @@ Unreleased
2323

2424
**Deprecated**
2525

26+
0.8.0
27+
----------
28+
29+
**Changed**
30+
31+
* Updated to COMPAS 0.10
32+
* Add better support for passive joints on IK, Cartesian and Kinematic planning
33+
34+
**Fixed**
35+
36+
* Use WorldXY's origin as default for robots that are have no parent join on their base
37+
* Fixed parsing of semantics (SRDF) containing nested groups
38+
* Fixed DAE support on ROS File loader
39+
2640
0.7.0
2741
----------
2842

docs/backends/files/panda-demo/docker-compose.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,29 @@ services:
3838
- file_server
3939
- file_server.launch
4040

41+
panda-tf-panda_link0:
42+
image: gramaziokohler/ros-panda-planner:19.04
43+
container_name: panda-tf-panda_link0
44+
environment:
45+
- ROS_HOSTNAME=panda-tf-panda_link0
46+
- ROS_MASTER_URI=http://ros-master:11311
47+
depends_on:
48+
- ros-master
49+
command:
50+
- rosrun
51+
- tf
52+
- static_transform_publisher
53+
- '0'
54+
- '0'
55+
- '0'
56+
- '0'
57+
- '0'
58+
- '0'
59+
- '1'
60+
- world
61+
- panda_link0
62+
- '100'
63+
4164
panda-demo:
4265
image: gramaziokohler/ros-panda-planner:19.04
4366
container_name: panda-demo

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
year = '2018'
2828
author = 'Gramazio Kohler Research'
2929
copyright = '{0}, {1}'.format(year, author)
30-
version = release = '0.7.0'
30+
version = release = '0.8.0'
3131

3232
pygments_style = 'sphinx'
3333
show_authors = True

docs/examples/01_fundamentals/01_frame_and_transformation.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ coordinate system.
3333
# point in F (local coordinates)
3434
P = Point(35., 35., 35.)
3535
# point in global (world) coordinates
36-
P_ = F.represent_point_in_global_coordinates(P)
36+
P_ = F.to_world_coords(P)
3737
3838
3939
Industrial robots do not have a common way of describing the pose orientation.

docs/examples/01_fundamentals/02_coordinate_frames.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,10 @@ before sending it as a target pose to the robot.
112112
frame_WCF = Frame(point, xaxis, yaxis)
113113
print("frame in WCF", frame_WCF)
114114
115-
frame_RCF = robot.represent_frame_in_RCF(frame_WCF)
115+
frame_RCF = robot.to_local_coords(frame_WCF)
116116
print("frame in RCF", frame_RCF)
117117
118-
frame_WCF = robot.represent_frame_in_WCF(frame_RCF)
118+
frame_WCF = robot.to_world_coords(frame_RCF)
119119
print("frame in WCF", frame_WCF)
120120
121121
Links
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
*******************************************************************************
2+
Full examples
3+
*******************************************************************************
4+
5+
.. note::
6+
7+
The following examples use the `ROS <http://www.ros.org/>`_ backend
8+
and the MoveI! planner with the Franka Emika Panda robots.
9+
Before running them, please make sure you have the :ref:`ROS backend <ros_backend>`
10+
correctly configured and the :ref:`Panda Demo <ros_bundles_list>` started.
11+
12+
The following lists the 4 main features of the integrated motion planning framework:
13+
forward and inverse kinematics, cartesian and kinematic planning including loading
14+
the entire robot model over ROS, and a complete Grasshopper canvas as a playground
15+
for these features.
16+
17+
Forward Kinematics
18+
=====================
19+
20+
.. literalinclude :: files/02_forward_kinematics_ros_loader.py
21+
:language: python
22+
23+
Inverse Kinematics
24+
=====================
25+
26+
.. literalinclude :: files/02_inverse_kinematics_ros_loader.py
27+
:language: python
28+
29+
Plan cartesian motion
30+
=====================
31+
32+
.. literalinclude :: files/04_plan_cartesian_motion_ros_loader.py
33+
:language: python
34+
35+
Plan motion
36+
===========
37+
38+
.. literalinclude :: files/04_plan_motion_ros_loader.py
39+
:language: python
40+
41+
Grasshopper playground
42+
======================
43+
44+
The following Grasshopper canvas demonstrate all these features combined in
45+
a single document, as a reference of how these features could be integrated:
46+
47+
48+
.. raw:: html
49+
50+
<div class="card bg-light">
51+
<div class="card-body">
52+
<div class="card-title">Download</div>
53+
54+
* :download:`Robot playground (Grasshopper) (.GHX) <files/robot-playground.ghx>`
55+
56+
.. raw:: html
57+
58+
</div>
59+
</div>
60+

docs/examples/03_backends_ros/files/02_forward_kinematics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
configuration = Configuration.from_revolute_values([-2.238, -1.153, -2.174, 0.185, 0.667, 0.])
66

77
frame_RCF = robot.forward_kinematics(configuration)
8-
frame_WCF = robot.represent_frame_in_WCF(frame_RCF)
8+
frame_WCF = robot.to_world_coords(frame_RCF)
99

1010
print("Frame in the robot's coordinate system")
1111
print(frame_RCF)

docs/examples/03_backends_ros/files/02_forward_kinematics_ros.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
configuration = Configuration.from_revolute_values([-2.238, -1.153, -2.174, 0.185, 0.667, 0.])
88

99
frame_RCF = robot.forward_kinematics(configuration)
10-
frame_WCF = robot.represent_frame_in_WCF(frame_RCF)
10+
frame_WCF = robot.to_world_coords(frame_RCF)
1111

1212
print("Frame in the robot's coordinate system")
1313
print(frame_RCF)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from compas.robots import RobotModel
2+
3+
from compas_fab.backends import RosClient
4+
from compas_fab.backends import RosFileServerLoader
5+
from compas_fab.robots import Configuration
6+
from compas_fab.robots import Robot
7+
from compas_fab.robots import RobotSemantics
8+
9+
with RosClient() as client:
10+
loader = RosFileServerLoader(client)
11+
12+
urdf = loader.load_urdf()
13+
srdf = loader.load_srdf()
14+
15+
model = RobotModel.from_urdf_string(urdf)
16+
semantics = RobotSemantics.from_srdf_string(srdf, model)
17+
18+
robot = Robot(model, semantics=semantics, client=client)
19+
20+
configuration = Configuration.from_prismatic_and_revolute_values([0.], [-2.238, -1.153, -2.174, 0.185, 0.667, 0.])
21+
22+
frame_RCF = robot.forward_kinematics(configuration)
23+
frame_WCF = robot.to_world_coords(frame_RCF)
24+
25+
print("Frame in the robot's coordinate system")
26+
print(frame_RCF)
27+
print("Frame in the world coordinate system")
28+
print(frame_WCF)

0 commit comments

Comments
 (0)