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

UM6 Hanging [closed]

asked 2013-11-18 07:20:37 -0600

updated 2014-01-28 17:18:26 -0600

ngrennan gravatar image

Hello,

I am using a CHR um6 imu on a Clearpath Robotics Husky A200. I am using Clearpath's um6 package to get data from the imu. When I send the command rosrun um6 um6_driver _port:=/dev/ttyUSB1 the terminal tells me

[ INFO] [1384801673.621856253]: Successfully connected to serial port.

[ WARN] [1384801673.964338871]: Discarding packet due to bad checksum.

[ WARN] [1384801673.966617365]: Discarded 13 junk byte(s) preceeding packet.

[ INFO] [1384801673.990920390]: Sending command: zero gyroscopes

At this point it just hangs there. I ran rostopic list in another terminal tab, and none of the topics that um6 should be publishing appeared. Anyone else have this problem or know how to fix it?

Thanks

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by Icehawk101
close date 2013-11-25 03:53:23

Comments

Which version of the package are you using?

Ryan gravatar image Ryan  ( 2013-11-18 08:26:01 -0600 )edit

The latest one for Hydro.

Icehawk101 gravatar image Icehawk101  ( 2013-11-18 08:41:21 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2013-11-18 09:21:14 -0600

updated 2013-11-24 09:46:18 -0600

Hi, I'm the author of the package. Two quick suggestions:

First, confirm that your UM6 is indeed sending data. Check it with picocom, for example:

picocom -b 115200 /dev/ttyUSB1

It's binary output, but you should see snp packet headers in among the noise. Ctrl-A Ctrl-Q to exit from picocom.

Second, try turning on debug output for the node, which may give more clues as to what's gone wrong. Add the following line to /opt/ros/hydro/share/ros/config/rosconsole.config:

log4j.logger.ros.um6=DEBUG

And then roslaunch the node with the --screen option.


To follow up, the structure of theum6 driver is that messages all get published at once by the publishMsgs function. This function only gets called when a trigger packet arrives. This has been set to be the temperature report, which the UM6 always publishes last in its output batch. It's possible that for some reason your UM6 doesn't produce that message, or the configuration string which is supposed to turn on the temperature output isn't getting set.

Do you know which version of the firmware you have? You may be able to upgrade the firmware to a more recent version which would provide the temperature packet.

Alternatively, feel free to fork the driver on Github and provide a parameter which uses some other message to trigger the ROS publishers (for example, UM6_ERROR_COV_30, which is the one right before UM6_TEMPERATURE).

edit flag offensive delete link more

Comments

Hi Mike, I can see the headers when running picocom, and when I run with debug output on it says > Received packet [hex #] with batched (2 or 4) data. So it seems like data is being received. It still is not publishing any topics though when I run `rostopic list`.

Icehawk101 gravatar image Icehawk101  ( 2013-11-19 03:03:15 -0600 )edit

Hey Icehawk, I've updated my answer with some other suggestions; please take a look.

mikepurvis gravatar image mikepurvis  ( 2013-11-24 09:47:13 -0600 )edit

Hey Mike, I am using UM1B. I shall update to the latest firmware. Thanks for the help.

Icehawk101 gravatar image Icehawk101  ( 2013-11-25 02:59:43 -0600 )edit

Updated the firmware and ros is now publishing the topics. Thanks for your help Mike.

Icehawk101 gravatar image Icehawk101  ( 2013-11-25 03:30:04 -0600 )edit

Awesome, glad to hear!

mikepurvis gravatar image mikepurvis  ( 2013-11-26 00:46:05 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2013-11-18 07:20:37 -0600

Seen: 528 times

Last updated: Nov 24 '13