class HumanoidRobot(AbstractHumanoidRobot): def __init__(self, name, pinocchio_model, pinocchio_data, initialConfig, OperationalPointsMap=None, tracer=None): AbstractHumanoidRobot.__init__(self, name, tracer) self.OperationalPoints.append('waist') self.OperationalPoints.append('chest') self.OperationalPointsMap = OperationalPointsMap self.dynamic = DynamicPinocchio(self.name + "_dynamic") self.dynamic.setModel(pinocchio_model) self.dynamic.setData(pinocchio_data) self.dimension = self.dynamic.getDimension() self.device = RobotSimu(self.name + "_device") self.device.resize(self.dynamic.getDimension()) self.halfSitting = initialConfig self.device.set(self.halfSitting) plug(self.device.state, self.dynamic.position) if self.enableVelocityDerivator: self.velocityDerivator = Derivator_of_Vector('velocityDerivator') self.velocityDerivator.dt.value = self.timeStep plug(self.device.state, self.velocityDerivator.sin) plug(self.velocityDerivator.sout, self.dynamic.velocity) else: self.dynamic.velocity.value = self.dimension * (0., ) if self.enableAccelerationDerivator: self.accelerationDerivator = \ Derivator_of_Vector('accelerationDerivator') self.accelerationDerivator.dt.value = self.timeStep plug(self.velocityDerivator.sout, self.accelerationDerivator.sin) plug(self.accelerationDerivator.sout, self.dynamic.acceleration) else: self.dynamic.acceleration.value = self.dimension * (0., ) if self.OperationalPointsMap is not None: self.initializeOpPoints()
class HumanoidRobot(AbstractHumanoidRobot): def __init__(self, name, pinocchio_model, pinocchio_data, initialConfig, OperationalPointsMap = None, tracer = None): AbstractHumanoidRobot.__init__(self, name, tracer) self.OperationalPoints.append('waist') self.OperationalPoints.append('chest') self.OperationalPointsMap = OperationalPointsMap self.dynamic = DynamicPinocchio(self.name + "_dynamic") self.dynamic.setModel(pinocchio_model) self.dynamic.setData(pinocchio_data) self.dimension = self.dynamic.getDimension() self.device = RobotSimu(self.name + "_device") self.device.resize(self.dynamic.getDimension()) self.halfSitting = initialConfig self.device.set(self.halfSitting) plug(self.device.state, self.dynamic.position) if self.enableVelocityDerivator: self.velocityDerivator = Derivator_of_Vector('velocityDerivator') self.velocityDerivator.dt.value = self.timeStep plug(self.device.state, self.velocityDerivator.sin) plug(self.velocityDerivator.sout, self.dynamic.velocity) else: self.dynamic.velocity.value = self.dimension*(0.,) if self.enableAccelerationDerivator: self.accelerationDerivator = \ Derivator_of_Vector('accelerationDerivator') self.accelerationDerivator.dt.value = self.timeStep plug(self.velocityDerivator.sout, self.accelerationDerivator.sin) plug(self.accelerationDerivator.sout, self.dynamic.acceleration) else: self.dynamic.acceleration.value = self.dimension*(0.,) if self.OperationalPointsMap is not None: self.initializeOpPoints()
(1., 0, 0, 0), (0, 1., 0, 0), (0, 0, 1., 0), (0, 0, 0, 1.), ) model = RosRobotModel('ur5_dynamic') device = RobotSimu('ur5_device') rospy.init_node('fake') model.loadUrdf( "file:///local/ngiftsun/devel/ros/catkin_ws/src/ur_description/urdf/ur5_robot.urdf" ) dimension = model.getDimension() device.resize(dimension) plug(device.state, model.position) # Set velocity and acceleration to 0 model.velocity.value = dimension * (0., ) model.acceleration.value = dimension * (0., ) # Create taks for the base model.createOpPoint("base", "waist") # Create task for the wrist model.createOpPoint("wrist", "wrist_3_joint") feature_wrist = FeaturePosition('position_wrist', model.wrist, model.Jwrist, I4) task_wrist = Task('wrist_task') task_wrist.controlGain.value = 1.
if autoRecompute: device.after.addSignal(signal) I4 = ((1.,0,0,0), (0,1.,0,0), (0,0,1.,0), (0,0,0,1.),) model = RosRobotModel ('ur5_dynamic') device = RobotSimu ('ur5_device') rospy.init_node('fake') model.loadUrdf ("file:///local/ngiftsun/devel/ros/catkin_ws/src/ur_description/urdf/ur5_robot.urdf") dimension = model.getDimension () device.resize (dimension) plug (device.state, model.position) # Set velocity and acceleration to 0 model.velocity.value = dimension * (0.,) model.acceleration.value = dimension * (0.,) # Create taks for the base model.createOpPoint ("base", "waist") # Create task for the wrist model.createOpPoint ("wrist", "wrist_3_joint") feature_wrist = FeaturePosition ('position_wrist', model.wrist, model.Jwrist, I4) task_wrist = Task ('wrist_task') task_wrist.controlGain.value = 1. task_wrist.add (feature_wrist.name)