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

segway omni 50 ros driver

asked 2013-12-10 05:24:42 -0500

Mike Gao gravatar image

updated 2014-04-20 14:09:43 -0500

ngrennan gravatar image

Hi! Is there ros driver for segway omni 50? I tried segway-rmp-node, but the connection between the laptop and the segway always fails, and the error message is "FTD2XX error while opening the usb port: FT_DEVICE_NOT_OPENED". Also I tried a ros driver for this platform got from here: http://www.hsi.gatech.edu/hrl-wiki/index.php/Thoughts_on_the_Segway_RMP_50_Omni. The driver is written in python, but the connection problem persists when the driver tries to claim the interface (segway.py, L168:self.segway.claimInterface(0)) , and the error message is "Device is Busy". I use ros hydro with Ubuntu 12.04 32bit. Maybe I do not configure the interface correctly, (I do give the read/write permission of the usb interface to the driver following this: http://unix.stackexchange.com/questions/25258/ttyusb0-permission-changes-after-restart), thus I appreciate any suggestion from you!

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
-1

answered 2014-05-14 02:24:50 -0500

pnambiar gravatar image

I tried installing the serial library and then libsegwayrmp. Looks like the serial library is not getting installed properly. When I compile libsegwayrmp, I still get the message that serial connection is not supported. Any leads will be appreciated.

edit flag offensive delete link more

Comments

This should be a new question or a comment. This is not an answer to the above question.

William gravatar image William  ( 2014-05-14 08:53:00 -0500 )edit

Ask a new question and tag it with `serial` and `libsegwayrmp`. Also provide details as to how you built and installed serial and provide output from commands like CMake on the build of `libsegwayrmp`.

William gravatar image William  ( 2014-05-14 08:54:48 -0500 )edit
0

answered 2013-12-10 07:20:13 -0500

William gravatar image

updated 2014-05-14 08:53:23 -0500

I'm not aware if the omni 50 would work or not with my Segway library. It depends on the communication spec it uses, but the error you are getting doesn't sound like a comm spec problem, have you tried using my segway-rmp-node with serial mode? The FTDI mode does not work if linux has converted the Segway connection into virtual serial device.

You can also use the GUI that comes with the plain library, 'libsegwayrmp'. To use the GUI you'll need to build it from source:

git clone https://github.com/segwayrmp/libsegwayrmp
cd libsegwayrmp
make
./bin/segwayrmp_gui

This GUI will make it much easier to test out your Segway.

P.S., I am patching the libsegwayrmp package to install the GUI tool by default so that you won't have to build it from source.

edit flag offensive delete link more

Comments

Some feedbacks: I have tried to establish the communication using the gui. The communication can be established with serial mode, but the serial mode is not suitable for my application.

Mike Gao gravatar image Mike Gao  ( 2013-12-12 09:31:46 -0500 )edit

The usb mode does not work, keeps reporting the "NOT_OPENED" error message, it is like that the device is not switched on at all. What do you mean by "The FTDI mode does not work if linux has converted the Segway connection into virtual serial device."? Is there way to revert this? Thanks!

Mike Gao gravatar image Mike Gao  ( 2013-12-12 09:34:28 -0500 )edit

P.S., I think the communication protocol at the low level across the segway products are more or less the same, the main difference is the conversion parameters for transforming the raw state information received from the platform.

Mike Gao gravatar image Mike Gao  ( 2013-12-12 09:38:10 -0500 )edit

@Mike Gao If the serial mode works and you want the FTDI to work, then I beleive you have to blacklist the ftdi_sio kernel module in a udev rule. I could never find a way to disable it for just one device. The problem with this solution is that if you have other ftdi usb-serial converters in your system then it will not work.

William gravatar image William  ( 2013-12-12 10:03:13 -0500 )edit

Also, the newer segwayrmp's have different communication protocol, the RMP 440x and similar segways are know not to work with my library.

William gravatar image William  ( 2013-12-12 10:03:59 -0500 )edit

New feedback: I have written an udev rule with script to automatically detach the serial driver when the segway is plugged in, and it works for two segway omni platforms which are plugged in at the same time.

Mike Gao gravatar image Mike Gao  ( 2013-12-13 02:28:01 -0500 )edit

And your library can control the platform and read state data from it, at least I tested the segway_example.cpp with our segway omni 50 platform, and it moved under the control of the program.

Mike Gao gravatar image Mike Gao  ( 2013-12-13 02:31:10 -0500 )edit

But I still lack the conversion parameters of our platform used to transform the received raw state data, and there is also no available program guide for it at hand. If I had them, I do not think it would be too complex to write a ros driver for the platform based on your library.

Mike Gao gravatar image Mike Gao  ( 2013-12-13 02:36:48 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2013-12-10 05:24:42 -0500

Seen: 467 times

Last updated: May 14 '14