-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
High-Level Commander Design #293
Comments
The interface of the Crazyswarm high-level commander on the firmware side is summarized in planner.h. The PC side is close to a 1:1 wrapper. The manual backup is the main component missing from our implementation, I think. |
Using velocity control for take off and landing to avoid problems if the crazyflies are not on the correct starting points
Hi, thanks for starting a ticket about that!
|
Edit: An example implementation is available here. |
The initial high-level commander supports takeoff, landing, stop, and goTo. Each CF can be part of one of 8 groups, and commands can be broadcasted for specific groups, only. Tested in a mocap system with kalman estimator and mellinger controller using crazyflie_ros (high-level-setpoints branch; test_high_level.py).
Thanks for the PR @whoenig! My understanding is that with the code already merged is that we have to send the commands when needed. How do you upload and execute a series of command, is there a separate module implemented for that? |
@ataffanel in the Crazyswarm architecture, we have the python script that sends commands to the crazyflie-ros server. The commander messages are implemented as ROS services (aka remote procedure calls) that return immediately, even if the commanded action takes a long time. The script Since we work with multi-robot teams, we have never wanted to upload any complex sequence because we need all the robots to stay coordinated. If we were to upload sequences, we would still need a mode where we can tell all the robots to advance to the next command at the same time, to ensure synchronization. Given this requirement, it is not any easier than just sending the commands at the right time. However, I can see how a command queue would be useful for other kinds of research, or for operation without a PC. |
This adds the possibility to upload polynomial trajectories using the existing memory interface. Trajectories can be executed with the high-level commander. Tested with crazyflie_ros (test_high_level.py). See issue bitcraze#293.
Just a few more comments:
|
Another update on the current status:
|
…if the loco positioning deck is mounted. Closes bitcraze#293
This issue is to discuss the design of a high-level commander (@jpreiss , @mgreiff , @mikehamer).
Goal
The current commander allows for different high-frequency setpoints, such as attitude control, velocity control, or trajectory control. A high-level mode would allow to set high-level goals, while the low-level setpoints are generated on-board. Such a mode can, for example, include:
Challenges
Proposed Design
We can discuss the actual CRTP packets later; the first step is to agree on how to integrate such a on-board setpoint generator properly. We already successfully use such a high-level commander for the Crazyswarm.
The text was updated successfully, but these errors were encountered: