Removing runtime dependency on Python
Is it possible to remove runtime dependency of ROS on Python. Catkin, the build system, may need python for code generation from messages; but how difficult it is to use only C++ libs when ROS runs on any target ? Has anybody in the community given a try ?
Thanks in advance !
Could you be a bit more specific about what you mean with "when ROS runs on any target"? Are we just talking a nr of off-board developed nodes which participate in a node graph that is managed also off-board, or a full ROS dev environment?
And to avoid an xy-problem: what is it you're trying to achieve? There may be easier ways.
Hello gvdhoorn My question was in context of running ROS on an embedded system, which may not have python on. It may be running a custom linux distro built by yocto; just as an example. In this case, is it possible to remove python based packages from ROS and run it with only c++ packages.
In general: removing Python from everything will be difficult, as Python is used extensively throughout ROS (the master is pure Python fi). Deploying a subset that doesn't use Python is probably doable, but things like
rosrun
androslaunch
will not work. Depending on how much convenience .... you'd like to maintain, this shouldn't be too much of a blocker though.
As to use of ROS on embedded systems with off-board built rootfs, you might want to take a look at bmwcarit/meta-ros: a "ROS Layer for OpenEmbedded Linux".
Yes. The original catkin system can also be leveraged for off-board cross compilation by overriding default compiler and sysroot paths in cmake. Any idea whether python free flavor of ROS is on the contributor's agenda ?
I'm not privy to what everyone else is planning to do / doing, but I'm not aware of any work towards something that does not use Python. On the contrary even.