LSMM

Members
  • Content count

    6
  • Joined

  • Last visited

  • Days Won

    1

LSMM last won the day on August 9

LSMM had the most liked content!

Community Reputation

1 Neutral

About LSMM

  • Rank
    Member

Robot Information

  • Company Name
    Université de Liège

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. LSMM

    Air supply, Vacuum gripper

    Hi Don, Aurora and Fuglum, Would it be possible to know how you are controlling the valves using the intera SDK? python? want are the class and commands you are using? Is it using the DigitalIO class? and using the set_output(self, value, timeout=2.0) method? Thanks
  2. LSMM

    Change frequency for publisher topic

    Hi Jose_UTEC, I think you do not need to fix the control rate on a particular topic or parameter. If you supply the robot with references at a rate of 5 - 800 Hz, the robot will take it. In your code, you just have to set your command, for example using set_joint_trajectory(), make your code "sleep" for a given time, using for example the rospy.Rate() class with sleep() method, then increment and go to next instruction. See the example below (same as in other thread) import rospy import intera_interface limb = intera_interface.Limb('right') limb.move_to_neutral() # control rate, data sent every 0.002 s, meaning controlling at 500 Hz. Can be from 5 Hz to 800 Hz (I think) rate = 500 # Hz control_rate = rospy.Rate(rate) # controlled joints names=['right_j6','right_j5'] i = 0 # initializing time step # looping over your arrays of 60 values for pose, vel and acc for each joint while i < len(traj_j6): pose = [traj_j6[i], traj_j5[i]] velocity = [vel_j6[i], vel_j5[i]] acceleration = [acc_j6[i], acc_j5[i]] # sending targeted pose, vel and acceleration for current time step limb.set_joint_trajectory(names, pose, velocity, acceleration) # incrementing time step i += 1 # make a short break to make sure commands are sent every 0.002 s (500 Hz) control_rate.sleep() print "Trajectory done..." When I then look at the joint_command topic after that, I see that commands are indeed sent every 0.002 s (roughly). However, when setting the control rate at 800 Hz (0.00125 sec) with this method, the actual rate at which joint_command messages are sent can sometimes be slightly less precise: delay between each command is slightly off (0.002 sec or 0.001 sec instead of the 0.00125s). If someone has another more reliable method, I would be interested to know it. Looking at some other people's codes, like in this thread, it seems they are doing something similar:
  3. LSMM

    Joint trajectory format

    Hi Jose_UTEC, I think that with the joint trajectory control you should send one set of (position, velocity, acceleration) at the time. In your case you want to control "right_j6" and "right_j5". Lets say the trajectory right_j6 has to follow is an array traj_j6 = the huge array you gave for j6 angles (around 60 values according to what i can see in your post). Let's say you want your joint to be at one of this angle values every 0.1 sec (10 Hz), so with 60 values you are going to last 6 sec. If you call vel_j6 = the huge array you gave for j6 velocities and acc_j6 = the huge array you gave for j6 accelerations (and same for j5 with traj_j5, vel_j5 and acc_j5), then you should have a code like: import rospy import intera_interface limb = intera_interface.Limb('right') limb.move_to_neutral() # control rate, data sent every 0.1 s rate = 10 # Hz control_rate = rospy.Rate(rate) # controlled joints names=['right_j6','right_j5'] i = 0 # initializing time step # looping over your arrays of 60 values for pose, vel and acc for each joint while i < len(traj_j6): pose = [traj_j6[i], traj_j5[i]] velocity = [vel_j6[i], vel_j5[i]] acceleration = [acc_j6[i], acc_j5[i]] # sending targeted pose, vel and acceleration for current time step limb.set_joint_trajectory(names, pose, velocity, acceleration) # incrementing time step i += 1 # wait around 0.1 s before looping to next time step control_rate.sleep() print "Trajectory done..." Might not be the perfect way to do it but it worked for me. If any one has any better suggestions, I would be happy to see how it can be improved... hope that it is what you tried to do and that this can help, Good luck
  4. LSMM

    Flexure joint stiffness in Sawyer

    Hello Yichao, I would need this parameters in order to make a model of Sawyer. For research purposes, I am trying to build a home made feedforward controler for the robot which takes into account flexibility in joints. For now, once I compute the inverse dynamics with my home made code (using torque control or position control for trajectory tracking), the robot doesn't move as expected and has some large overshoot in some of its joints. I would like to see if by modelling correctly the joint stiffness and (viscous) friction, I can manage to control the robot better. I hope I made my self understandable?
  5. Hello! I am currently trying to make a model of Sawyer including some dynamic parameters. As it is possible to find for Baxter (in http://sdk.rethinkrobotics.com/wiki/Hardware_Specifications), I am looking for the joint stiffness and damping parameters of the joints of Sawyer (with flexure springs). Is there a similar page for the Sawyer (could not manage to find it....) or did someone did some measurements and could share its results? Thanks in advance,
  6. LSMM

    Sawyer robot Gravity Compensation issue

    Hello, I recently started working on Sawyer and I am also trying to use my own dynamic model to control the arm using the joint torque control. @ErnestoDid you manage to solve this "moving up" motion while zero torques are applied? I tried to apply an opposite torque to counter this "upward" motion, but the amount of torque that I am applying is defined very approximately (try/error), since I do not know where the problem is coming from.... Regarding the dynamic model of Sawyer, I tested out some path tracking using either a joint position control or a joint torque control. With the joint position control everything works. With the joint torque control, it seems that some torques that i've computed do not manage to move the arm as I want it. In order to have a better estimation of the torque that I have to apply, I am now trying to improve my model by considering the stiffness and viscous friction in the joints. However, I could not find dynamical parameter of the springs (of the series elastic actuators) in the "Download" section of this Forum. Are these springs parameters available? could it be possible to have them for each joint? Thanks,