Get rid of Python and other dependencies

asked 2019-04-15 07:16:07 -0500

yihuatan gravatar image

Hi,

I am planning on making a minimal ROS installation; either ROS1 or ROS2 is fine. It is supposed to be ported to tiny embedded systems that have little support for the rich dependencies that full-scale ROS needs. Therefore, I want the ROS installation to be as small as possible, preserving only the essential functionalities such as communications. So,

How should I tailor the code? ROS installation guide introduces a bare-bones configuration. Is it the minimal ROS that can work normally?

Is it possible to get rid of Python totally? I notice that even core packages (e.g. ros_comm of ROS1, rosidl of ROS2) have much Python code. Is it possible to remove the Python code?

I noticed that rosdep installed many dependencies before installing ROS. Is it possible to get rid of them as well and make ROS more self-contained? It is hard to port if ROS depends on too many things.

Thank you!

edit retag flag offensive close merge delete

Comments

I'm not an expert, but I would probably suggest to either look at alternative ROS 1 implementations (ie: those that reuse the concepts but not the code) or go for ROS 2 immediately. ROS 1 was not designed for "tiny embedded systems" and will be hard to scale down to that level. Take a look at #q319928 fi, where micro-ros is mentioned.

re: get rid of Python: that will depend on what you mean with "ROS minimal installation". The ROS master fi is written in Python. Many of the utility pkgs are written in Python (rospkg, catkin_pkg, roslaunch, rostopic, rosservice, etc). If you don't need any of that (only need/want ROS-compatible pub-sub fi) then Python can probably be left out, but otherwise it's going to be difficult.


Edit:

and make ROS more self-contained?

Any answer to this would probably depend on what you exactly understand to ...(more)

gvdhoorn gravatar imagegvdhoorn ( 2019-04-15 07:37:58 -0500 )edit