04 ETH Zürich ROS-I+in+Architecture+and+Digital+Fabrication
04 ETH Zürich ROS-I+in+Architecture+and+Digital+Fabrication
Additive processes
Formative processes
Subtractive processes
Computational Design
Fundamentals
Robot models
Backends
# Rhino # Blender
from compas.robots import * from compas.robots import *
from compas_fab.rhino import RobotArtist from compas_fab.blender import RobotArtist
r = 'ros-industrial/abb' r = 'ros-industrial/abb'
p = 'abb_irb6600_support' p = 'abb_irb6600_support'
b = 'kinetic-devel' b = 'kinetic-devel'
RobotArtist(model).draw_visual() RobotArtist(model).draw_visual()
# Rhino # Blender
from compas.robots import * from compas.robots import *
from compas_fab.rhino import RobotArtist from compas_fab.blender import RobotArtist
r = 'ros-industrial/abb' r = 'ros-industrial/abb'
p = 'abb_irb6600_support' p = 'abb_irb6600_support'
b = 'kinetic-devel' b = 'kinetic-devel'
RobotArtist(robot).draw_visual() RobotArtist(robot).draw_visual()
# Rhino # Blender
from compas.robots import * from compas.robots import *
from compas_fab.rhino import RobotArtist from compas_fab.blender import RobotArtist
r = 'ros-industrial/abb' r = 'ros-industrial/abb'
p = 'abb_irb6600_support' p = 'abb_irb6600_support'
b = 'kinetic-devel' b = 'kinetic-devel'
RobotArtist(robot).draw_visual() RobotArtist(robot).draw_visual()
docker-compose up -d Right-click → Compose Up
Overview: all the moving parts
ROBOT CONTROLLER
🤖
TCP
Websocket
frame_RCF = robot.forward_kinematics(configuration)
Inverse Kinematics
from compas.geometry import Frame
from compas_fab.backends import RosClient
frames = []
frames.append(Frame((0.29, 0.39, 0.50), (0, 1, 0), (0, 0, 1)))
frames.append(Frame((0.51, 0.28, 0.40), (0, 1, 0), (0, 0, 1)))
goal_constraints = robot.constraints_from_frame(frame,
tolerance_position=0.001,
tolerance_axes=[0.01, 0.01, 0.01])