Skip to content
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

Discussion about new system structure #618

Open
sugihara-16 opened this issue Jun 20, 2024 · 6 comments
Open

Discussion about new system structure #618

sugihara-16 opened this issue Jun 20, 2024 · 6 comments

Comments

@sugihara-16
Copy link
Contributor

For developers,

In order to refine this aerial robot system into a more sophisticated OSS, I suggest the following reforms:

  • Support ROS2
  • Plugin-like firmware architecture
  • Useful interface for light users

I would like to discuss the architecture of the system we should aim for and the specific tasks required to achieve it.

@sugihara-16
Copy link
Contributor Author

sugihara-16 commented Jun 20, 2024

Transition to ROS2

  • Our system should support ROS2 for real-time and reliability reasons, while it should also support ROS1 for a while.
  • In addition to the system structure, we also have to introduce new implementation to communicate with low level processor via ros because ROS2 doesn't support rosserial.

ToDo

  • Complete separation of ros-dependent and -independent parts of the system.
  • Implement both ROS1 and ROS2version for ROS dependencies
  • Introducing micro-ros instead of rosserial.

@sugihara-16
Copy link
Contributor Author

Plugin structure for firmware

  • To build firmware for a variety of hardware configurations, a plug-in system composed of appropriately modularized programs is required.
  • Modularizing the program for each small function makes it easy to develop additional features.
    image
  • In addition, as software becomes a plug-in system, the entire system needs to be more clearly hierarchized.

ToDo

  • Implementation of a mechanism that enables setup of software configurations from higher-level processes
  • Modularization of each feature

@tongtybj
Copy link
Collaborator

I am just curious about what "Nervous system" stands for in the about figure.

@sugihara-16
Copy link
Contributor Author

I referred https://www.jstage.jst.go.jp/article/jssst/17/6/17_6_560/_pdf/-char/ja , and according ot this, "Nervous system" represents the processes that should be autonomously executed in high frequency and independently from the high-level process such as controller, estimator, and so on. In my understanding, in the case of RTOS, functions themselves that are called directly by timers correspond to "Nervous sytems".

@tongtybj
Copy link
Collaborator

Thx for sharing the article. I also learnt the similar design philosophy from ros_control and gazebo:

@sugihara-16
Copy link
Contributor Author

Thx, these two are pretty useful examples.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants