Code Monkey home page Code Monkey logo

Comments (5)

whoenig avatar whoenig commented on August 16, 2024

The two dependencies which are not included are VICON and Phasespace SDKs; both are excluded for legal reasons. Phasespace is not built by default, so you won't need that repository. For Vicon follow the instruction on github or http://crazyswarm.readthedocs.io/en/latest/installation.html.

I am not sure about your problem with the missing object_tracker. The installation instructions on readthedocs were recently created on a freshly installed machine.

We don't use vicon_bridge because it doesn't provide low-level access. Our solution gets the raw marker point cloud and does the tracking using ICP.

from crazyswarm.

robotsorcerer avatar robotsorcerer commented on August 16, 2024

I am either missing something or something is not right. The build script cd's into each subfolder within crazyswarm and attempts to recursively clone the submodules. If the phasesdk is not required, why did you include it as part of the installation script? The script prompts for authentication credentials when it gets to the instructions for phase_sdk and since the repo is either not public or non-existent, users' credentials do not suffice in cloning the repo.

Aside from that, I did set up the vicon libraries and include files as you described here but still catkin_make fails in finding ExecuteTrajectoryAction.h. I did a quick search on your repo and this header is not included so I am assuming it is a message_generation file or something.

Here are the relevant portions of the trace:

home/hivemind/crazyswarm/ros_ws/src/crazyflie_ros/externalDependencies/libmotioncapture/src/vicon.cpp:4:30: fatal error: vicon_sdk/Client.h: No such file or directory
compilation terminated.
crazyflie_ros/externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/build.make:86: recipe for target 'crazyflie_ros/externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/src/vicon.cpp.o' failed
make[2]: *** [crazyflie_ros/externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/src/vicon.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....

My Client.h is in vicon_sdk/include/vicon_sdk.

Also,

[  5%] Building CXX object crazyflie_ros/crazyflie_controller/CMakeFiles/crazyflie_controller.dir/src/controller.cpp.o
CMakeFiles/Makefile2:1049: recipe for target 'crazyflie_ros/externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/all' failed
make[1]: *** [crazyflie_ros/externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/home/hivemind/crazyswarm/ros_ws/src/crazyflie_ros/crazyflie_controller/src/controller.cpp:9:58: fatal error: crazyflie_controller/ExecuteTrajectoryAction.h: No such file or directory
compilation terminated.
crazyflie_ros/crazyflie_controller/CMakeFiles/crazyflie_controller.dir/build.make:62: recipe for target 'crazyflie_ros/crazyflie_controller/CMakeFiles/crazyflie_controller.dir/src/controller.cpp.o' failed
make[2]: *** [crazyflie_ros/crazyflie_controller/CMakeFiles/crazyflie_controller.dir/src/controller.cpp.o] Error 1
CMakeFiles/Makefile2:4619: recipe for target 'crazyflie_ros/crazyflie_controller/CMakeFiles/crazyflie_controller.dir/all' failed
make[1]: *** [crazyflie_ros/crazyflie_controller/CMakeFiles/crazyflie_controller.dir/all] Error 2

I am on ROS Kinetic, Ubuntu 16.04. Did you test the code on similar machines?

from crazyswarm.

robotsorcerer avatar robotsorcerer commented on August 16, 2024
  1. It seems it is looking for vicon_sdk in ros_ws/src/crazyflie_ros/externalDependencies/libmotioncapture/externalDependencies/. In your documentation, you had specified that the vicon_sdk files be placed in ros_ws/src/crazyflie_ros/externalDependencies/vicon_sdk but this is incorrect actually as the calling code looks for the Client.h file in the former directory. Placing the vicon_sdk folder in externalDependencies/libmotioncapture/externalDependencies/ seems to fix the Client.h issue.

  2. One other thing that I think should be addressed is that the vicon datastream sdk folder does not have Client.h but rather a file named DataStreamClient.h. Renaming this header to Client.h seems a good enough fix for now.

  3. I had problems getting manager.cpp within crazyflie_manager locating crazyflie_driver . I noticed that crazyflie_driver is listed as a crazyflie_manager catkin_DEPENDS and is also listed in the package manifest list but it is not find_packaged. I find_packaged crazyflie_driver within crazyflie_manager 's CMakeLists.txt before the compilation could proceed.

  4. Lastly, manager.cpp in crazyflie_manager depends on crazyflie_driver, yet it is not specified as a catkin_exported_targets dependency in the crazyflie_manager package. This meant header files compilable from srv/msg files were not found with catkin_make during the process of compilation (since catkin_make is a parallel compilation tool). To allow message generation targets to be built before any programs that depend on them, I declared an explicit dependencies in crazyflie_driver's CMakeLists.txt. Something of the sort:

add_dependencies(crazyflie_add ${${PROJECT_NAME}}_EXPORTED_TARGETS ${catkin_EXPORTED_TARGETS})

following the catkin 0.6.1 direction available here i.e.,

every target that directly or indirectly uses one of your message headers must declare an explicit dependency.

In my opinion, catkin_make is too much trouble for packages that generate headers used by other packages and I generally go with the catkin build tool available here.

If you would like to merge the changes to your documentation and code, I can send a PR.

Thanks though!

from crazyswarm.

whoenig avatar whoenig commented on August 16, 2024

Hi,
Thank you for your detailed analysis! If you already made the changes, a PR would be very helpful for issues 3 and 4.
Regarding 1 and 2: Which SDK are you using? We tested with 1.6, and things might have changed slightly with the newer version.
Thanks,
Wolfgang

from crazyswarm.

robotsorcerer avatar robotsorcerer commented on August 16, 2024

a PR would be very helpful for issues 3 and 4.

Yes, I will be sending the PRs to the submodules that 3 and 4 affect. Thanks!

Regarding 1 and 2: Which SDK are you using? We tested with 1.6, and things might have changed slightly with the newer version.

I downloaded the most recent sdk from the vicon website: vicon_sdk 1.7. Perhaps this was the cause of the error and it is perhaps worth adding a caveat in the documentation about this.

from crazyswarm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.