ethz-asl / asctec_mav_framework

Framework for data aquisition and position control to be used with the highlevel processor of Ascending Technologies helicopters
http://www.ros.org/wiki/asctec_mav_framework
36 stars 40 forks source link

asctec_hl_firmware with ubuntu 16 kinetic #79

Open DentOpt opened 5 years ago

DentOpt commented 5 years ago

Hi,

I am trying to make the mastermind connect to the firefly HL processor of the autopilot board to use ROS. For this purpose, I have build the asctec_hl_firmware from the current asctec_mav_framework master branch. AI had problems to get openocd running on my Ubuntu 16 system, I have instead flashed the HL processor using FlashMagic. Unfortunately, now I run the current hl ros interface on the mastermind, I get communication errors:

checksum error for packet 4 ,resyncing 
checksum error for packet 14 ,resyncing 
checksum error for packet 14 ,resyncing 

I have seen some people having the same problem here before, but no solution has been found.

Thanks and best regards, Jan

SonOfSeasons commented 5 years ago

Hi Jan,

I am having a very similar problem to yours. I am using a Pelican with a Mastermind trying to communicate with the HL processor of the autopilot using ROS. I have build the asctec_hl_firmware with no problem and I have flashed this new firmware with both Flashmagic and openocd successfully. I have attached the modified configuration file that I used for openocd. lpc2xxx_asctecusbjtag05-1.txt

Regarding the communication between the Mastermind and the HL, I believe that the HL firmware version is not working properly with newer LL firmware versions. When I connect the LL processor to a Windows machine and use the Research Upgrade Tool, I can see that there is an error with the firmware. Curiously, this error persists whether I flash the asctec_hl_firmware or the "official" firmware version 2.0.

version2_mod

This is fixed when I flash version 3.0, as you can see.

version3

This has lead me to believe that both asctec_hl_firmware and the "official" 2.0 version are not compatible with the LL firmware in version 3.x.

Two potential solutions occur to me:

For the moment I will try to see if I can flash a lower version into the LL controller and report back my findings. What do you think? Do you have any suggestion?


Update:

I tried with a different LL firmware, but the problem persists.

With LL firmware 2.x, HL firmware 3.x is recognized, but version 2.x and asctec_hl_firmware is not.

2v-3v

2v-2v

I guess I could try the other potential solution and modify firmware 3.x to be used with ROS, just as asctec_hl_firmware is a modification of 2.x. Any idea of any other potential solution?

Thank you.

Kind regards, Saul

DentOpt commented 5 years ago

Someone from our Lab resolved this issue. Apparently, the uart start/end bytes for the uart have been defined differently on the firmware and in the rospackage. If you want to have more information, you could try to contact Kremer who solved the issue