Tuesday, March 18, 2014

Compile ROS' ardrone_autonomy on ARM:

This is page shows how to install the is the ROS driver to connect to the ARDrone, ardrone_autonomy.

Requirements

- ROS
- Ubuntu 13.04 (Raring Ringtail) 

Install dependencies

sudo apt-get install daemontools libsdl1.2-dev libxml2-dev libudev-dev libiw-dev

Compile and install

#Build env setup:
mkdir -p ~/ros/ardrone
cd ~/ros/ardrone

#Get the sources:
git clone https://github.com/AutonomyLab/ardrone_autonomy.git -b fuerte-devel

Source modifications to compile on ARM architecture

#ARM patch:
wget https://gist.githubusercontent.com/mtourne/7258641/raw/b86f252bc0a3b0027a2bd2f9f6c2912914921f5d/ardrone_autonomy_armv7.patch

cd ~/ros/ardrone/ardrone_autonomy
patch -p1 < ../ardrone_autonomy_armv7.patch
rm ../ardrone_autonomy_armv7.patch

Edit ~/ros/ardrone_autonomy/CMakeLists.txt, to have swscale before avcodec avutil in the link libraries:

Replace:
target_link_libraries(ardrone_driver pc_ardrone avcodec avutil swscale vlib  sdk SDL )
with:
target_link_libraries(ardrone_driver pc_ardrone swscale avcodec avutil vlib  sdk SDL )

Add to ROS and compile:
#Add to ROS
rosstack profile && rospack profile

# Update ROS_PACKAGE_PATH for this session
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/ros/ardrone

# Update ROS_PACKAGE_PATH for every session
echo -e '\n\n#ardrone_autonomy ROS path:\nexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/ros/ardrone/ardrone_autonomy' >> ~/.bashrc 

#Compile
cd ~/ros/ardrone/ardrone_autonomy
./build_sdk.sh && rosmake ardrone_autonomy

References

5 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. It's possible to compile on arm pi processor ?
    Best regards.

    ReplyDelete
  3. I'm guessing you mean raspberry pi. I have not tried, but the raspi has a ARMv6 CPU...so I am guessing you could run into some problems compiling on a raspi.

    ReplyDelete
    Replies
    1. Sorry, you're right, I'm trying to do that. I hope it would be possible.

      Delete
  4. This comment has been removed by the author.

    ReplyDelete