RobotnikAutomation / barrett_hand

ROS package to control the Barrett Hand
13 stars 24 forks source link

error on INIT_HAND service #1

Closed binbowang1987 closed 9 years ago

binbowang1987 commented 10 years ago

I occured a problem , here is the log.

SUMMARY

PARAMETERS

NODES / bhand_node (bhand_controller/bhand_node.py)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found process[bhand_node-1]: started with pid [17274] {'F2_TIP': ['bh_j23_joint', 3], 'F1': ['bh_j12_joint', 0], 'F2': ['bh_j22_joint', 2], 'F3': ['bh_j32_joint', 4], 'F3_TIP': ['bh_j33_joint', 5], 'F1_TIP': ['bh_j13_joint', 1], 'SPREAD_1': ['bh_j11_joint', 6], 'SPREAD_2': ['bh_j21_joint', 7]} [INFO] [WallTime: 1409721866.752888] /bhand_node: port /dev/pcanusb0, freq = 250, topic = state, tactile_sensors = True [INFO] [WallTime: 1409721866.753104] bhand_node: starting PCANBasic::Initialize: Port /dev/pcanusb0 opened successfully PCANBasic::Initialize: Port /dev/pcanusb0 configured PCANBasic::Initialize: PCAN version info = Release_20140723_n [ERROR] [WallTime: 1409721892.588819] /bhand_node::handActions: error on INIT_HAND service [ERROR] [WallTime: 1409721892.589719] /bhand_node::canError: Errors on CAN bus [INFO] [WallTime: 1409721892.590277] BHand::switchToState: FAILURE_STATE PCANBasic::Uninitialize: Port /dev/pcanusb0 closed successfully [INFO] [WallTime: 1409721898.302130] BHand::switchToState: INIT_STATE PCANBasic::Initialize: Port /dev/pcanusb0 opened successfully PCANBasic::Initialize: Port /dev/pcanusb0 configured PCANBasic::Initialize: PCAN version info = Release_20140723_n [ERROR] [WallTime: 1409722123.427787] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1409722125.329947] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1409722125.529729] /bhand_node::handActions: action not allowed in state INIT_STATE

when I run the command bellow, the return value is 'False'.

rosservice call /bhand_node/actions "action: 1"

ret: False

Enviroment PC:VMware Virtual Machine OS:Unbutu 12.04 ROS:Groovy CAN: USB-PCAN

RomanRobotnik commented 10 years ago

Hi,

Could you tell me:

binbowang1987 commented 10 years ago

I have the BH8-280 hand. Linux kernel version is 3.2.0-23-generic. When I send the INIT command, I can heard the initialization sound.

RomanRobotnik commented 10 years ago

Sometimes I've detected something similar. Try powering on the hand and afterwards connecting the can-usb adapter. Once connected, call the init service once or twice and let me know if works.

binbowang1987 commented 10 years ago

I have tried your suggest, but it does not works as well.

binbowang1987 commented 10 years ago

Is there anyone can help me ?

RomanRobotnik commented 10 years ago

I've increased the delay in the init_hand procedure.

https://github.com/RobotnikAutomation/barrett_hand/commit/7d378c3b46b2132b6d2b3ca183441a3d7839ef41

You can update your version a try it.

It seems the problem is after calling the method self.get_property(FINGER1, ROLE) in the pyHand.init_hand. It doesn't read the response from the can bus and it fails. If it doesn't work, maybe increasing the sleep time in methods get_16 and get_32, you can get the response from the bus.

binbowang1987 commented 10 years ago

I have changed the sleep time to 50, but it do not work as well.

binbowang1987@163.com

From: Roman Navarro Garcia Date: 2014-09-09 15:26 To: RobotnikAutomation/barrett_hand CC: Binbowang Subject: Re: [barrett_hand] error on INIT_HAND service (#1) I've increased the delay in the init_hand procedure. 7d378c3 You can update your version a try it. It seems the problem is after calling the method self.get_property(FINGER1, ROLE) in the pyHand.init_hand. It doesn't read the response from the can bus and it fails. If it doesn't work, maybe increasing the sleep time in methods get_16 and get_32, you can get the response from the bus. — Reply to this email directly or view it on GitHub.

RomanRobotnik commented 10 years ago

In method pyHand::init_hand(), try commenting the call to "self.get_property(FINGER1, ROLE)". In this case, it'll pass to READY allways. Check if then it's working in READY_STATE.

binbowang1987 commented 10 years ago

It is working in ready_state, but the bhand_controller prompts canError

binbowang1987@163.com

From: Roman Navarro Garcia Date: 2014-09-09 16:29 To: RobotnikAutomation/barrett_hand CC: Binbowang Subject: Re: [barrett_hand] error on INIT_HAND service (#1) In method pyHand::init_hand(), try commenting the call to "self.get_property(FINGER1, ROLE)". In this case, it'll pass to READY allways. Check if then it's working in READY_STATE. — Reply to this email directly or view it on GitHub.

binbowang1987 commented 10 years ago

But if I move the slider on the rqt_bhand the finger will move when the bhand_controler's state is in READY_INIT. binbowang1987@163.com

From: binbowang1987@163.com Date: 2014-09-09 16:37 To: RobotnikAutomation/barrett_hand Subject: Re: Re: [barrett_hand] error on INIT_HAND service (#1) It is working in ready_state, but the bhand_controller prompts canError

binbowang1987@163.com

From: Roman Navarro Garcia Date: 2014-09-09 16:29 To: RobotnikAutomation/barrett_hand CC: Binbowang Subject: Re: [barrett_hand] error on INIT_HAND service (#1) In method pyHand::init_hand(), try commenting the call to "self.get_property(FINGER1, ROLE)". In this case, it'll pass to READY allways. Check if then it's working in READY_STATE. — Reply to this email directly or view it on GitHub.

RomanRobotnik commented 10 years ago

You're working in a virtual machine, aren't you?

Could you test it in a native Ubuntu? I'm wondering if there was a problem due to be working in a virtual machine. I'm not sure how the can driver works in this environment...

binbowang1987 commented 10 years ago

I commeted

if self.hand.process_can_messages() != 0:

self.canError(1)

in function readyState(self) and it works.

binbowang1987@163.com

From: binbowang1987@163.com Date: 2014-09-09 16:40 To: RobotnikAutomation/barrett_hand Subject: Re: Re: [barrett_hand] error on INIT_HAND service (#1) But if I move the slider on the rqt_bhand the finger will move when the bhand_controler's state is in READY_INIT.

binbowang1987@163.com

From: binbowang1987@163.com Date: 2014-09-09 16:37 To: RobotnikAutomation/barrett_hand Subject: Re: Re: [barrett_hand] error on INIT_HAND service (#1) It is working in ready_state, but the bhand_controller prompts canError

binbowang1987@163.com

From: Roman Navarro Garcia Date: 2014-09-09 16:29 To: RobotnikAutomation/barrett_hand CC: Binbowang Subject: Re: [barrett_hand] error on INIT_HAND service (#1) In method pyHand::init_hand(), try commenting the call to "self.get_property(FINGER1, ROLE)". In this case, it'll pass to READY allways. Check if then it's working in READY_STATE. — Reply to this email directly or view it on GitHub.

RomanRobotnik commented 10 years ago

It seems you can write into the CAN bus but you cannot read from it. That's because "self.hand.process_can_messages() != 0:" is failing..

binbowang1987 commented 10 years ago

I found that this problem maybe caused by the peak-linux-driver, because it can not read back the message from the can bus, but it can send message through the can bus. Which peadk-linux-driver does you use?

binbowang1987@163.com

From: binbowang1987@163.com Date: 2014-09-09 17:03 To: RobotnikAutomation/barrett_hand Subject: Re: Re: [barrett_hand] error on INIT_HAND service (#1) I commeted

if self.hand.process_can_messages() != 0:

self.canError(1)

in function readyState(self) and it works.

binbowang1987@163.com

From: binbowang1987@163.com Date: 2014-09-09 16:40 To: RobotnikAutomation/barrett_hand Subject: Re: Re: [barrett_hand] error on INIT_HAND service (#1) But if I move the slider on the rqt_bhand the finger will move when the bhand_controler's state is in READY_INIT.

binbowang1987@163.com

From: binbowang1987@163.com Date: 2014-09-09 16:37 To: RobotnikAutomation/barrett_hand Subject: Re: Re: [barrett_hand] error on INIT_HAND service (#1) It is working in ready_state, but the bhand_controller prompts canError

binbowang1987@163.com

From: Roman Navarro Garcia Date: 2014-09-09 16:29 To: RobotnikAutomation/barrett_hand CC: Binbowang Subject: Re: [barrett_hand] error on INIT_HAND service (#1) In method pyHand::init_hand(), try commenting the call to "self.get_property(FINGER1, ROLE)". In this case, it'll pass to READY allways. Check if then it's working in READY_STATE. — Reply to this email directly or view it on GitHub.

RomanRobotnik commented 10 years ago

I used to use the peak-linux-driver-7.10 but I installed the last one (peak-linux-driver-7.12) and it also works fine. When you compile the driver, do you use the make command with the following option "make NET=NO_NETDEV_SUPPORT"?

binbowang1987 commented 10 years ago

I do not use the option "NET=NO_NETDEV_SUPPORT", should I use it or not?

RomanRobotnik commented 10 years ago

We usually work with that option. You could try and see if it works.

binbowang1987 commented 10 years ago

It is works now, but there is a problem that during work it will change the state from READY_STATE to FAILURE_STATE. I looked in the code, print the data reveived from the can bus and find that there is some errors when receiving datas.

RomanRobotnik commented 10 years ago

Does it happen with the hand is idle or when you send commands? You can try reducing the parameter 'desired_freq' in the config file bhand.yaml and see if the problem remains.

Randa-Almadhoun commented 9 years ago

Same problem here. Initialization fails, commenting out the the code above helped in changing the state into ready state, but it can't move or read the sensors. I am using BH280 + ubuntu 12.04 + peak-linux-7.13 (NET=NO_NETDEV_SUPPORT RT=NO_RT) and I tried different frequencies down to 50 and still facing the same problem.

RomanRobotnik commented 9 years ago

Hi,

I don't have a BH280 to test if this is a problem with this version, but I'm going to ask. So far, all the problems seem to be related to the BH280.

allanis43 commented 9 years ago

Hello all, I recently started using BH280, ubuntu 12.04. i tried to control the barrett hand , but im getting the following error.

[ERROR] [WallTime: 1430505183.328981] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1430505185.568807] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1430505188.201041] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1430505188.544815] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1430505189.185010] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1430505189.776764] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1430505189.976888] /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [WallTime: 1430505199.620941] /bhand_node::handActions: error on INIT_HAND service [ERROR] [WallTime: 1430505199.621750] /bhand_node::canError: Errors on CAN bus

And also when i' trting this command " rosservice call /bhand_node/actions "action: 1"". i'm getting the following error.

ret:false.

By going through above comments , i understod that a few of are facing the same problem. Did anyone solved this issue? If yes, can you please tell me how?

I' trying to solve this from past 2 weeks, but no lucky. i would be happy if anyone helps me.

Thanks, Sai Krishna Allani

Szzhuo commented 6 years ago

HI Roman: I am Working on the Barrett hand BH8-280 with ubuntu 16 and peak-linux-driver version 8.5.1. and I am receiving the same problems as above. I have read through the solutions above and trying to fix the problem in the past week. I couldn't get it fixed.

this is what I get from the terminal

PCANBasic::Initialize: PCAN version info = Release_20171027_n

with action 1 the error message listed as below

[ERROR] [1529680099.204070]: /bhand_node::handActions: error on INIT_HAND service [ERROR] [1529680099.205169]: /bhand_node::canError: Errors on CAN bus [INFO] [1529680099.205920]: BHand::switchToState: FAILURE_STATE PCANBasic::Uninitialize: Port /dev/pcan32 closed successfully [INFO] [1529680105.245997]: BHand::switchToState: INIT_STATE PCANBasic::Initialize: Port /dev/pcan32 opened successfully PCANBasic::Initialize: Port /dev/pcan32 configured PCANBasic::Initialize: PCAN version info = Release_20171027_n

with action 2 and 3 the error message listed below

[ERROR] [1529680112.733178]: /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [1529680137.268327]: /bhand_node::handActions: error on INIT_HAND service [ERROR] [1529680137.269569]: /bhand_node::canError: Errors on CAN bus [INFO] [1529680137.270347]: BHand::switchToState: FAILURE_STATE PCANBasic::Uninitialize: Port /dev/pcan32 closed successfully [INFO] [1529680142.586353]: BHand::switchToState: INIT_STATE PCANBasic::Initialize: Port /dev/pcan32 opened successfully PCANBasic::Initialize: Port /dev/pcan32 configured PCANBasic::Initialize: PCAN version info = Release_20171027_n

and the hand only responded with rosservice call bhand_node/ actions "1" and the barrett hand only responded with rosservice call bhand/ action:1 will initialize the hand, but still return false. and the hand will not response with action 2 and 3 will return false directly with the error message listed above

jsll commented 5 years ago

Hi,

I am running Ubuntu 18.04 with ros melodic and got the Barret hand BH8-282 initialized and to work. However, after I initialize the hand is making a continuous high pitch noise. Does anyone know where this originates from?

I essentially did the following:

1) Installed the peak-linux-driver-8.7.0 2) Insalled pcan-python https://github.com/RobotnikAutomation/pcan_python 3) Commented out self.get_property(FINGER1, ROLE) on line 218

After this I could successfully run the following commands rosservice call /bhand_node/actions "action: 1", rosservice call /bhand_node/actions "action: 2", and rosservice call /bhand_node/actions "action: 3".

I could also set the position of the joints by publishing on the /bhand_node/command topic.

DavidWatkins commented 5 years ago

The high pitched sound is normal. It means the hand has been initialized. It originates from somewhere inside the hand but that is expected behavior.

jsll commented 5 years ago

Yeah so much I understood. But the problem is that the high pitch sound does not stop but instead continuous until I close all the nodes and whatnot.

DavidWatkins commented 5 years ago

That's normal operation. I have not found a way to turn it off. Headphones are probably the only solution.

On Tue, Jan 22, 2019, 4:36 AM Jens Lundell <notifications@github.com wrote:

Yeah so much I understood. But the problem is that the high pitch sound does not stop but instead continuous until I close all the nodes and whatnot.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/RobotnikAutomation/barrett_hand/issues/1#issuecomment-456332409, or mute the thread https://github.com/notifications/unsubscribe-auth/AEKlYXx6F7jhL5VmNhGgTYhozMDDkcvOks5vFtuxgaJpZM4Cd1wv .

emfhasan commented 5 years ago

Hi There, I am Working on the Barrett hand BH8-280 with ubuntu 16 and peak-linux-driver version 8.6.0. and I am receiving the same problems as above. I have read through the solutions above and trying to fix the problem in the past week. I couldn't get it fixed. I essentially did the following:

1- Installed the peak-linux-driver-8.6.0
2- Insalled pcan-python https://github.com/RobotnikAutomation/pcan_python
3- Commented out self.get_property(FINGER1, ROLE) on line 218

when I try to initialize the hand I got the following results: process[bhand_node-2]: started with pid [3883] {'F2_TIP': ['bh_j23_joint', 3], 'F1': ['bh_j12_joint', 0], 'F2': ['bh_j22_joint', 2], 'F3': ['bh_j32_joint', 4], 'F3_TIP': ['bh_j33_joint', 5], 'F1_TIP': ['bh_j13_joint', 1], 'SPREAD_1': ['bh_j11_joint', 6], 'SPREAD_2': ['bh_j21_joint', 7]} [INFO] [1557128673.253408]: /bhand_node: port /dev/pcan32, freq = 250, topic = state, tactile_sensors = True [INFO] [1557128673.253821]: bhand_node: starting PCANBasic::Initialize: Port /dev/pcan32 opened successfully PCANBasic::Initialize: Port /dev/pcan32 configured PCANBasic::Initialize: PCAN version info = Release_20180720_n [ERROR] [1557128762.250749]: /bhand_node::handActions: error on INIT_HAND service [ERROR] [1557128762.251937]: /bhand_node::canError: Errors on CAN bus
[INFO] [1557128762.252849]: BHand::switchToState: FAILURE_STATE PCANBasic::Uninitialize: Port /dev/pcan32 closed successfully [INFO] [1557128767.741936]: BHand::switchToState: INIT_STATE [ERROR] [1557128768.454924]: /bhand_node::handActions: action not allowed in state INIT_STATE PCANBasic::Initialize: Port /dev/pcan32 opened successfully PCANBasic::Initialize: Port /dev/pcan32 configured PCANBasic::Initialize: PCAN version info = Release_20180720_n [ERROR] [1557128784.973075]: /bhand_node::handActions: error on INIT_HAND service [ERROR] [1557128784.974646]: /bhand_node::canError: Errors on CAN bus
[INFO] [1557128784.975419]: BHand::switchToState: FAILURE_STATE PCANBasic::Uninitialize: Port /dev/pcan32 closed successfully [INFO] [1557128790.061772]: BHand::switchToState: INIT_STATE PCANBasic::Initialize: Port /dev/pcan32 opened successfully PCANBasic::Initialize: Port /dev/pcan32 configured PCANBasic::Initialize: PCAN version info = Release_20180720_n [ERROR] [1557128904.681889]: /bhand_node::handActions: error on INIT_HAND service [ERROR] [1557128904.683134]: /bhand_node::canError: Errors on CAN bus
[INFO] [1557128904.684033]: BHand::switchToState: FAILURE_STATE [ERROR] [1557128907.667402]: /bhand_node::handActions: action not allowed in state FAILURE_STATE PCANBasic::Uninitialize: Port /dev/pcan32 closed successfully [INFO] [1557128910.486072]: BHand::switchToState: INIT_STATE PCANBasic::Initialize: Port /dev/pcan32 opened successfully PCANBasic::Initialize: Port /dev/pcan32 configured PCANBasic::Initialize: PCAN version info = Release_20180720_n [ERROR] [1557128911.608389]: /bhand_node::handActions: action not allowed in state INIT_STATE [ERROR] [1557128931.567532]: /bhand_node::handActions: action not allowed in state INIT_STATE
[ERROR] [1557128940.289859]: /bhand_node::handActions: error on INIT_HAND service
[ERROR] [1557128940.291386]: /bhand_node::canError: Errors on CAN bus
[INFO] [1557128940.292094]: BHand::switchToState: FAILURE_STATE [ERROR] [1557128944.408154]: /bhand_node::handActions: action not allowed in state FAILURE_STATE

I tried all the above solutions but still I could not initialize the hand, any help in this please. thank you

RolandZhu commented 4 years ago

Hello, did you guys figured out how to solve this problem? I stuck on the same issue. I used Ubuntu 16 with BH282 and peak-linux-driver-8.7.0. I tried to comment out self.get_property(FINGER1, ROLE) in init_hand but has no luck. The can error message keeps showing at ready state. I feel it might be related to the can bus. Any idea how I could fix this? Thx