HybridRobotics / cbf

An open source repository for control, planning and navigation about control barrier functions.
Apache License 2.0
167 stars 26 forks source link

Apply CBF on discrete action space #23

Open Lplenka opened 2 years ago

Lplenka commented 2 years ago

Hello @junzengx14 @koushils @ayush-agrawal

Thanks for sharing this repo and your work in using CBF and CLF for the safety and stability of non-linear dynamic systems. I have read two of your papers, "Safety-Critical Control and Planning for Obstacle Avoidance between Polytopes with Control Barrier Functions" arxiv and "Enhancing Feasibility and Safety of Nonlinear Model Predictive Control with Discrete-Time Control Barrier Functions" IEEE.

Very interesting papers.

I am working on a similar project where the agent has discrete action space (left, right, forward etc.). As far as I understood, you have applied CBF-CLF in continuous action space (steering and acceleration).

Does this implementation of CBF also work for discrete action space?

junzengx14 commented 2 years ago

Hi Lalu,

Thank you for raising this issue and glad that you are interested in our work. You are right that we apply CLF and CBF in continuous action space. For potential implementation of CBF on discrete action space, I wouldn't say it's out of possibility but it would be definitely challenging as both DDP and lie derivative thing won't be able to work for discrete action space.

I'm glad to follow up more in email, please reach out to zengjunsjtu@berkeley.edu if you are interested in a further discussion or we can directly hop on a call.

Lplenka commented 2 years ago

Thanks for your reply @junzengx14

I hope you meant differential dynamic programming by DDP. It makes sense that differential dynamic programming and lie derivatives wouldn't work for discrete action space. Probably that's why CBF and CLF are mostly applied to continuous action space in literature.

I would like to learn more about these limitations of CBF and find some way of addressing them. Happy to connect 😄. I will send you a mail.