Rover on BeagleBoneBlue - does not connect to MissionPlanner

Hello,
I’m trying to get rover running on a BeagleBoneBlue following the quick start guide (BeagleBone Blue — Rover documentation). Unfortunately I can’t establish a connection with Mission Planner since the ardurover.service starts with a failure:

● ardurover.service - ArduRover Service
Loaded: loaded (/lib/systemd/system/ardurover.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Tue 2024-03-19 19:00:40 UTC; 89ms ago
Process: 1103 ExecStart=/usr/bin/ardupilot/ardurover -C /dev/ttyO1 -A udp:192.168.0.10:14550 -B /dev/tt Main PID: 1103 (code=exited, status=1/FAILURE)

I’m pretty new to Linux, so every help would be very much appreciated.

Hi @plambrec
First of all, your beagle is not running ardurover once there is a FAILURE status.
You need to check this one first - use
systemctl status ardurover.service
Second one I don’t know what is your network topology so, how are you connecting to your beagle ? using the usb port or in your wifi network?
If is your ground control a windows machine disable your firewall.

Hi @juvinski,
Thanks a lot for your fast reply, I really appreciate it!! The ardurover service is definitely not running.
‘systemctl status ardurover.service’ gives me:

ardurover.service - ArduRover Service
Loaded: loaded (/lib/systemd/system/ardurover.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Tue 2024-03-19 19:04:41 UTC; 1s ago
Process: 1296 ExecStart=/usr/bin/ardupilot/ardurover -C /dev/ttyO1 -A udp:192.168.0.10:14550 -B /dev/tt Main PID: 1296 (code=exited, status=1/FAILURE)

Mar 19 19:04:42 rover systemd[1]: ardurover.service: Service RestartSec=1s expired, scheduling restart.
Mar 19 19:04:42 rover systemd[1]: ardurover.service: Scheduled restart job, restart counter is at 264.
Mar 19 19:04:42 rover systemd[1]: Stopped ArduRover Service.
Mar 19 19:04:42 rover systemd[1]: Started ArduRover Service.
Mar 19 19:04:42 rover ardurover[1300]: /usr/bin/ardupilot/ardurover: /lib/arm-linux-gnueabihf/libc.so.6:
Mar 19 19:04:42 rover ardurover[1300]: /usr/bin/ardupilot/ardurover: /lib/arm-linux-gnueabihf/libc.so.6:
Mar 19 19:04:42 rover systemd[1]: ardurover.service: Main process exited, code=exited, status=1/FAILURE
Mar 19 19:04:42 rover systemd[1]: ardurover.service: Failed with result ‘exit-code’.

How to check what is preventing the service from running?

About the connection to the BeagleBone I’m using wifi.

First disable the ardurover service to run with stop or disable it.
Second I recommend run using command line like
/usr/bin/ardupilot/ardurover -C /dev/ttyO1 -A udp:192.168.0.10:14550

And check what is the error but for the cut you send I believe you downloaded ardurover from somewhere because what is appearing is a problem with libc (Mar 19 19:04:42 rover ardurover[1300]: /usr/bin/ardupilot/ardurover: /lib/arm-linux-gnueabihf/libc.so.6) but I need the complete line to check.

Here are the complete lines:

debian@rover:~$ sudo /usr/bin/ardupilot/ardurover -C /dev/ttyO1 -A udp:192.168.0.10:14550
sudo: unable to resolve host rover: Name or service not known
/usr/bin/ardupilot/ardurover: /lib/arm-linux-gnueabihf/libc.so.6: version GLIBC_2.33' not found (required by /usr/bin/ardupilot/ardurover) /usr/bin/ardupilot/ardurover: /lib/arm-linux-gnueabihf/libc.so.6: version GLIBC_2.32’ not found (required by /usr/bin/ardupilot/ardurover)

You are having trouble with libc, I recommend you to compile in the beagle itself.

1 Like

Pre-Compiled Ardupilot firmare requires GLIBC_2.33 . check your version ldd --version | grep libc

I had to compile Adupilot on my BBBlue itself beacuse of newer glibc version.

Run below commands on BBBlue, to compile ardupilot (GitHub - imfatant/test), It’ll take 3-4 hours :sweat_smile:

sudo apt-get install g++ make pkg-config python python-dev python-lxml python-pip
sudo pip install future
git clone https://github.com/ArduPilot/ardupilot
cd ardupilot
git branch -a  # <-- See all available branches.
git checkout Copter-3.6  # <-- Select one of the ArduCopter branches.(you can select Ardurover)
git submodule update --init --recursive
./waf configure --board=blue  # <-- BeagleBone Blue.
./waf
sudo cp ./build/blue/bin/a* /usr/bin/ardupilot/ardurover
sudo systemctl enable ardurover.service
sudo reboot;

Again, be sure to set their permissions.sudo chmod 0755 /usr/bin/ardupilot//ardurover/a*

These instructions is for 3.6 you can use 4 or even the master

First of all thanks a lot for the detailed information!! I got up to the point ‘./waf’ and get and got a message to install empy==3.3.4:

debian@beaglebone:~/ardupilot$ ./waf
Waf: Entering directory `/home/debian/ardupilot/build/blue’
you need to install empy with ‘python -m pip install empy==3.3.4’

After successful install of empy ==3.3.4 I get the following:

debian@beaglebone:~/ardupilot$ python -m pip install empy==3.3.4
Looking in indexes: Simple index, piwheels - Simple index
Requirement already satisfied: empy==3.3.4 in /home/debian/.local/lib/python2.7/site-packages (3.3.4)

debian@beaglebone:~/ardupilot$ ./waf
Waf: Entering directory `/home/debian/ardupilot/build/blue’
you need to install empy with ‘python -m pip install empy==3.3.4’

I dont remember if is python 2 or python 3. Have you tried to install on python3 ?
pip3 install empy==3.3.4

It worked with python3 and the build in the BBB was successful.

BUILD SUMMARY
Build directory: /home/debian/ardupilot/build/blue
Target Text (B) Data (B) BSS (B) Total Flash Used (B) Free Flash (B) External Flash Used (B)

bin/antennatracker 1268994 51396 58668 1320390 Not Applicable Not Applicable
bin/arducopter 1808856 82148 74440 1891004 Not Applicable Not Applicable
bin/arducopter-heli 1794632 83200 75272 1877832 Not Applicable Not Applicable
bin/arduplane 1799632 84132 73364 1883764 Not Applicable Not Applicable
bin/ardusub 1572580 67324 70032 1639904 Not Applicable Not Applicable
bin/blimp 1186740 49228 58832 1235968 Not Applicable Not Applicable
bin/ardurover 1626836 72424 74452 1699260 Not Applicable Not Applicable

Build commands will be stored in build/blue/compile_commands.json
‘build’ finished successfully (6h19m34.286s)

Nevertheless when starting the ardurover service it still does not work:

debian@beaglebone:~$ sudo systemctl status ardurover.service
● ardurover.service - ArduRover Service
Loaded: loaded (/lib/systemd/system/ardurover.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2024-03-25 03:08:30 UTC; 552m Process: 1344 ExecStart=/usr/bin/ardupilot/ardurover -C /dev/ttyO1 -A udp:192.168.0.10:14550 - Main PID: 1344 (code=exited, status=203/EXEC)

Have you copy the file ardurover under build/blue/bin to /usr/bin/ardupilot/ardurover ?

Try inside the folder (build/bin/ardurover I think) run manually the ardurover program with the parameters
./ardurover -C /dev/ttyO1 -A udp:192.168.0.10:14550

Yes, I copied ardurover to /usr/bin/ardupilot/ardurover.
I tried to run it manually as you suggested and it worked using superuser privileges.
How to start it at boot automatically?

If I not wrong, the systemct will run as root user.
Take a look at linux - Configuring Systemd Service to run with root access - Server Fault

Sorry for not answering sooner. By accident I dropped the BBB and the USB connector was ripped of the board, so I had to solder on a new one first.
I tried the instructions at the last link you’d posted, but ardurover still doesn’t want to start at boot. As well I tried the instructions at BBBMINI/doc/software/software.md at master · earsneyes/BBBMINI · GitHub, but no luck so far. The only way is to start it manually with ./ardurover -C /dev/ttyO1 -A udp:192.168.0.10:14550. Any idea what I could try next? Thanks a lot!

Hi,

what is the return of the
systemctl status <service_name.service>
? have you checked the dmesg to see a problem?
When you try systemctl start <service_name.service> the ardurover start ?