I am looking for a way to stream position command to robot joints manually. This was achieved in generic app using jointAutoSetpointGenerator/input. There is no such thing in robot app. I see custom velocities can be commanded using root/Control/hostInJointVelocity. How do I stream raw position commands ?

Thanks

Hi,

The robot app functions slightly different as the generic app,

In the robot app you can switch between position and velocity inputs via:
root/Control/gotoJogMode set to 1 = Joint Velocity Input or to 0 = Joint Trajectory Input.

Joint Velocity Input:
Velocity commands are send to: root/Control/hostInJointVelocity
Velocity integrator settings can be adjusted in: root/Control/jointJogIntegrator/..

Joint Trajectory Input:
Position commands are send to: root/Control/hostInJointTrajectory
Position input limiters can adjusted via: root/Control/jointTrajectoryLimiters/pvaLimiter0X/
When using input limiters, set ../w =input filter to the maximum value, this value is self adjusting but have to be set.

ok, it works only after setting w to some value. can you give more info as to what w is ? lower value of it seems to produce smooth motion.

Also, there was a root/Control/jointAutoSetpointGenerator%02d/done in generic app which told when the command was dome executing. something similar in robot app ?

    So I want to do the brake release motion through code and then move to gui for initial testing.

    I do:

    req.setParameter("root/Control/gotoJogMode", 0).get()
    req.setParameter("root/Control/jointTrajectoryLimiters/pvaLimiter02/w", 20).get()
    req.setParameter("root/Control/jointTrajectoryLimiters/pvaLimiter01/w", 20).get()

    then give a position:
    req.setParameter("root/Control/hostInJointTrajectory", 0.5, offset=0).get()

    now when I turn on Manual Cart mode in gui, the robot jerks and stops all of a sudden. I revert all the params after doing my motion and add sleep before switching to manualCart, still the same behaviour.

      MankaranSingh

      The w is the "omaga" of the filter in rad/s. For the Lowpass1 filter this means if you want a filter with a break frequency at 10Hz you have to enter 102pi = 62.8 rad/s. There is an upper limit (has to do with stability) to the filter setting, which depends on the update rate of the application (1 kHz). The filter will adjust the value if you try to make it too large.

      The other question:
      We do not have the simple setpointGenerators in the Robot app (yet), because there we have the complex path planner which is more fancy, but maybe not what you are looking for.

      MankaranSingh

      When switching to Manual Cart Mode the signal paths are changed, because you switch to velocity inputs as well as cartesian inputs. This means that your manual joint trajectory is faded out (probably very quickly, because the robot jerks.

      I am not sure yet how you could implement the break release algorithm following this route. I will give it some thought and let you know what strategy could actually work. A quick guess would be that we somehow would have to inject this position offset just before the command is being sent to the drive, similar to how this is done in Synapticon Drives. I will get back to you on that.

      I think if we could switch between manual joint trajectory and manual cart mode without jerk, that will be enough for us. The only requirement for brake release is, getting position feedback and moving in small steps (position commands).

      22 days later

      Switching between modes is governed by so-called Soft-switches. To increase the speed of transitions, we have made the default fade-times reasonably fast (0.1 seconds). If you synchronize setpoints between the modes well, you can switch fast, because joint setpoint and cartesian setpoint result in the same setpoint for the drive, so it should not move when switching modes. If you cannot achieve that you can always make switching modes smoother. For instance you can change the following parameters:

      root/Control/jointModeSwitch/fadeInTime
      root/Control/jointModeSwitch/fadeOutTime

      to 1 second for instance (default value is 0.1 second).

      ⚠️ Be aware that the robot will move if your joint and cartesian positions do not match.

      2 years later

      Hi,

      I'm trying to do the same thing using an app based on "Motorcortex Robot App", I can set correctly the parameter

      root/Control/hostInJointTrajectory

      but even if I set

      req.setParameter("root/Control/gotoJogMode", 0).get()

      the robot doesn't move, what am I forgetting?

      Hi,

      Which robot app version are you using?
      Example:

      Hi,
      I'm using the binary version Motorcortex-Robot.bin version 3.0.10

      You are using a newer application version, with older parameter paths:
      I recommend updating to the latest application version available in our store: v3.9.0.

      For the 3.0.10 version, you can check the paths via the desk tool for example:

      root/ManipulatorControl/hostInJointTrajectory


      root/ManipulatorControl/gotoJogMode

      The DESK-Tool can be a usefull tool, to find the correct paths for newer applications versions.

      4 days later

      Hi, I updated the .bin at v3.9.0,
      and I notice the same behaviour as before, root/ManipulatorControl/hostInJointTrajectory and
      root/ManipulatorControl/gotoJogMode are setted correctly from my script

      Is there any other parameter, (obv after the switch on the robot) parameter that I should set? like Jog or activation?

      I can't guess from the desk if there are other parameters that will be setted when "Manual Jog" is activated from the GUI because there are too many parameters.

      Hi,

      Stream Positions via the HostInJointTrajectory, is only possible if you are in manual Joint mode.
      I think you forgot to switch to manual joint mode.

      You can check via the GUI how to switch to Manual Joint mode:

      root/Logic/modeCommand = 3 [Manual Joint Mode]

      Also in the GUI there is a tab called HostIn Limiters, check if you disabled the limiters (To start with)

      Write a Reply...