Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I found an answer here.

I found an answer here.

EDIT:

So, basically, the answer I found it is not exactly what I want, because that guy use a docker container, but for now it works. So the steps I followed are exactly this:

  1. I downloaded the docker image using: sudo docker pull ros:kinetic-robot-xenial And then followed this steps to run the image: [http://wiki.ros.org/docker/Tutorials/Docker][1]

  2. The I cloned the ardrone_autonomy package in a worksapce, from the above link:

mkdir -p catkin_ws/src cd catkin_ws/src git clone https://github.com/dsapandora/ardrone_autonomy.git apt-get update cd ../ rosdep install --from-paths src --ignore-src -r -y catkin_make

  1. After the error with bswap appears, edit this file: devel/src/ardronelib/ARDroneLib/VP_SDK/VP_Os/linux/intrin.h and replace:

static INLINE uint32_t _byteswap_ulong(uint32_t value) { __asm("bswap %0": "=r" (value): "0" (value));

return value; }

with this:

static INLINE uint32_t _byteswap_ulong(uint32_t value) { int32_t tmp;

__asm __volatile( "eor %1, %2, %2, ror #16\n" "bic %1, %1, #0x00ff0000\n" "mov %0, %2, ror #8\n" "eor %0, %0, %1, lsr #8" : "=r" (value), "=r" (tmp) : "r" (value) );

return value; }

and comment this line: _BitScanReverse(&index, code);

  1. After you do this if you try to give it a catkin_make it should appear the last error which can be resolved "simply" (after you understand what is happening there :) ) just by replacing this line (from the same file as above):

"mov %0, %2, ror #8\n"

with:

"mov %0, %2\n"

and now should work just fine.

I found an answer here.

EDIT:

So, basically, the answer I found it is not exactly what I want, because that guy use a docker container, but for now it works. So the steps I followed are exactly this:

  1. I downloaded the docker image using:

    sudo docker pull ros:kinetic-robot-xenial

    And then followed this steps to run the image: [http://wiki.ros.org/docker/Tutorials/Docker][1]

  2. The I cloned the ardrone_autonomy package in a worksapce, from the above link:

 mkdir -p catkin_ws/src
 cd catkin_ws/src
 git clone https://github.com/dsapandora/ardrone_autonomy.git
 apt-get update
 cd ../
 rosdep install --from-paths src --ignore-src -r -y
 catkin_make

catkin_make
  1. After the error with bswap appears, edit this file: devel/src/ardronelib/ARDroneLib/VP_SDK/VP_Os/linux/intrin.h and replace:

.

 static INLINE uint32_t _byteswap_ulong(uint32_t value) value)

    {
   __asm("bswap %0": %0":
          "=r" (value): (value):
          "0" (value));

(value)); return value; }

}

with this:

static INLINE uint32_t _byteswap_ulong(uint32_t value)
{
  int32_t tmp;

tmp; __asm __volatile( "eor %1, %2, %2, ror #16\n" "bic %1, %1, #0x00ff0000\n" "mov %0, %2, ror #8\n" "eor %0, %0, %1, lsr #8" : "=r" (value), "=r" (tmp) : "r" (value) );

); return value; }

}

and comment this line: _BitScanReverse(&index, code);

  1. After you do this if you try to give it a catkin_make it should appear the last error which can be resolved "simply" (after you understand what is happening there :) ) just by replacing this line (from the same file as above):

"mov %0, %2, ror #8\n"

with:

"mov %0, %2\n"

and now should work just fine.

I found an answer here.

EDIT:

So, basically, the answer I found it is not exactly what I want, because that guy use a docker container, but for now it works. So the steps I followed are exactly this:this (in case the page disappears):

  1. I downloaded the docker image using:

    sudo docker pull ros:kinetic-robot-xenial

    And then followed this steps to run the image: [http://wiki.ros.org/docker/Tutorials/Docker][1]

  2. The I cloned the ardrone_autonomy package in a worksapce, from the above link:

 mkdir -p catkin_ws/src
 cd catkin_ws/src
 git clone https://github.com/dsapandora/ardrone_autonomy.git
 apt-get update
 cd ../
 rosdep install --from-paths src --ignore-src -r -y
 catkin_make
  1. After the error with bswap appears, edit this file: devel/src/ardronelib/ARDroneLib/VP_SDK/VP_Os/linux/intrin.h and replace:

.

 static INLINE uint32_t _byteswap_ulong(uint32_t value)
     {
      __asm("bswap %0":
          "=r" (value):
          "0" (value));

      return value;
    }

with this:

static INLINE uint32_t _byteswap_ulong(uint32_t value)
{
  int32_t tmp;

  __asm __volatile(
    "eor        %1, %2, %2, ror #16\n"
    "bic        %1, %1, #0x00ff0000\n"
    "mov        %0, %2, ror #8\n"
    "eor        %0, %0, %1, lsr #8"
    : "=r" (value), "=r" (tmp)
    : "r" (value)
  );

  return value;
}

and comment this line: _BitScanReverse(&index, code);

  1. After you do this if you try to give it a catkin_make it should appear the last error which can be resolved by replacing this line (from the same file as above):

"mov %0, %2, ror #8\n"

with:

"mov %0, %2\n"

and now should work just fine.