This document acts as a tutorial on how to set up a Asctec Pelican UAV for autonomous waypoint navigation using ros pakage asctec_mav_framework. We are setting up an Asctec Quadrotor Pelican running with Ubuntu 14.04 and pre-installed ROS-jade.
Table of Contents
- Useful Sites
- System Overview
- Setup Network and SSH
- Install ROS Packages
- Flash Programs in the HLP
- Run the ROS package on Atomboard
- Summary
- References
Useful Sites
Before we start, here are some useful sites for Asctec Pelican Information:
- Asctec Pelican Official Documentation: General Description of the system, user manual, SDK,etc. (some contents are outdated)
- Asctec User Discussion Forum : Great for troubleshooting
- asctec_mav_framework ROS wiki: Interface with HLP
- asctec_drivers: Interface with LLP
Note:
asctec_drivers
is develped to enable on-board computer communicate with Low Level Processor (LLP), whileasctec_mav_framework
enable on-boad computer and High Level Processor (HLP) communication. You need to decide which package to use based on your hardware configuration.
System Overview
The structure of control subsystem of Asctec Pelican is shown below
While the connection ports of AutoPilot Board is
Warning: The documentation of Atomboard on-board computer on AscTec Wiki is based on Atomboard 2 instead of Atomboard 3.
Setup Network and SSH
As we have an easy access to a monitor, a keyboard, and a mouse, we configed the network and ssh using a LVDS screen for the first time. This blog has detailed instruction if you need to set up the network without a screen.
- After pluging in the monitor, keyboard and mouse, turn on the on-board computer. Follow the instruction on the screen to start the GUI. Setup WiFi connection and set up static IP (If you are using hotspot or standby WiFi router, the IP should be static usually). You can check the IP address using
ifconfig
command. - Check if SSH is enabled on atomboard using
systemctl is-enabled ssh
and activesystemctl is-active ssh
. The outputenbaled
andactive
, but if not, go through this link to enable ssh. - Set up ssh on your Master Computer (your PC) use the above link as well.
- Test ssh: Connect your Master Computer to the same WiFi network with Atomboard and try
ssh asctec@IP_OF_ATOMBOARD
and enter the password (should beasctec
). - Configure
ROS_MASTER_URI
on Atomboard. Here we select our master computer to run the ros master, so use your favorite editor to open~/.bashrc
and add - Configure
ROS_MASTER_URI
on Master Computer. Again, use your favorite editor to open~/.bashrc
and add - Now your Asctec Atomboard should be able to communicate with the master computer via ROS and you can run the talker/listener test to test described in ROS Multimachine Tutorialto test the communication.
Install ROS Packages
- Create a new catkin workspace
- git clone
asctec_mav_framework
- Install all the required dependencies
- bullet
- catkin_make
- Calibrate cameras
Flash Programs in the HLP
- Download AscTec SDK
- Setup OpenOCD
- SDK Setup for Linux
- SDK Setup for Windows
Note: If the driver of JTAG is not properly installed, try to update the drivers in the device manager manually and point it to the
JTAG/oocd_link_treiber
subfolder in the AscTec_ARM_SDK installation folder. Windows tends to refuse this driver due to a missing signature. Please search for “Disable Windows Driver Signature Enforcement” for a tutorial on how to temporarily disable this check. Then you should be able to install the driver.
- If you are using Ubuntu 16.04 and openocd 0.8.0 or above, if you run the
sudo openocd -f lpc2xxx_asctecusbjtag05.cfg
when following the official instruction, you will run into this error:
This is because openocd package update changes the syntax and no longer support ft2232. You can choose to either switch back to openocd 0.7.0 (which is not easy) or modify config file
lpc2xxx_asctecusbjtag05.cfg
to this.Refer to this link for the detailed discussion.
- Connect your computer with HLP via JTAG
- Test connection
- Check if the device is plugged in and recognized
- Connect to the device via OpenOCD
- Open a telnet connection to OpenOCD
- Check if the device is plugged in and recognized
- Flash
main.hex
fromastec_hl_firmware
into HLP
Run the ROS package on Atomboard
- change baud rate paramter in
asctec_mav_framework/asctec_hl_interface/launch/fcu_parameters.yaml
from
fcu/baudrate:57600
tofcu/baudrate:460800
- run
roslaunch asctec_hl_interface fcu.launch
- check ROS topics by running
rostopic list
Entries in the Wiki should follow this format:
- Excerpt introducing the entry’s contents.
- Be sure to specify if it is a tutorial or an article.
- Remember that the first 100 words get used else where. A well written excerpt ensures that your entry gets read.
- The content of your entry.
- Summary.
- See Also Links (relevant articles in the Wiki).
- Further Reading (relevant articles on other sites).
- References.
Summary
This tutorial gives an overview on how to set up the Asctec Pelican UAV. In summary, you could first setup the WiFi connection and enable SSH, followed by setting up ROS environment and communication, and then flash the asctec_hl_firmware
into HLP. Now you should be able to ssh to the AscTec Atomboard and read all the sensor data from the autopilot board by running roslaunch asctec_hl_interface fcu.launch
. The next step is to test motors and start your first flight!
References
[1] AscTec Wiki: http://wiki.asctec.de/display/AR/AscTec+Research+Home
[2] AscTec Pelican Network Setup Blog: http://asctecbasics.blogspot.com/2013/06/basic-wifi-communication-setup-part-1.html
[3] AscTec JTAG Driver Setup Blog:
http://asctec-users.986163.n3.nabble.com/Can-t-connect-with-JTAG-td4024671.html
[4] OpenOCD Syntax Error Discussion: http://asctec-users.986163.n3.nabble.com/Cannot-connect-asctec-pelican-with-the-computer-using-JTAG-td4025048.html