USC-ACTLab / crazyswarm

A Large Quadcopter Swarm
MIT License
320 stars 315 forks source link

Substitute NatNet with Mocap_optitrack to solve NATNET FRAME TIMEOUT #122

Closed glennliu closed 2 years ago

glennliu commented 5 years ago

Hi

We've discussed problems in using Motive with crazyswarm in previous issues #115 #121

Modify code And I found mocap_optitrack is better compatible with different version of Motive. So I substitute NatNet with mocap_optitrack in my crazyswarm_server. The code is updated here,

My Motive version: 1.10.0

After the change, /tf is published at 120Hz, synchronized with rate from Motive.

Confirm frame Because mocap_optitrack use a different coordinator frame. It requires "Y up" at Motive/Data_streaming, rather than "Z up" in NatNet. Also, I build rigid body when drone pointing to mocap x axis direction. rviz1 rviz

To test the frame is correct, I placed drone pointing to mocap x axis (as showed in upper img). And move the drone forward along its own head direction. Then the result is as lower img. I take this as correct x translation. I use this method to test all 3d position and 3d orientation. And confirm frame correct in this way.

LED red and takeoff flipped After program started, LED is in solid red. Then launch program and takeoff, drone flipped quickly. Terminal showed as below, error

Because it keep warming

No updated pose for motion capture object %s

This is the warning come from this part of code, and I didn't change this part. I think there is something wrong when the program try to use function publishRigidBody. But I haven't found why. It would be great if @whoenig can help me take a look.

I'll test more and update the result here.

Best

glennliu commented 5 years ago

mocap_optitrack has interface to read marker position. If motionCapture be tested successful, I'll add it to libobjecttracker.

glennliu commented 5 years ago

I think I successful substitute NatNet mocapObject with mocap_optitrack pose. The changed code is updated here https://github.com/glennliu/crazyswarm. (use "test_mocap" branch")

In launch hover_swarm.launch, there is warning

NATNET FRAME TIMEOUT

This is caused by getLatency function. The old mocap() function still read latency from NatNet. But I think it should not affect cf receive mocap data. So I leave it unchanged.

The problem is that LED always in solid red when placing cf on the ground. But if I place it on my hand, its solid green. Once I place it back on the ground, it change back to red. Real time pose is updated on rviz correctly. I'm not sure what's cause it.

@whoenig could you please give me advice on LED red issues? Thanks

glennliu commented 5 years ago

this issue has nothing common related to #103

Manakoy commented 5 years ago

I also encountered a similar problem when running hover_mocap.launch. I hope to get your help. @glennliu @whoenig Thanks! I am using Ubuntu 18.04, melodic and motive1.10.3

1 I did not get the information from motive, showing NATNET FRAME TIMEOUT. 2 I seem to be connected to crazyflie but the yellow light of crazyflie does not light up. Is this normal?

2019-05-03 19-58-00 的屏幕截图 2019-05-03 19-58-35 的屏幕截图 2019-05-03 19-59-47 的屏幕截图 2019-05-03 19-59-55 的屏幕截图 2019-05-03 20-11-30 的屏幕截图 2019-05-03 20-11-39 的屏幕截图 2019-05-03 22-19-06 的屏幕截图

whoenig commented 5 years ago

Hi, I just pushed a commit that adds proper optitrack support (see https://github.com/USC-ACTLab/crazyswarm/commit/c9362c5972b604f254061ea355c426e10eef7da0). This new version is directly adopted from the NatNetSDK (where I ported their direct packet deserialization example to Linux). I tested it with Motive 2.0 using both streaming of rigid bodies and raw point clouds. Make sure you select "Z-Up" in the streaming configuration in Motive (and enable streaming of markers if you want to use the pointcloud option.)

Let me know if that fixes the problems you are having. I am also planning to release a mocap ROS package based on libmotioncapture.

hanzheteng commented 5 years ago

It would be great if libmocap can be an independent ROS package! As the number of robot grows, we are running out of unique configurations.

Manakoy commented 5 years ago

Hi,@whoenig I have tried the method which you responded to. It is not suitable for motive1.10. Fortunately, it can run in motive2.0 .But I also encountered a new problem, when I pressed the controller to takeoff, crazyflie did not react. 2019-05-04 16-12-05 的屏幕截图 2019-05-04 16-12-08 的屏幕截图 2019-05-04 16-12-12 的屏幕截图

whoenig commented 5 years ago

What is the problem with Motive 1.10? From my understanding it should work in both versions, although I did not have access to Motive 1.10 to test it myself.

For your issue: Which firmware version are you using? If you use the Crazyswarm firmware and have the LED ring, make sure that the LED ring is green. There could also be an issue with the sensor calibration - check the blinking pattern of the red LED (it should blink at 1 Hz).

Manakoy commented 5 years ago

@whoenig HI! I don't know why it can't be used in motive1.10. Because I've tried running motive2.0 and motive1.10 in the same configuration, but only motive2.0 can display rviz's /tf information. Regarding my question, The version information I queried with chooser.py is 1: 0, 1, 0. I think it is because there is a problem between crazyflie and PC communication. I found several phenomena: 1.I can't query the voltage when using the battery function of chooser.py. But other functions in chooser.py are valid. And I can query the voltage by running rosrun crazyflie_tools battery. 2019-05-06 16-49-28 的屏幕截图 2019-05-06 16-48-10 的屏幕截图 2.I am having trouble when i trying to brush crazyflie's nrf firmware. See the picture3 2019-05-06 16-55-44 的屏幕截图 3.I don‘t have LED ring. Regarding the red LED light, it always blink at 2 Hz. Maybe the problem is here. But I don't know how to change it. When I was using cfclient to fly crazyflie, the flashing frequency of the red LED was not 1 Hz, it was 2 Hz. And carzyflie can fly normally.

whoenig commented 5 years ago

It seems like you are running an old NRF firmware that's not compatible (which explains your issues in 1. and 2.). You can try "make BLE=0 flash", or use the crazyflie_tools to flash the pre-built nrf firmware. Regarding 3., I might not remember the correct frequency; if it works with the cfclient, it is likely not a sensor calibration issue.

Manakoy commented 5 years ago

I tried the following methods but did not solve the problem. I still can't check the voltage through chooser.py, and crazyflie can't fly. 1.I update STM and NRF using chooser.py. 2.Then I try to use 'make cload'. 2019-05-09 17-31-45 的屏幕截图 3.I also tried to refresh the firmware with crazyflie_tool. 2019-05-09 17-44-26 的屏幕截图 4.I also tried to use cfclient to refresh the firmware. The firmware package is downloaded from https://github.com/bitcraze/crazyflie-release/releases

whoenig commented 5 years ago

In the previous screenshot of battery check you got an LIBUSB_ERROR_BUSY error, which indicates that the Crazyradio is in use. Make sure that ROS is not connected to the CF when using chooser.py (i.e., shut-down hover-swarm.launch before using chooser.py).

Manakoy commented 5 years ago

Yes, I tried to run the voltage check when hover-swarm.launch is not running. But also did not successfully detect the voltage

lkyfly0765 commented 5 years ago

@glennliu Hi, I am using https://github.com/glennliu/crazyswarm/tree/test_mocap this package to make swarm flight. There is something wrong when I launch the hover_swarm.launch file, show in the following pic.

[ERROR] [1557752341.371983728]: Ignoring transform for child_frame_id "cf1" from authority "unknown_publisher" because of an invalid quaternion in the transform (-nan -nan -nan -nan) [ERROR] [1557752341.376308427]: Ignoring transform for child_frame_id "cf1" from authority "unknown_publisher" because of a nan value in the transform (0.000000 0.000000 0.000000) (-nan -nan -nan -nan)

image

I have no idea what's wrong with it. Thank!

whoenig commented 4 years ago

The latest crazyswarm has proper OptiTrack support, using the NatNet SDK. Please try if that resolves your problem.

lkyfly0765 commented 4 years ago

@whoenig Hi whoenig, I have tried the latest crazyswarm, together with the Natnetsdkcrossplatform package. But there still have something wrong, I am not sure if there is any configuration errors.

I am not sure about why it occurs the what(): set_option: Invalid argument. Could you please help me to figure it out?

The firmware of the crazyflie and the crazyradio is all update to the latest firmware which you provided.

The Following is part of the logs of the command roslaunch crazyswarm hover_swarm.launch

NODES
  /
    crazyswarm_server (crazyswarm/crazyswarm_server)
    crazyswarm_teleop (crazyswarm/crazyswarm_teleop)
    joy (joy/joy_node)
    rviz (rviz/rviz)

auto-starting new master
process[master]: started with pid [4630]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 171571d2-053a-11ea-ae18-34f64bc13130
process[rosout-1]: started with pid [4643]
started core service [/rosout]
process[crazyswarm_server-2]: started with pid [4660]
process[joy-3]: started with pid [4661]
process[crazyswarm_teleop-4]: started with pid [4662]
process[rviz-5]: started with pid [4684]
[ INFO] [1573555764.991148880]: Wait for services...
[ INFO] [1573555764.992241960]: waitForService: Service [/emergency] has not been advertised, waiting...
[ INFO] [1573555765.013889625]: waitForService: Service [/emergency] is now available.
[ INFO] [1573555765.016484269]: Manager ready.
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
  what():  set_option: Invalid argument
[ERROR] [1573555765.158920318]: Couldn't open joystick force feedback!
[ INFO] [1573555765.159008863]: Opened joystick: /dev/input/js0. deadzone_: 0.050000.
[crazyswarm_server-2] process has died [pid 4660, exit code -6, cmd /home/eric/crazyswarm/ros_ws/devel/lib/crazyswarm/crazyswarm_server __name:=crazyswarm_server __log:=/home/eric/.ros/log/171571d2-053a-11ea-ae18-34f64bc13130/crazyswarm_server-2.log].
log file: /home/eric/.ros/log/171571d2-053a-11ea-ae18-34f64bc13130/crazyswarm_server-2*.log

The LED ring on the crazyflie is neither green nor red, it just flashing same as when cf is power on. And in the Rviz there is no cf in it. It looks like there is no connection between cf and crazyradio.

But if I run the vrpn_client_ros in another terminal, the Rivz will show the cf position in it. (Only if a turn on the Vrpn data stream in Motive)

My Motive server IP address is 169.254.41.1, and I have updated the Multicast Address in the cpp files in folder Natnetsdkcrossplatform/src/ .

By the way, I wonder if it right to move the Natnetsdkcrosspaltform package into the Externaldependencies folder?

If there is any instructions about how to configure the parameters correctly under the optitrack mocap system?

The hover_swarm.launch file is configured as follow:

<?xml version="1.0"?>
<launch>
  <arg name="joy_dev" default="/dev/input/js0" />

  <rosparam command="load" file="$(find crazyswarm)/launch/crazyflieTypes.yaml" />
  <rosparam command="load" file="$(find crazyswarm)/launch/crazyflies.yaml" />

  <node pkg="crazyswarm" type="crazyswarm_server" name="crazyswarm_server" output="screen" >
    <rosparam>
      world_frame: "/world"
      # Logging configuration (Use enable_logging to actually enable logging)
      genericLogTopics: ["log1"]
      genericLogTopicFrequencies: [10]
      genericLogTopic_log1_Variables: ["stateEstimate.x", "ctrltarget.x"]
      # firmware parameters for all drones (use crazyflieTypes.yaml to set per type, or
      # allCrazyflies.yaml to set per drone)
      firmwareParams:
        commander:
          enHighLevel: 1
        stabilizer:
          estimator: 2 # 1: complementary, 2: kalman
          controller: 2 # 1: PID, 2: mellinger
        ring:
          effect: 16 # 6: double spinner, 7: solid color, 16: packetRate
          solidBlue: 255 # if set to solid color
          solidGreen: 0 # if set to solid color
          solidRed: 0 # if set to solid color
          headlightEnable: 0
        locSrv:
          extPosStdDev: 1e-3
          extQuatStdDev: 0.5e-1
        kalman:
          pNAcc_xy: 1.0
          pNAcc_z: 2.0
      # tracking
      motion_capture_type: "optitrack" # one of none,vicon,optitrack,qualisys,vrpn
      object_tracking_type: "motionCapture" # one of motionCapture,libobjecttracker
      send_position_only: False # set to False to send position+orientation; set to True to send position only
      # vicon_host_name: "vicon"
      optitrack_host_name: "169.254.41.1"
      # qualisys_host_name: "10.0.5.219"
      # qualisys_base_port: 22222
      # vrpn_host_name: "vicon"
      save_point_clouds: ~/pointCloud.ot
      print_latency: False
      write_csvs: False
      force_no_cache: False
      enable_parameters: True
      enable_logging: False
    </rosparam>
  </node>

  <node name="joy" pkg="joy" type="joy_node" output="screen">
    <param name="dev" value="$(arg joy_dev)" />
  </node>

  <node pkg="crazyswarm" type="crazyswarm_teleop" name="crazyswarm_teleop" output="screen">
    <param name="csv_file" value="$(find crazyswarm)/launch/figure8_smooth.csv" />
    <param name="timescale" value="0.8" />
  </node>

  <node name="rviz" pkg="rviz" type="rviz" args="-d $(find crazyswarm)/launch/test.rviz"/>

  <!-- <node pkg="rqt_plot" type="rqt_plot" name="rqt_plot_x" args="/cf2/log1/values[0]"/> -->
  <!-- <node pkg="rqt_plot" type="rqt_plot" name="rqt_plot_roll" args="/cf1/log1/values[2] /cf1/log1/values[3]"/> -->

</launch>

Also, I am using the Ubuntu 16.04 with the boost version 1.58. When I try to comply the Natnetsdkcrossplatform using the command cmake .. , it requires the boost version 1.65 with errors.

To solve it, I change the Line 3 in https://github.com/whoenig/NatNetSDKCrossplatform/blob/master/CMakeLists.txt from find_package(Boost 1.65 REQUIRED COMPONENTS system thread) to find_package(Boost 1.58 REQUIRED COMPONENTS system thread)

Then the cmake ..and make works well.

Wish you could help me to solve those questions! Thanks a lot!

whoenig commented 4 years ago

I have not seen this set_option: Invalid argument error before. Could you recompile with debugging enabled (catkin_make -DBUILD_TYPE=DEBUG) and launch the crazyswarm_server using gdb (see http://wiki.ros.org/roslaunch/Tutorials/Roslaunch%20Nodes%20in%20Valgrind%20or%20GDB). The callstack will help a lot to identify the problem. I assume it has something to do with the configuration, but I don't see an issue.

You should not need to update the multicast address. All you need to configure is the IP address of the computer that runs Motive (unless you changed the default settings of Motive, of course).

Your "trick" for NatNetSDKCrossplatform is correct. Do the sample applications in this repository work for you?

lkyfly0765 commented 4 years ago

I have recompiled with debug mode and the following is the log. I will try to launch the crazyswarm_server with gdb tomorrow as the lab is out of power today.

I see that in the compile logs, some dependencies is missing, will this cause some issues?

eric@eric-ThinkPad-S2:~/crazyswarm/ros_ws$ catkin_make -DBUILD_TYPE=DEBUG
Base path: /home/eric/crazyswarm/ros_ws
Source space: /home/eric/crazyswarm/ros_ws/src
Build space: /home/eric/crazyswarm/ros_ws/build
Devel space: /home/eric/crazyswarm/ros_ws/devel
Install space: /home/eric/crazyswarm/ros_ws/install
####
#### Running command: "cmake /home/eric/crazyswarm/ros_ws/src -DBUILD_TYPE=DEBUG -DCATKIN_DEVEL_PREFIX=/home/eric/crazyswarm/ros_ws/devel -DCMAKE_INSTALL_PREFIX=/home/eric/crazyswarm/ros_ws/install -G Unix Makefiles" in "/home/eric/crazyswarm/ros_ws/build"
####
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: /home/eric/crazyswarm/ros_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/kinetic
-- This workspace overlays: /opt/ros/kinetic
-- Found PythonInterp: /usr/bin/python (found version "2.7.12") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/eric/crazyswarm/ros_ws/build/test_results
-- Found gmock sources under '/usr/src/gmock': gmock will be built
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found gtest sources under '/usr/src/gmock': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.18
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 10 packages in topological order:
-- ~~  - crazyflie (metapackage)
-- ~~  - crazyflie_cpp
-- ~~  - crazyflie_description
-- ~~  - crazyflie_tools
-- ~~  - libmotioncapture
-- ~~  - libobjecttracker
-- ~~  - crazyflie_demo
-- ~~  - crazyflie_controller
-- ~~  - crazyflie_driver
-- ~~  - crazyswarm
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin metapackage: 'crazyflie'
-- ==> add_subdirectory(crazyflie_ros/crazyflie)
-- +++ processing catkin package: 'crazyflie_cpp'
-- ==> add_subdirectory(crazyflie_ros/crazyflie_cpp)
Using ROS (catkin_make)
CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:166 (message):
  catkin_package() DEPENDS on '/usr/lib/x86_64-linux-gnu/libusb-1.0.so' but
  neither '/usr/lib/x86_64-linux-gnu/libusb-1.0.so_INCLUDE_DIRS' nor
  '/usr/lib/x86_64-linux-gnu/libusb-1.0.so_LIBRARIES' is defined.
Call Stack (most recent call first):
  /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)
  crazyflie_ros/crazyflie_cpp/ROS.cmake:18 (catkin_package)
  crazyflie_ros/crazyflie_cpp/CMakeLists.txt:6 (include)

-- +++ processing catkin package: 'crazyflie_description'
-- ==> add_subdirectory(crazyflie_ros/crazyflie_description)
-- +++ processing catkin package: 'crazyflie_tools'
-- ==> add_subdirectory(crazyflie_ros/crazyflie_tools)
Using ROS (catkin_make)
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   program_options
-- +++ processing catkin package: 'libmotioncapture'
-- ==> add_subdirectory(externalDependencies/libmotioncapture)
-- Checking for module 'eigen3'
--   Found eigen3, version 3.2.92
-- Found eigen: /usr/include/eigen3  
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   thread
--   date_time
--   iostreams
--   serialization
--   chrono
--   atomic
--   regex
-- Checking for module 'flann'
--   Found flann, version 1.8.4
-- Found Flann: /usr/lib/x86_64-linux-gnu/libflann_cpp_s.a  
-- Checking for module 'libopenni'
--   Found libopenni, version 1.5.4.0
-- Found openni: /usr/lib/libOpenNI.so  
-- Checking for module 'libopenni2'
--   Found libopenni2, version 2.2.0.3
-- Found OpenNI2: /usr/lib/libOpenNI2.so  
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
-- The imported target "vtkRenderingPythonTkWidgets" references the file
   "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
but not all the files it references.

-- Found libusb-1.0: /usr/include  
-- Found qhull: /usr/lib/x86_64-linux-gnu/libqhull.so  
-- looking for PCL_COMMON
-- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so  
-- looking for PCL_KDTREE
-- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so  
-- looking for PCL_OCTREE
-- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so  
-- looking for PCL_SEARCH
-- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so  
-- looking for PCL_IO
-- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so  
-- looking for PCL_SAMPLE_CONSENSUS
-- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so  
-- looking for PCL_FILTERS
-- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so  
-- looking for PCL_GEOMETRY
-- Found PCL_GEOMETRY: /usr/include/pcl-1.7  
-- looking for PCL_FEATURES
-- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so  
-- looking for PCL_SEGMENTATION
-- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so  
-- looking for PCL_SURFACE
-- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so  
-- looking for PCL_REGISTRATION
-- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so  
-- looking for PCL_RECOGNITION
-- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so  
-- looking for PCL_KEYPOINTS
-- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so  
-- looking for PCL_VISUALIZATION
-- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so  
-- looking for PCL_PEOPLE
-- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so  
-- looking for PCL_OUTOFCORE
-- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so  
-- looking for PCL_TRACKING
-- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so  
-- looking for PCL_APPS
-- Could NOT find PCL_APPS (missing:  PCL_APPS_LIBRARY) 
-- looking for PCL_MODELER
-- Found PCL_MODELER: /usr/include/pcl-1.7  
-- looking for PCL_IN_HAND_SCANNER
-- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.7  
-- looking for PCL_POINT_CLOUD_EDITOR
-- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.7  
-- Found PCL: /usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so;/usr/lib/x86_64-linux-gnu/libboost_thread.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_iostreams.so;/usr/lib/x86_64-linux-gnu/libboost_serialization.so;/usr/lib/x86_64-linux-gnu/libboost_chrono.so;/usr/lib/x86_64-linux-gnu/libboost_atomic.so;/usr/lib/x86_64-linux-gnu/libboost_regex.so;/usr/lib/x86_64-linux-gnu/libpthread.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_common.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_common.so;optimized;/usr/lib/x86_64-linux-gnu/libflann_cpp_s.a;debug;/usr/lib/x86_64-linux-gnu/libflann_cpp_s.a;optimized;/usr/lib/x86_64-linux-gnu/libpcl_kdtree.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_kdtree.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_octree.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_octree.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_search.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_search.so;/usr/lib/libOpenNI.so;/usr/lib/libOpenNI2.so;vtkImagingStencil;vtkCommonComputationalGeometry;vtkCommonDataModel;vtkCommonMath;vtkCommonCore;vtksys;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkImagingCore;vtkCommonExecutionModel;vtkFiltersAMR;vtkFiltersGeneral;vtkFiltersCore;vtkParallelCore;vtkIOLegacy;vtkIOCore;/usr/lib/x86_64-linux-gnu/libz.so;vtkInteractionWidgets;vtkFiltersHybrid;vtkImagingSources;vtkRenderingCore;vtkCommonColor;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkalglib;vtkFiltersGeometry;vtkFiltersSources;vtkFiltersModeling;vtkImagingGeneral;vtkImagingHybrid;vtkIOImage;vtkDICOMParser;vtkmetaio;/usr/lib/x86_64-linux-gnu/libjpeg.so;/usr/lib/x86_64-linux-gnu/libpng.so;/usr/lib/x86_64-linux-gnu/libtiff.so;vtkInteractionStyle;vtkRenderingAnnotation;vtkImagingColor;vtkRenderingFreeType;/usr/lib/x86_64-linux-gnu/libfreetype.so;vtkftgl;vtkRenderingVolume;vtkIOParallelNetCDF;vtkParallelMPI;/usr/lib/x86_64-linux-gnu/libnetcdf_c++.so;/usr/lib/x86_64-linux-gnu/libnetcdf.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5_hl.so;vtkRenderingOpenGL;vtkIOLSDyna;vtkIOXML;vtkIOGeometry;/usr/lib/x86_64-linux-gnu/libjsoncpp.so;vtkIOXMLParser;/usr/lib/x86_64-linux-gnu/libexpat.so;vtkLocalExample;vtkInfovisCore;vtkGeovisCore;vtkInfovisLayout;vtkViewsCore;vtkproj4;/usr/lib/x86_64-linux-gnu/libpython2.7.so;vtkTestingGenericBridge;/usr/lib/libgl2ps.so;verdict;vtkIOMovie;/usr/lib/x86_64-linux-gnu/libtheoraenc.so;/usr/lib/x86_64-linux-gnu/libtheoradec.so;/usr/lib/x86_64-linux-gnu/libogg.so;vtkFiltersImaging;vtkIOMINC;vtkRenderingLOD;vtkViewsQt;vtkGUISupportQt;vtkViewsInfovis;vtkChartsCore;vtkRenderingContext2D;vtkRenderingLabel;vtkRenderingImage;vtkFiltersFlowPaths;vtkxdmf2;/usr/lib/x86_64-linux-gnu/libxml2.so;vtkFiltersReebGraph;vtkViewsContext2D;vtkIOXdmf2;vtkIOAMR;vtkRenderingContextOpenGL;vtkImagingStatistics;vtkIOParallel;vtkFiltersParallel;vtkIONetCDF;vtkexoIIc;vtkGUISupportQtOpenGL;vtkIOParallelLSDyna;vtkFiltersParallelGeometry;vtkGUISupportQtWebkit;vtkIOPLY;vtkWrappingTools;vtkFiltersHyperTree;vtkRenderingVolumeOpenGL;vtkIOExodus;vtkIOPostgreSQL;vtkIOSQL;sqlite3;vtkWrappingJava;vtkFiltersParallelFlowPaths;vtkFiltersParallelStatistics;vtkFiltersProgrammable;vtkFiltersParallelImaging;vtkRenderingParallelLIC;vtkRenderingLIC;vtkInteractionImage;vtkFiltersPython;vtkWrappingPythonCore;vtkIOParallelExodus;vtkFiltersGeneric;vtkIOVideo;vtkRenderingQt;vtkFiltersTexture;vtkIOInfovis;vtkGUISupportQtSQL;vtkRenderingFreeTypeOpenGL;vtkInfovisBoostGraphAlgorithms;vtkRenderingGL2PS;vtkIOGeoJSON;vtkFiltersVerdict;vtkViewsGeovis;vtkIOImport;vtkTestingIOSQL;vtkPythonInterpreter;vtkIOODBC;vtkIOEnSight;vtkIOMySQL;vtkRenderingMatplotlib;vtkDomainsChemistry;vtkIOExport;vtkFiltersParallelMPI;vtkIOParallelXML;vtkTestingRendering;vtkIOMPIParallel;vtkParallelMPI4Py;vtkFiltersSMP;vtkFiltersSelection;vtkIOVPIC;VPIC;vtkImagingMath;vtkImagingMorphological;vtkRenderingParallel;vtkRenderingFreeTypeFontConfig;vtkIOFFMPEG;vtkIOMPIImage;vtkIOGDAL;optimized;/usr/lib/x86_64-linux-gnu/libpcl_io.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_io.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_filters.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_filters.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_features.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_features.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_segmentation.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_segmentation.so;optimized;/usr/lib/x86_64-linux-gnu/libqhull.so;debug;/usr/lib/x86_64-linux-gnu/libqhull.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_surface.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_surface.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_registration.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_registration.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_recognition.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_recognition.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_keypoints.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_keypoints.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_visualization.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_visualization.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_people.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_people.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_outofcore.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_outofcore.so;optimized;/usr/lib/x86_64-linux-gnu/libpcl_tracking.so;debug;/usr/lib/x86_64-linux-gnu/libpcl_tracking.so;/usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so;/usr/lib/x86_64-linux-gnu/libboost_thread.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_iostreams.so;/usr/lib/x86_64-linux-gnu/libboost_serialization.so;/usr/lib/x86_64-linux-gnu/libboost_chrono.so;/usr/lib/x86_64-linux-gnu/libboost_atomic.so;/usr/lib/x86_64-linux-gnu/libboost_regex.so;/usr/lib/x86_64-linux-gnu/libpthread.so;optimized;/usr/lib/x86_64-linux-gnu/libqhull.so;debug;/usr/lib/x86_64-linux-gnu/libqhull.so;/usr/lib/libOpenNI.so;/usr/lib/libOpenNI2.so;optimized;/usr/lib/x86_64-linux-gnu/libflann_cpp_s.a;debug;/usr/lib/x86_64-linux-gnu/libflann_cpp_s.a;vtkImagingStencil;vtkCommonComputationalGeometry;vtkCommonDataModel;vtkCommonMath;vtkCommonCore;vtksys;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkImagingCore;vtkCommonExecutionModel;vtkFiltersAMR;vtkFiltersGeneral;vtkFiltersCore;vtkParallelCore;vtkIOLegacy;vtkIOCore;/usr/lib/x86_64-linux-gnu/libz.so;vtkInteractionWidgets;vtkFiltersHybrid;vtkImagingSources;vtkRenderingCore;vtkCommonColor;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkalglib;vtkFiltersGeometry;vtkFiltersSources;vtkFiltersModeling;vtkImagingGeneral;vtkImagingHybrid;vtkIOImage;vtkDICOMParser;vtkmetaio;/usr/lib/x86_64-linux-gnu/libjpeg.so;/usr/lib/x86_64-linux-gnu/libpng.so;/usr/lib/x86_64-linux-gnu/libtiff.so;vtkInteractionStyle;vtkRenderingAnnotation;vtkImagingColor;vtkRenderingFreeType;/usr/lib/x86_64-linux-gnu/libfreetype.so;vtkftgl;vtkRenderingVolume;vtkIOParallelNetCDF;vtkParallelMPI;/usr/lib/x86_64-linux-gnu/libnetcdf_c++.so;/usr/lib/x86_64-linux-gnu/libnetcdf.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5_hl.so;vtkRenderingOpenGL;vtkIOLSDyna;vtkIOXML;vtkIOGeometry;/usr/lib/x86_64-linux-gnu/libjsoncpp.so;vtkIOXMLParser;/usr/lib/x86_64-linux-gnu/libexpat.so;vtkLocalExample;vtkInfovisCore;vtkGeovisCore;vtkInfovisLayout;vtkViewsCore;vtkproj4;/usr/lib/x86_64-linux-gnu/libpython2.7.so;vtkTestingGenericBridge;/usr/lib/libgl2ps.so;verdict;vtkIOMovie;/usr/lib/x86_64-linux-gnu/libtheoraenc.so;/usr/lib/x86_64-linux-gnu/libtheoradec.so;/usr/lib/x86_64-linux-gnu/libogg.so;vtkFiltersImaging;vtkIOMINC;vtkRenderingLOD;vtkViewsQt;vtkGUISupportQt;vtkViewsInfovis;vtkChartsCore;vtkRenderingContext2D;vtkRenderingLabel;vtkRenderingImage;vtkFiltersFlowPaths;vtkxdmf2;/usr/lib/x86_64-linux-gnu/libxml2.so;vtkFiltersReebGraph;vtkViewsContext2D;vtkIOXdmf2;vtkIOAMR;vtkRenderingContextOpenGL;vtkImagingStatistics;vtkIOParallel;vtkFiltersParallel;vtkIONetCDF;vtkexoIIc;vtkGUISupportQtOpenGL;vtkIOParallelLSDyna;vtkFiltersParallelGeometry;vtkGUISupportQtWebkit;vtkIOPLY;vtkWrappingTools;vtkFiltersHyperTree;vtkRenderingVolumeOpenGL;vtkIOExodus;vtkIOPostgreSQL;vtkIOSQL;sqlite3;vtkWrappingJava;vtkFiltersParallelFlowPaths;vtkFiltersParallelStatistics;vtkFiltersProgrammable;vtkFiltersParallelImaging;vtkRenderingParallelLIC;vtkRenderingLIC;vtkInteractionImage;vtkFiltersPython;vtkWrappingPythonCore;vtkIOParallelExodus;vtkFiltersGeneric;vtkIOVideo;vtkRenderingQt;vtkFiltersTexture;vtkIOInfovis;vtkGUISupportQtSQL;vtkRenderingFreeTypeOpenGL;vtkInfovisBoostGraphAlgorithms;vtkRenderingGL2PS;vtkIOGeoJSON;vtkFiltersVerdict;vtkViewsGeovis;vtkIOImport;vtkTestingIOSQL;vtkPythonInterpreter;vtkIOODBC;vtkIOEnSight;vtkIOMySQL;vtkRenderingMatplotlib;vtkDomainsChemistry;vtkIOExport;vtkFiltersParallelMPI;vtkIOParallelXML;vtkTestingRendering;vtkIOMPIParallel;vtkParallelMPI4Py;vtkFiltersSMP;vtkFiltersSelection;vtkIOVPIC;VPIC;vtkImagingMath;vtkImagingMorphological;vtkRenderingParallel;vtkRenderingFreeTypeFontConfig;vtkIOFFMPEG;vtkIOMPIImage;vtkIOGDAL  
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   thread
--   chrono
--   date_time
--   atomic
-- Found quatlib: /opt/ros/kinetic/lib/libquat.a  
-- Found VRPN: /opt/ros/kinetic/lib/libvrpn.a  
-- +++ processing catkin package: 'libobjecttracker'
-- ==> add_subdirectory(externalDependencies/libobjecttracker)
CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:166 (message):
  catkin_package() DEPENDS on '/usr/lib/x86_64-linux-gnu/libusb-1.0.so' but
  neither '/usr/lib/x86_64-linux-gnu/libusb-1.0.so_INCLUDE_DIRS' nor
  '/usr/lib/x86_64-linux-gnu/libusb-1.0.so_LIBRARIES' is defined.
Call Stack (most recent call first):
  /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)
  externalDependencies/libobjecttracker/CMakeLists.txt:19 (catkin_package)

-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   thread
--   date_time
--   iostreams
--   serialization
--   chrono
--   atomic
--   regex
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
-- The imported target "vtkRenderingPythonTkWidgets" references the file
   "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
but not all the files it references.

-- looking for PCL_COMMON
-- looking for PCL_KDTREE
-- looking for PCL_OCTREE
-- looking for PCL_SEARCH
-- looking for PCL_IO
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_FILTERS
-- looking for PCL_GEOMETRY
-- looking for PCL_FEATURES
-- looking for PCL_SEGMENTATION
-- looking for PCL_SURFACE
-- looking for PCL_REGISTRATION
-- looking for PCL_RECOGNITION
-- looking for PCL_KEYPOINTS
-- looking for PCL_VISUALIZATION
-- looking for PCL_PEOPLE
-- looking for PCL_OUTOFCORE
-- looking for PCL_TRACKING
-- looking for PCL_APPS
-- Could NOT find PCL_APPS (missing:  PCL_APPS_LIBRARY) 
-- looking for PCL_MODELER
-- looking for PCL_IN_HAND_SCANNER
-- looking for PCL_POINT_CLOUD_EDITOR
-- +++ processing catkin package: 'crazyflie_demo'
-- ==> add_subdirectory(crazyflie_ros/crazyflie_demo)
-- +++ processing catkin package: 'crazyflie_controller'
-- ==> add_subdirectory(crazyflie_ros/crazyflie_controller)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- +++ processing catkin package: 'crazyflie_driver'
-- ==> add_subdirectory(crazyflie_ros/crazyflie_driver)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- crazyflie_driver: 7 messages, 11 services
-- +++ processing catkin package: 'crazyswarm'
-- ==> add_subdirectory(crazyswarm)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   thread
--   date_time
--   iostreams
--   serialization
--   chrono
--   atomic
--   regex
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
-- The imported target "vtkRenderingPythonTkWidgets" references the file
   "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
but not all the files it references.

-- looking for PCL_COMMON
-- looking for PCL_KDTREE
-- looking for PCL_OCTREE
-- looking for PCL_SEARCH
-- looking for PCL_IO
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_FILTERS
-- looking for PCL_GEOMETRY
-- looking for PCL_FEATURES
-- looking for PCL_SEGMENTATION
-- looking for PCL_SURFACE
-- looking for PCL_REGISTRATION
-- looking for PCL_RECOGNITION
-- looking for PCL_KEYPOINTS
-- looking for PCL_VISUALIZATION
-- looking for PCL_PEOPLE
-- looking for PCL_OUTOFCORE
-- looking for PCL_TRACKING
-- looking for PCL_APPS
-- Could NOT find PCL_APPS (missing:  PCL_APPS_LIBRARY) 
-- looking for PCL_MODELER
-- looking for PCL_IN_HAND_SCANNER
-- looking for PCL_POINT_CLOUD_EDITOR
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_TYPE

-- Build files have been written to: /home/eric/crazyswarm/ros_ws/build
####
#### Running command: "make -j4 -l4" in "/home/eric/crazyswarm/ros_ws/build"
####
Scanning dependencies of target crazyflie_cpp
Scanning dependencies of target ViconDataStreamSDK_CPP
Scanning dependencies of target libobjecttracker
Scanning dependencies of target qualisys_cpp_sdk
[  0%] Building CXX object crazyflie_ros/crazyflie_cpp/CMakeFiles/crazyflie_cpp.dir/src/USBDevice.cpp.o
[  0%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPP.dir/Vicon/CrossMarket/DataStream/ViconDataStreamSDKCore/CoreClient.cpp.o
[  1%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/qualisys_cpp_sdk/CMakeFiles/qualisys_cpp_sdk.dir/Markup.cpp.o
[  2%] Building CXX object crazyflie_ros/crazyflie_cpp/CMakeFiles/crazyflie_cpp.dir/src/Crazyradio.cpp.o
[  3%] Building CXX object externalDependencies/libobjecttracker/CMakeFiles/libobjecttracker.dir/src/object_tracker.cpp.o
[  3%] Building CXX object crazyflie_ros/crazyflie_cpp/CMakeFiles/crazyflie_cpp.dir/src/CrazyflieUSB.cpp.o
[  4%] Building CXX object crazyflie_ros/crazyflie_cpp/CMakeFiles/crazyflie_cpp.dir/src/Crazyflie.cpp.o
[  4%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/qualisys_cpp_sdk/CMakeFiles/qualisys_cpp_sdk.dir/Network.cpp.o
[  5%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/qualisys_cpp_sdk/CMakeFiles/qualisys_cpp_sdk.dir/RTPacket.cpp.o
[  5%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/qualisys_cpp_sdk/CMakeFiles/qualisys_cpp_sdk.dir/RTProtocol.cpp.o
[  6%] Building CXX object crazyflie_ros/crazyflie_cpp/CMakeFiles/crazyflie_cpp.dir/src/crtp.cpp.o
[  6%] Building CXX object crazyflie_ros/crazyflie_cpp/CMakeFiles/crazyflie_cpp.dir/src/ITransport.cpp.o
[  7%] Linking CXX shared library /home/eric/crazyswarm/ros_ws/devel/lib/libcrazyflie_cpp.so
[  7%] Built target crazyflie_cpp
Scanning dependencies of target quadrotor_teleop
[  8%] Building CXX object crazyflie_ros/crazyflie_demo/CMakeFiles/quadrotor_teleop.dir/src/quadrotor_teleop.cpp.o
[  9%] Linking CXX shared library /home/eric/crazyswarm/ros_ws/devel/lib/libqualisys_cpp_sdk.so
[  9%] Built target qualisys_cpp_sdk
Scanning dependencies of target crazyflie_controller
[  9%] Building CXX object crazyflie_ros/crazyflie_controller/CMakeFiles/crazyflie_controller.dir/src/controller.cpp.o
[  9%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_demo/quadrotor_teleop
[  9%] Built target quadrotor_teleop
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_GoTo
[  9%] Built target _crazyflie_driver_generate_messages_check_deps_GoTo
Scanning dependencies of target std_msgs_generate_messages_cpp
[  9%] Built target std_msgs_generate_messages_cpp
Scanning dependencies of target geometry_msgs_generate_messages_cpp
[  9%] Built target geometry_msgs_generate_messages_cpp
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_Hover
[  9%] Built target _crazyflie_driver_generate_messages_check_deps_Hover
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_TrajectoryPolynomialPiece
[  9%] Built target _crazyflie_driver_generate_messages_check_deps_TrajectoryPolynomialPiece
[ 10%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPP.dir/Vicon/CrossMarket/DataStream/ViconDataStreamSDKCore/ClientUtils.cpp.o
[ 10%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPP.dir/Vicon/CrossMarket/DataStream/ViconDataStreamSDKCore/AxisMapping.cpp.o
[ 11%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPP.dir/Vicon/CrossMarket/DataStream/ViconCGStreamClientSDK/CGClient.cpp.o
[ 12%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPP.dir/Vicon/CrossMarket/DataStream/ViconCGStreamClient/ViconCGStreamClient.cpp.o
[ 12%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPP.dir/Vicon/CrossMarket/DataStream/ViconCGStreamClient/CGStreamReaderWriter.cpp.o
[ 13%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPP.dir/Vicon/CrossMarket/DataStream/ViconCGStreamClient/ViconCGStreamBayer.cpp.o
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_SetGroupMask
[ 14%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_controller/crazyflie_controller
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_SetGroupMask
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_RemoveCrazyflie
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_RemoveCrazyflie
[ 14%] Built target crazyflie_controller
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_UploadTrajectory
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_UploadTrajectory
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_LogBlock
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_LogBlock
[ 14%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPP.dir/Vicon/CrossMarket/DataStream/ViconDataStreamSDK_CPP/DataStreamClient.cpp.o
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_FullState
[ 14%] Linking CXX shared library /home/eric/crazyswarm/ros_ws/devel/lib/liblibobjecttracker.so
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_FullState
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_UpdateParams
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_UpdateParams
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_Position
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_Position
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_StartTrajectory
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_StartTrajectory
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_GenericLogData
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_GenericLogData
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_Land
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_Land
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_crtpPacket
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_crtpPacket
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_Takeoff
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_Takeoff
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_AddCrazyflie
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_AddCrazyflie
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_sendPacket
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_sendPacket
Scanning dependencies of target _crazyflie_driver_generate_messages_check_deps_Stop
[ 14%] Built target _crazyflie_driver_generate_messages_check_deps_Stop
Scanning dependencies of target std_msgs_generate_messages_py
Scanning dependencies of target geometry_msgs_generate_messages_py
[ 14%] Built target geometry_msgs_generate_messages_py
[ 14%] Built target std_msgs_generate_messages_py
Scanning dependencies of target std_msgs_generate_messages_nodejs
[ 14%] Built target std_msgs_generate_messages_nodejs
Scanning dependencies of target std_msgs_generate_messages_lisp
[ 14%] Built target std_msgs_generate_messages_lisp
Scanning dependencies of target geometry_msgs_generate_messages_lisp
[ 14%] Built target geometry_msgs_generate_messages_lisp
Scanning dependencies of target std_msgs_generate_messages_eus
[ 14%] Built target std_msgs_generate_messages_eus
Scanning dependencies of target geometry_msgs_generate_messages_eus
[ 14%] Built target geometry_msgs_generate_messages_eus
Scanning dependencies of target log
[ 14%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/log.dir/src/log.cpp.o
Scanning dependencies of target geometry_msgs_generate_messages_nodejs
[ 14%] Built target geometry_msgs_generate_messages_nodejs
Scanning dependencies of target listLogVariables
[ 15%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/listLogVariables.dir/src/listLogVariables.cpp.o
[ 15%] Built target libobjecttracker
[ 17%] Linking CXX shared library /home/eric/crazyswarm/ros_ws/devel/lib/libViconDataStreamSDK_CPP.so
Scanning dependencies of target scan
[ 18%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/scan.dir/src/scan.cpp.o
[ 19%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/log
[ 19%] Built target ViconDataStreamSDK_CPP
Scanning dependencies of target listParams
[ 19%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/listParams.dir/src/listParams.cpp.o
[ 19%] Built target log
Scanning dependencies of target listMemories
[ 20%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/listMemories.dir/src/listMemories.cpp.o
[ 20%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/scan
[ 20%] Built target scan
Scanning dependencies of target reboot
[ 21%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/reboot.dir/src/reboot.cpp.o
[ 21%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/listLogVariables
[ 22%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/listMemories
[ 22%] Built target listMemories
Scanning dependencies of target battery
[ 23%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/battery.dir/src/battery.cpp.o
[ 23%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/reboot
[ 23%] Built target reboot
Scanning dependencies of target version
[ 24%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/version.dir/src/version.cpp.o
[ 24%] Built target listLogVariables
[ 25%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/listParams
Scanning dependencies of target console
[ 26%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/console.dir/src/console.cpp.o
[ 26%] Built target listParams
Scanning dependencies of target flash
[ 26%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/flash.dir/src/flash.cpp.o
[ 26%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/battery
[ 26%] Built target battery
Scanning dependencies of target comCheck
[ 27%] Building CXX object crazyflie_ros/crazyflie_tools/CMakeFiles/comCheck.dir/src/comCheck.cpp.o
[ 27%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/console
[ 27%] Built target console
Scanning dependencies of target libmotioncapture
[ 28%] Building CXX object externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/src/motioncapture.cpp.o
[ 29%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/flash
[ 29%] Built target flash
Scanning dependencies of target ViconDataStreamSDK_CPPTest
[ 29%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/vicon-datastream-sdk/CMakeFiles/ViconDataStreamSDK_CPPTest.dir/Vicon/CrossMarket/DataStream/ViconDataStreamSDK_CPPTest/ViconDataStreamSDK_CPPTest.cpp.o
[ 29%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/comCheck
[ 29%] Built target comCheck
Scanning dependencies of target RigidBodyStreaming
[ 29%] Building CXX object externalDependencies/libmotioncapture/externalDependencies/qualisys_cpp_sdk/CMakeFiles/RigidBodyStreaming.dir/RigidBodyStreaming/RigidBodyStreaming.cpp.o
[ 30%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/libmotioncapture/RigidBodyStreaming
[ 30%] Built target RigidBodyStreaming
Scanning dependencies of target crazyflie_driver_generate_messages_cpp
[ 41%] Built target crazyflie_driver_generate_messages_cpp
[ 42%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/libmotioncapture/ViconDataStreamSDK_CPPTest
Scanning dependencies of target crazyflie_driver_generate_messages_py
[ 54%] Built target crazyflie_driver_generate_messages_py
Scanning dependencies of target crazyflie_driver_generate_messages_nodejs
[ 65%] Built target crazyflie_driver_generate_messages_nodejs
Scanning dependencies of target crazyflie_driver_generate_messages_lisp
[ 76%] Built target crazyflie_driver_generate_messages_lisp
Scanning dependencies of target crazyflie_driver_generate_messages_eus
[ 88%] Built target crazyflie_driver_generate_messages_eus
[ 88%] Built target ViconDataStreamSDK_CPPTest
Scanning dependencies of target crazyflie_add
Scanning dependencies of target crazyflie_server
[ 89%] Building CXX object crazyflie_ros/crazyflie_driver/CMakeFiles/crazyflie_server.dir/src/crazyflie_server.cpp.o
[ 90%] Building CXX object crazyflie_ros/crazyflie_driver/CMakeFiles/crazyflie_add.dir/src/crazyflie_add.cpp.o
[ 91%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_tools/version
[ 91%] Built target version
Scanning dependencies of target crazyflie_driver_generate_messages
[ 91%] Built target crazyflie_driver_generate_messages
[ 91%] Building CXX object externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/src/testmocap.cpp.o
[ 92%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_driver/crazyflie_add
[ 92%] Built target crazyflie_add
[ 93%] Building CXX object externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/src/vicon.cpp.o
[ 93%] Building CXX object externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/src/optitrack.cpp.o
[ 94%] Building CXX object externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/src/qualisys.cpp.o
[ 95%] Building CXX object externalDependencies/libmotioncapture/CMakeFiles/libmotioncapture.dir/src/vrpn.cpp.o
[ 95%] Linking CXX shared library /home/eric/crazyswarm/ros_ws/devel/lib/liblibmotioncapture.so
[ 95%] Built target libmotioncapture
Scanning dependencies of target crazyswarm_server
Scanning dependencies of target crazyswarm_teleop
Scanning dependencies of target mocap_helper
[ 95%] Building CXX object crazyswarm/CMakeFiles/mocap_helper.dir/src/mocap_helper.cpp.o
[ 96%] Building CXX object crazyswarm/CMakeFiles/crazyswarm_teleop.dir/src/crazyswarm_teleop.cpp.o
[ 97%] Building CXX object crazyswarm/CMakeFiles/crazyswarm_server.dir/src/crazyswarm_server.cpp.o
[ 97%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyflie_driver/crazyflie_server
[ 97%] Built target crazyflie_server
[ 98%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyswarm/crazyswarm_teleop
[ 98%] Built target crazyswarm_teleop
[100%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyswarm/mocap_helper
[100%] Built target mocap_helper
In file included from /home/eric/crazyswarm/ros_ws/src/crazyswarm/src/crazyswarm_server.cpp:62:0:
/home/eric/crazyswarm/ros_ws/src/externalDependencies/libobjecttracker/include/libobjecttracker/cloudlog.hpp: In member function ‘void libobjecttracker::PointCloudPlayer::play(libobjecttracker::ObjectTracker&) const’:
/home/eric/crazyswarm/ros_ws/src/externalDependencies/libobjecttracker/include/libobjecttracker/cloudlog.hpp:103:57: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::size_t {aka long unsigned int}’ [-Wformat=]
     printf("\n  %d  ------------------------------\n", i);
                                                         ^
/home/eric/crazyswarm/ros_ws/src/externalDependencies/libobjecttracker/include/libobjecttracker/cloudlog.hpp: In member function ‘void libobjecttracker::PointCloudDebugger::convert(libobjecttracker::ObjectTracker&, std::vector<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZ> > >&)’:
/home/eric/crazyswarm/ros_ws/src/externalDependencies/libobjecttracker/include/libobjecttracker/cloudlog.hpp:139:57: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::size_t {aka long unsigned int}’ [-Wformat=]
     printf("\n  %d  ------------------------------\n", i);
                                                         ^
/home/eric/crazyswarm/ros_ws/src/externalDependencies/libobjecttracker/include/libobjecttracker/cloudlog.hpp:152:55: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::vector<libobjecttracker::Object>::size_type {aka long unsigned int}’ [-Wformat=]
      printf("Object vector size: %d\n", objects.size());
                                                       ^
[100%] Linking CXX executable /home/eric/crazyswarm/ros_ws/devel/lib/crazyswarm/crazyswarm_server
[100%] Built target crazyswarm_server

Your "trick" for NatNetSDKCrossplatform is correct. Do the sample applications in this repository work for you?

You mean the mcr and natnettest application? I have tried them but the ./mcr will only show the Motive version and the natnet version; and after I execute the ./natnettest there is nothing in the xterm. I will upload the log tomorrow.

And, could you please tell me what is the normal output in the xterm if a execute the mcr and natnettest application? Thanks!

whoenig commented 4 years ago

Your build looks normal. Since your issue occurs at runtime, only the gdb output will help to figure out where the exception is thrown (and hopefully why).

For NatNetSDK Crossplatform: ./natnettest just prints the version and exits. ./mcr is supposed to continuously print the actual data packets (that is: poses if any objects are enabled; locations of the individual markers otherwise). If you don't see anything, that's certainly concerning, because it means that streaming over multicast does not work for you. I assume you did enable that feature in Motive?

lkyfly0765 commented 4 years ago
  1. I have reset the Multicast Address in the cpp file of the Natnetsdkcrossplatform/src folder to the 239.255.42.99. And rebuilt it. The ./mcr and ./natnettest tests well.
    
    eric@eric-ThinkPad-S2:~/crazyswarm/ros_ws/src/externalDependencies/libmotioncapture/externalDependencies/NatNetSDKCrossplatform/built$ ./natnettest 169.254.41.1
    1 279
    NatNetVersion: 236.164.53.0
    ServerVersion: 3.1.0.0

Part of the ./mcr program are shown as follow:

eric@eric-ThinkPad-S2:~/crazyswarm/ros_ws/src/externalDependencies/libmotioncapture/externalDependencies/NatNetSDKCrossplatform/built$ ./mcr 169.254.41.1 Begin Packet

Message ID : 7 Byte count : 325 Frame # : 987569 Marker Set Count : 2 Model Name: crazyflie1 Marker Count : 3 Marker 0 : [x=0.03,y=-0.03,z=0.02] Marker 1 : [x=0.02,y=0.01,z=0.02] Marker 2 : [x=-0.02,y=-0.03,z=0.02] Model Name: all Marker Count : 3 Marker 0 : [x=0.03,y=-0.03,z=0.02] Marker 1 : [x=0.02,y=0.01,z=0.02] Marker 2 : [x=-0.02,y=-0.03,z=0.02] Unidentified Marker Count : 3 Marker 0 : pos = [0.03,-0.03,0.02] Marker 1 : pos = [0.02,0.01,0.02] Marker 2 : pos = [-0.02,-0.03,0.02] Rigid Body Count : 1 ID : 4 pos: [0.01,-0.02,0.02] ori: [0.00,-0.00,0.01,-1.00] Mean marker error: 0.00 Skeleton Count : 0 Labeled Marker Count : 3 ID : [MarkerID: 1] [ModelID: 4] pos : [0.03,-0.03,0.02] size: [0.02] err: [0.00] ID : [MarkerID: 2] [ModelID: 4] pos : [0.02,0.01,0.02] size: [0.01] err: [0.00] ID : [MarkerID: 3] [ModelID: 4] pos : [-0.02,-0.03,0.02] size: [0.02] err: [0.00] Timestamp : 8229.742 Mid-exposure timestamp : 32188639183 Camera data received timestamp : 32188655821 Transmit timestamp : 32188657531 End Packet

2. The launch file with `launch-prefix="xterm -e gdb --args"` :
Could you please help me to find out what's wrong?
![debug](https://user-images.githubusercontent.com/44312338/69238848-e10dbb80-0bd3-11ea-9bd9-59d125891c98.png)

3. The connection between crazyradio and crazyflie is not established. I not sure if it's because of question 2. The communication led on crazyradio and crazyflie is not light up and the LED ring under the crazyflie if also flashing same with after powered on.

On Windows computer which is running Motive, I am using the Motive 2.20 Final version.
I follow the instructions about how to build the rigid body on [https://github.com/USC-ACTLab/libmotioncapture/pull/3](https://github.com/USC-ACTLab/libmotioncapture/pull/3).

The data stream panel in Motive is set as follow:

Optitrack Streaming Engine Broadcast Frame Data: On Local Interface:169.254.41.1 Labeled Markers: On Unlabeled Markers: On Assets Markers: On Rigid Bodies: On Up Axis: Z Up Remote Triggers: On Transmission Type: Multicast

VRPN Steaming Engine Broadcast VRPN Data: Off


Does the latest version of Motive supported by the crazyswarm package? And if there are any wrong configuration of the motive software?

Thanks!
Tracked Streaming Engine
Broadcast Tracked Data: Off
whoenig commented 4 years ago
  1. Looks good!
  2. Could you press enter in gdb to get a longer stack trace? It looks like the the error is caused when the network stack is initialized. I assume you don't run anything else in the background that might try using the same multicast address? (This is strange, because your experiment in 1. works, and both use the same code to initialize the network...)
  3. Yes, probably because the crazyswarm_server crashes. So if 2) is resolved, this issue should go away as well.

Your Motive settings look good (and so does the output in 1), so I think you are configured well. And yes, crazyswarm does support Motive 2.X (although I personally only tested with 2.0).

lkyfly0765 commented 4 years ago

Today I try to test it again. I'm not sure about how to get a longer stack trace. I just type in the set backstace limit 100 and type bt to get the stack trace, but it still have only frame #0 to frame #13, I think it's all the stack trace. Well, I am still new in gdb, so if there is other command need to type in, please tell me.

I am quite sure that I am not running any other application on my Ubuntu system. And on Windows, there is no other software using the multicast address, the port 1510 adn 1511 is only used by Motive. It's strange that I can not get the data correctly in the crazyswarm package but I can get it in the mcr application separately.

debug

whoenig commented 4 years ago

Your stack trace is complete, although the line numbers are missing. I guess it didn't really build a debug version. Try catkin_make clean followed by catkin_make -DCMAKE_BUILD_TYPE=Debug.

Please also check that your optitrack.cpp does not have any local changes (i.e., it should be identical to https://github.com/USC-ACTLab/libmotioncapture/blob/master/src/optitrack.cpp). I compared the code of the relevant network parts of the mcr portion and this file and it seems to be identical.

lkyfly0765 commented 4 years ago

You are right! As you said, I forgot that I change the multicast address to the Motive running computer IP in optitrack.cpp. Now I fixed it and the set_option: Invalid argument has been solved. It's all because the Multicast Address in optitrack.cpp is wrong. The default multicast address is 239.255.42.99 , see https://www.optitrack.com/products/natnet-sdk/.

But there occurs another error, I used the gbd and find that the error comes from the optitrack.cpp:367 int nRigidBodies = 0; memcpy(&nRigidBodies, ptr, 4); ptr += 4; I just go through the optitrack.cpp but I cannot find out why it occurs an error.

The gbd screenshot is shown as follow: debug2

whoenig commented 4 years ago

This does indicate that there is an issue with decoding the packet (essentially, the format that it receives does not match the expected format). However, if mcr works correctly, I don't understand why that would be happening. (I didn't see a mismatch between the https://github.com/whoenig/NatNetSDKCrossplatform/blob/master/src/PacketClient.cpp#L620 and optitrack.cpp.)

Which tracking mode are you using? If you want to use optitrack, make sure you only enable rigidBody streaming in motive. If you want to use libobjecttracker, try to only enable unlabeled markers in Motive.

lkyfly0765 commented 4 years ago

The error has been solved. It’s because that I turn on both Stream labeled markers and Stream Rigid Bodies, this will cause the data decoding issue. So if you are using motioncapture as the tracking mode, only stream rigid bodies should be turned on and any other related to the stream markers (labeled or unlabeled) must be turn off.

Well, thanks @whoenig a lot that I can run the hover_swarm.launch correctly and receive the tracking data perfectly. Now, in Rviz the cf’s position is shown and the LED ring under the cf is flashing green.

Unfortunately, I always have trouble with issue a take off order with the joystick start(green) button. When I press the green button, in the xterm, there is no log shows the takeoff and the cf has no respond with this order. I tested on another cf and it has the same situation. May this cause by the joy node is not connected with the crazyswarm _server? In rqt_graph I see that there is no connection between crazyswarm_teleop and crazyswarm_server. Could you please give me some advice ?

By the way, today I tested to fly an advanced swarm script. So I start the figure _8 script in another xterm. The cf has responded to the takeoff order, but it just slipping on the ground and then flipped. In simulation mode, the cf should takeoff firstly, then fly the figure 8 trajectory and land. But it seems that the cf isn’t takeoff but starts the figure 8 trajectory directly on the ground. Did I do something wrong?

whoenig commented 4 years ago

Joystick: The start button is not the green button, but the small button labeled start next to the xbox logo in the middle, see https://github.com/USC-ACTLab/crazyswarm/blob/master/ros_ws/src/crazyswarm/src/crazyswarm_teleop.cpp#L70-L72.

Figure8: Sounds like there is still an issue with the state estimation. Did you verify that the pose estimate is correct now?

lkyfly0765 commented 4 years ago

Thanks! It’s because I followed the instructions for the crazyflie_ros package to press the green button to issue a take off command. The joystick now is working.

But the flip issue still remains. In Motive, I set the axis to Z-up. And I checked the state estimates in Rviz by moving the crazyflie from origin manually on the ground. When I move the cf to it’s front direction( the antenna side), in Rviz, the crazyflie moves to the positive X axis. I checked the Y position with the same technique, the Y position is correct, too. It seems that the state estimate is right. But the cf still cannot do a nice hover but drifting once the motor start and then flipped onto the ground. Both takeoff-hover and figure 8 has the same issue.

Here is the video of the cf’s drifting and flipped. (After press the start button to issue a take off and hover command) https://youtu.be/e6Chq7fxu-k

whoenig commented 4 years ago

This looks like there might be a mismatch in orientation between Motive and the Crazyflie (the antenna should be at yaw=0). Perhaps you can try using position-only EKF by switching https://github.com/USC-ACTLab/crazyswarm/blob/master/ros_ws/src/crazyswarm/launch/hover_swarm.launch#L38 to True. If that works, then your rigid body in Motive is oriented incorrectly.

lkyfly0765 commented 3 years ago

@whoenig Hi whoenig, I didn't studied in crazyswarm for a few months. Recently, I need to re-using the crazyswarm project to do some more experiments. So it re-clone the crazyswarm project to update it to the latest version, but here I came across some issues. The issue is quite same with what we discussed last year. The error information is : [crazyswarm_server-2] process has died. Initially, I think it's because of the misconfiguration, so I checked all the things which I made mistakes. But it didn't work.

The configuration of the important files is shown below:

  1. hover_swarm.launch

    tracking

    motion_capture_type: "optitrack" # one of none,vicon,optitrack,qualisys,vrpn object_tracking_type: "motionCapture" # one of motionCapture,libobjecttracker send_position_only: False # set to False to send position+orientation; set to True to send position only

    vicon_host_name: "192.168.1.200"

    optitrack_host_name: "192.168.1.200"

    qualisys_host_name: "10.0.5.219"

    qualisys_base_port: 22222

    vrpn_host_name: "192.168.1.200"

    save_point_clouds: ~/pointCloud.ot print_latency: False write_csvs: False force_no_cache: False enable_parameters: True enable_logging: False

  2. Motive Data_streaming pane (Motive version is : 2.1.1)

    截屏2020-11-06 下午9 27 18
    1. The allcrazyflies.yamland crazyflies.yaml is correctly configured.
  3. The optitrack.cpp has been changed to the correct multicast_address. The Motive computer's IP address is 192.168.1.200, and the Multicast interface is set to 192.168.1.200 in Motive-Streaming pane

L10: constexpr const char* MULTICAST_ADDRESS = "192.168.1.200";

To check if there are any connection issue between my ubuntu system with the Motive computer, I use the NatNetSDKCrossplatform and the mcr or natnettest works well. The mcr returns the correct information of the rigid body in motive, this means that the connection between two computer works well, also the Natnet.

Begin Packet

Message ID : 7 Byte count : 116 Frame # : 935750 Marker Set Count : 0 Unidentified Marker Count : 0 Rigid Body Count : 1 ID : 1 pos: [0.02,-0.02,0.02] ori: [0.01,1.00,-0.00,0.01] Mean marker error: 0.00 Skeleton Count : 0 Labeled Marker Count : 0 Timestamp : 7797.917 Mid-exposure timestamp : 1866713199529 Camera data received timestamp : 1866713245528 Transmit timestamp : 1866713253075 End Packet

I try to use the gdb tool to debug the program and it returns as folllowing:

截屏2020-11-06 下午9 49 58

It shows that the error may comes from the https://github.com/USC-ACTLab/libmotioncapture/blob/master/src/optitrack.cpp#L311, it seems that there are some trouble with Join the multicast group , but the IP address is correct in gdb host_name="192.168.1.200". Could you please help me to solve it? Thanks!

whoenig commented 3 years ago

I don't think you should change the multicast address in the code, especially not if you didn't change it in NatNetSDKCrossplatform.

whoenig commented 2 years ago

We have now an improved OptiTrack backend that also automatically identifies the correct multicast address. Please start a new discussion, if you continue facing problems with the latest version.