amor-ros-pkg / rosaria

Repository for the amor-ros-pkg/rosaria package (renamed to conform to package naming conventions and migrated from http://code.google.com/p/amor-ros-pkg)
28 stars 76 forks source link

Bad packet bad checksum #65

Open khuechuong opened 3 years ago

khuechuong commented 3 years ago

I got this error and I am not sure what packet 0x20 or 0x32 means. Is it a hardware issue? Any help is appreciated! Thank you!

[ INFO] [1625177470.016575528]: RosAria: set port: [/dev/ttyUSB0] Connnecting to robot using TCP connection to localhost:8101... Could not connect to simulator, connecting to robot through serial port /dev/ttyUSB0. Syncing 0 Syncing 1 Syncing 2 Connected to robot. Name: UNR_63 Type: Pioneer Subtype: seekurjr ArConfig: Config version: 2.0 Loaded robot parameters from /usr/local/Aria/params/seekurjr.p ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x20) Robot Serial Number: SKRJ0063 ArRobotConnector: Connecting to MTX batteries (if neccesary)... ArRobotConnector: Connecting to MTX sonar (if neccesary)... [ INFO] [1625177471.122501187]: This robot's TicksMM parameter: 0 [ INFO] [1625177471.124512468]: This robot's DriftFactor parameter: 0 [ INFO] [1625177471.126114300]: This robot's RevCount parameter: 0 [ INFO] [1625177471.175764378]: rosaria: Setup complete ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) [ INFO] [1625177471.312259232]: RosAria: publishing new recharge state 0. [ INFO] [1625177471.312405153]: RosAria: publishing new motors state 0. ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobot::myPacketReader: Timed out (4) at 7368 (200 into cycle after sleeping 200) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobot::myPacketReader: Timed out (4) at 12277 (200 into cycle after sleeping 200) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x32) ArRobot::myPacketReader: Timed out (4) at 17187 (200 into cycle after sleeping 200)

reedhedges commented 3 years ago

0x20 is the CONFIG packet, 0x32 is the SIP. (Packet protocol is documented in the Seekur Jr. manual. If you don't have a copy I Can send you one.)

Did you build RosAria against AriaCoda or an "official" ARIA release from MobileRobots?

Are you running this on an original onboard computer in the Seekur Jr. or your own? How is the computer connected to the Seekur Jr. microcontroller? (USB serial converter or computer's built in serial port?)

The Seekur firmware was known for occasionally sending packets with bad checksums but if it's more than occasional (or all packets) then there is something wrong somewhere.

khuechuong commented 3 years ago

Thank you for getting back to me so quickly! I used the deb pkg 16 since I couldn't figure out how to make RosAria work with AriaCoda, but I do copy some code from AriaCoda to the Aria in my usr/local/Aria/src. I connected the seekur from microcontroller then use a DB9 adapter cable to convert to to usb and plug it into my computer. It's a problem because I can't publish anything and subcribe topic gives me 0's.

What's received packet type ID 0x32/0x20? does that mean it only receive those 2? How many ID is it suppose to receive? 41?

Also, I don't know if there is an original onboard computer so I just connect to it my computer.

This might be nothing, but one of the microcontroller's red light keeps blinking.

Another problem I had was the joystick light didn't even turn on for testing the movement.

And I'd like a copy of the manual packet document.

reedhedges commented 3 years ago

It looks like it didn't receive the CONFIG packet correctly and is not receiving any other packets correctly. I would double check the wiring, and if you have another USB adapter you can try that as well. We tested a few and had good luck with FTDI products, or adapters with an FTDI chipset inside, see https://web.archive.org/web/20180205223833/http://robots.mobilerobots.com/wiki/USB_Serial_Port_Adapters .

You could also test it with a fresh install of the debian package with no modifications. You can try some of the example programs in examples/ like simpleConnect, demo, etc. I don't have any hardware to test AriaCoda with, only the simulator, so I could have introduced a bug.

Any onboard computer would be either in the front part or back part, mounted horizontally near the top. You would be able to see it from the battery compartment, including most of the cable connections. If it's also connected by serial connection and running (especially software running automatically) there is a chance it could be interfering, I don't remember exactly how the internal/external serial ports are connected in the Seekur Jr.

reedhedges commented 3 years ago

Send me an email (reedhedges@gmail.com) and I can send you more info about manuals.

khuechuong commented 3 years ago

I am using the FTDI adapter but I could buy a new one. Also, is there any specific wiring I should check? Like the J2 connection for computer to get/send data to seekur jr?

Also it's hard to do demo since those programs are connected to serial port ttyS0 while I am connected to USB0 and I am not sure where to change it

reedhedges commented 3 years ago

Make sure the USB adapter is an RS-232, (+12V [or 5-15V]) version. TTL (+3.3V) probably won't work.

To specify serial port with ARIA demo, simpleConnect, etc, use -robotPort command line argument, e.g. ./demo -robotPort /dev/ttyUSB0

Bscout2011 commented 3 years ago

Hi @reedhedges, I am @khuechuong 's colleague.

We used another USB to Serial cable but the same issue

The demo program will start ok and then produces Warnings about bad packet checksums from packet types 0x32 which I think is a Server Information packet, 0xf8 which is the joy stick packet type, and 0x1 which I think is the OPEN command.

Attached is a picture of the microcontroller. Two LEDS are red, reference designators D6 and D4.

edit: I noticed we don't have bumpers installed and the manual clearly states the robot will not operate unless they are installed and functioning.

IMG_8838

joaocandre commented 11 months ago

I'm also encountering a similar issue with an old Pioneer 3D-X, using a RS232-USB cable.

When running the demo, I get a handful of Warning: bad packet, bad checksum (received packet type ID 0x20: Robot Config Packet) warnings right at the start, and then I randomly get multiple ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x33: SIP) and ArRobot::myPacketReader: Timed out (4) at 52830 (200 into cycle after sleeping 194); even though the demo modes mostly work (some keybindings are a bit unresponsive) and it still reports the average/nominal 10 SIP packages per second received.

So I'm left wondering if it's caused by the cable, expected/acceptable under normal operation, of if it's caused by the configuration/software.

reed-adept commented 11 months ago

I remember certain USB serial converters causing this problem. Sometimes there is a bit of a delay or buffering when reading from them, or a buffer of some kind fills and data is not complete, especially on windows. Or the data somehow gets corrupted in some other way.

(There was also some kind of bug or different behavior in the "Seekur" robot firmware that also caused a similar problem and generated this warning sometimes that I don't think was ever fixed.)

See https://web.archive.org/web/20150921130501/http://robots.mobilerobots.com/wiki/USB_Serial_Port_Adapters

We had good results with genuine FTDI devices.

If ARIA is receiving only an occasional corrupted SIP packet from the robot, then it is usually ok (since each SIP packet (0x33) has full state data and the next one will contain new and up-to-date data). Getting bad CONFIG packets could, however, potentially be a problem since these are only sent once at the start of the connection (or you can create an ArConfigPacketReader object in your code and issue a CONFIG command to receive the data.)

On Thu, Oct 12, 2023 at 11:29 AM João André @.***> wrote:

I'm also encountering a similar issue with an old Pioneer 3D-X, using a RS232-USB cable.

When running the demo, I get a handful of Warning: bad packet, bad checksum (received packet type ID 0x20: Robot Config Packet) warnings right at the start, and then I randomly get multiple ArRobotPacketReceiver::receivePacket: Warning: bad packet, bad checksum (received packet type ID 0x33: SIP) and ArRobot::myPacketReader: Timed out (4) at 52830 (200 into cycle after sleeping 194); even though the demo modes mostly work (some keybindings are a bit unresponsive) and it still reports the average/nominal 10 SIP packages per second received.

So I'm left wondering if it's caused by the cable, expected/acceptable under normal operation, of if it's caused by the configuration/software.

— Reply to this email directly, view it on GitHub https://github.com/amor-ros-pkg/rosaria/issues/65#issuecomment-1759852387, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXAYANUQJR37PL2GT2QF7TX7AED5ANCNFSM47VTRGLQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>