ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

hrpsys update to make clear command for nextage work

asked 2018-07-16 07:03:20 -0600

robotfan gravatar image

updated 2018-07-16 07:58:50 -0600

I am working with the KaWaDa Nextage Open (the real robot, not in simulation). I would like to start a movement by robot.setTargetPosition(...) and if some condition is fullfilled while the robot is moving, I would like to stop it again. It seems robot.clear()does not have any effect - is this expected behaviour? Using robot.clearOfGroup(...), I get the following error:

robot.clearOfGroup('LARM')

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-19-be9ca79979e0> in <module>()
----> 1 robot.clearOfGroup('LARM')

/opt/ros/indigo/lib/python2.7/dist-packages/hironx_ros_bridge/hironx_client.pyc in clearOfGroup(self, limb)
   1127         if StrictVersion(self.seq_version) < StrictVersion('315.5.0'):
   1128             raise RuntimeError('clearOfGroup is not available with your '
-> 1129                                'software version ' + self.seq_version)
   1130         HrpsysConfigurator.clearOfGroup(self, limb)
   1131         angles = self.getJointAnglesOfGroup(limb)

RuntimeError: clearOfGroup is not available with your software version 315.2.8

So I conclude that I have to update hrpsys? How could I do that? According to apt-get ros-indigo-hrpsys-ros-bridge is already the newest version., the same for ros-indigo-hrpsys.


Update: interestingly, there seems to be something wrong with the versions:

$ rosversion hrpsys
315.14.0

I guess this means there are two hrpsys versions on my system somehow? Does someone have a clue how to trace down the older one?


Update 2: I got it now, so on my machine I run hrpsys 315.14.0, while on the QNX there seems to be 315.2.8. What can solve this issue? Should I downgrade the local hrpsys or can I update the QNX software?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2018-07-23 03:17:33 -0600

longjie0723 gravatar image

updated 2018-07-29 20:13:38 -0600

Hi,

Your commands via ipython is to use hrpsys in QNX controller. So it is not related to hrpsys version in ROS system. And as the error message shows, your hrpsys controller on QNX controller, 315.2.8, doesn't support the API clearOfGroup.

I'm afraid you need to update the hrpsys on your QNX controller.

Alternatively, you may be able to stop the motion by overriding withsetJointAnglesOfGroup API. We don't sure it works, but it may be possible to work with the older version.

Thanks.

Update:

I tried to override setTargetPose by setting JointAnglesOfGroup in simulation, but it didn't work. It jumped to current angle after setTargetPose ends. So I think we cannot go this way.

I think setTargetPose is a bit special function, because it is used only through python interface directly. ROS MoveIt! doen't use this API. It uses joint level API like setJointAnglesOfGroup and playJointAnglesOfGroup and they are overridable (even in old version hrpsys).

edit flag offensive delete link more

Comments

I believe you are right that updating hrpsys on the QNX would probably be the best solution. How can I do that?

Your suggestion to use setJointAnglesOfGroup to override the motion, so you how excactly would you do that? first setTargetPose, then setJointAnglesOfGroup with the current angles?

robotfan gravatar image robotfan  ( 2018-07-24 02:03:09 -0600 )edit

Do you need to use setTargetPose for your system? MoveIt! doesn't use this function (because it solve IK by itself).

longjie0723 gravatar image longjie0723  ( 2018-07-29 20:17:28 -0600 )edit

I would like to do position control, so e.g. pass the robot a 3D coordinate to reach (and then, in some cases stop the movement early). Using setJointAngles is not handy there... is there a function call that would solve the IK for me?

robotfan gravatar image robotfan  ( 2018-07-30 03:38:31 -0600 )edit

setTargetPose is a option and it works, but overriding is not supported in current version. Why don't you use MoveIt! and moveit_commander? It can set target pose of hand and overriding is supported.

longjie0723 gravatar image longjie0723  ( 2018-07-30 19:12:09 -0600 )edit

So I just got back to this issue with a fresh Ubuntu 16 installation and still do not know how to stop a movement. The issue with the hrpsys on the QNX persists but is probably hard to solve. @longjie0723 If I use moveit_commander, none of the following commands work: larm.go() #time.sleep(1) larm.stop() larm.clear_pose_targets() larm.clear_pose_target('LARM_JOINT5_Link') ...the robot keeps moving. If I use the MoveIt! GUI, I can also click stop, and the GUI claims it stopped (and so does the terminal output) but the robot does not actually stop. I keeps moving and always fulfils the plan.

Is there seriously no way to get the robot to stop?

robotfan gravatar image robotfan  ( 2019-05-28 12:44:23 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2018-07-16 07:03:20 -0600

Seen: 203 times

Last updated: Jul 29 '18