Replies: 8 comments 4 replies
-
If I want to set the T-shaped calibration rod as an object that needs to be avoided, how can I feed back the position of the T-shaped calibration rod to cfs in real time in crazyswarm? |
Beta Was this translation helpful? Give feedback.
-
That functionality was removed when we switched from a forked firmware to the official firmware. There were special cases in the object tracker and firmware to send the position of the calibration wand. If I recall correctly, we dropped the feature because it was a little overly specific to that one demo. Maybe the easiest way to recreate it is to wait for bitcraze to accept bitcraze/crazyflie-firmware#628 . Then you can take off all but one CF, enable collision avoidance, and carry around the last CF instead of the calibration wand. It's a totally different algorithm though, so the behavior might look a little different. |
Beta Was this translation helpful? Give feedback.
-
@jpreiss Thank you for your answer. However, in fact, I prefer to create a rigid body and send the position of the rigid body to cfs in real time. Can this be done? |
Beta Was this translation helpful? Give feedback.
-
It looks like the crazyswarm server itself still has this support, at least partially (see e.g., https://github.com/USC-ACTLab/crazyswarm/blob/master/ros_ws/src/crazyswarm/src/crazyswarm_server.cpp#L879-L882). If a the virtual object (currently only supported with VICON, but it should be easy to add for Optitrack or others) is visible, it will be broadcasted as ID 255. The firmware portion was, as James wrote earlier, removed when we switched to the official firmware. |
Beta Was this translation helpful? Give feedback.
-
The new collision avoidance algorithm should also work if you are controlling one of the Crazyflies manually with a controller. |
Beta Was this translation helpful? Give feedback.
-
@jpreiss hi, I am concerned that the Collision avoidance function you developed has passed.
|
Beta Was this translation helpful? Give feedback.
-
@whoenig Thanks for your answer, but I don’t quite understand the virtual object. Is this a feature in vicon? I wonder if you can explain it in detail? |
Beta Was this translation helpful? Give feedback.
-
Using onboard collision avoidance with 20 CFs is not possible right now due to the multithreading architecture of the Crazyswarm server: crazyswarm/ros_ws/src/crazyswarm/src/crazyswarm_server.cpp Lines 73 to 84 in e2229d5 To broadcast the positions of all Crazyflies on all channels, we would need to add a synchronization point where each thread shares the results of its object tracking with the other threads. This is a nontrivial feature and will need to be carefully tested for performance.
|
Beta Was this translation helpful? Give feedback.
-
Hello, I watched the promotional video of crazyswarm a large nano-quadcopter swarm the other day. Among them, the interactivity part is very attractive to me. I want to find a demo to try.
I found two files avoid_human_demo.m and avoidtarget_mex.c in the matlab folder of iros2018, but I don't understand how to use them? Do you have any good suggestions? @jpreiss @whoenig
Beta Was this translation helpful? Give feedback.
All reactions