Rosanswers logo

Hi all,

I am struggling with the katana_driver in ROS (hydro) for the 6M180 arm. When I try to launch the Katana node, I get the following error:

process[katana-3]: started with pid [24264] [ INFO] [1414017395.500394067]: trying to connect to katana (serial port: /dev/ttyS0) ... [ERROR] [1414017395.500853297]: Exception during initialization: 'Cannot get/set attributes on '/dev/ttyS0''

. .

Does it mean the arm has to be connected serially? Or I will have to use a USB to serial converter because I have connected it via USB. But here is another question, isn't that USB treated as a network device?

Could anyone please help how to connect the arm to the laptop in order for katana_driver to work properly?

Any comments/suggestions are most welcome.

Thank you,

Muhammad Tufail

Originally posted by tufail on ROS Answers with karma: 18 on 2014-10-22

Post score: 0


1 Answer 1


Rosanswers logo

Here is how to connect to the Katana via USB. These instructions are tested on our Katana 450 6M90a with an internal control board (i.e., a "base" to mount the arm). You are indeed correct that when you connect the Katana via USB, it acts as a USB network device.

  • Connect the arm via USB and switch it on.

  • Since the arm doesn't have a DHCP server, you need to configure the network manually. Open up NetworkManager and create a new connection for the USB network adapter interface:

    • IP address: 192.168.1.* , where * is anything in the range [2-255], e.g.
    • network mask:
    • no gateway (
  • The arm should now respond to ping If it doesn't, don't continue and fix this problem first.

  • Make sure that the katana parameters are properly set: use_serial = false and ip = "" (see the katana wiki page ). These are the defaults, but e.g. katana_300_6m180.launch changes these defaults.

If you still have problems, please edit your question and include the following information:

  • What Katana arm do you have, exactly? Is it e.g. a Katana 300 6M180? Does it have an internal/external control board or none?
  • What ROS version are you using?
  • What's your katana_driver branch? Did you make any local changes?
  • What launch files are you starting?

Answers to your reply:

Error when launching katana.launch: which first says "trying to connect to katana (serial port:/dev/ttyS0) and then says cannot get/set attributes on '/dev/ttyS0'.

Edit the katana_300_6m180.launch file and remove the line where it says use_serial (or set the param to false).

Error when launching katana_300_6m180.launch: says the parameter katana_type was not set!

You shouldn't launch that file directly; instead, use katana.launch, then this error doesn't occur. That file includes katana_300_6m180.launch.

fatal error: armadillo: No such file or directory

Just do the following:

sudo rosdep init
rosdep update
rosdep install katana_driver

If that doesn't work, just do the following directly:

sudo apt-get install libarmadillo-dev

Originally posted by Martin Günther with karma: 11816 on 2014-10-24

This answer was ACCEPTED on the original site

Post score: 0

Original comments

Comment by tufail on 2014-11-04:
Everything worked fine. Thanks.

I didn't have to set the use_serial param to false as the katana I have is 400 6M180 (not 300). So for I have been setting the KATANA_TYPE environment variable to katana_300_6m180 which was wrong.

I installed the `libarmadillo-dev' and rosmake worked too.

Comment by João Almeida on 2015-10-08:
Hi Martin, I have exactly this problem. My computer doesn't have a serial port so I'm using a Prolific Serial to USB converter to connect to the Katana. However I didn't understand exactly how to set up the network interface for the USB port. Could you please try to explain me exactly how to do it?

Comment by Martin Günther on 2015-10-09:
I guess if you're using a serial to USB converter, it should show up as a serial port, right? So you shouldn't set up any network interface, but set use_serial = true.

Comment by João Almeida on 2015-10-13:
Thank you Martin! We fixed the problem by creating a symbolic link between the '/dev/ttys0/ and the '/dev/ttyUSB0'.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.