Skip to main content
added 27 characters in body
Source Link

This is a bit obscure. I am trying to run moveit2 on a raspberry pi zero 2 w but the systems resources are so low that I can not really compile on that machine.

So I got a pi 5 for building the whole project, then I rsync the "install" directory to the pi zero. When I do this the launch can't load the plugin and reports the following:

[ros2_control_node-4] [INFO] [1713065838.802180696] [controller_manager]: Subscribing to '/robot_description' topic for robot description.             
[ros2_control_node-4] [INFO] [1713065838.803190173] [controller_manager]: update rate is 100 Hz                                                                     
[ros2_control_node-4] [INFO] [1713065838.840194510] [controller_manager]: Received robot description from topic.                           
[ros2_control_node-4] [INFO] [1713065838.848604593] [resource_manager]: Loading hardware 'FakeSystem'                                                               
[ros2_control_node-4] [ERROR] [1713065838.849262821] [controller_manager]: The published robot description file (urdf) seems not to be genuine. The following error 
was caught:According to the loaded plugin descriptions the class k1_control/RobotSystem with base class type hardware_interface::SystemInterface does not exist. Dec
lared types are  mock_components/GenericSystem test_hardware_components/TestSystemCommandModes test_hardware_components/TestTwoJointSystem     

However is I compile the same code on the pi zero and launch it it works.

Both the pi zero and the pi 5 are running ubuntu 22.04 64 bit. I don't think it matters but the pi 5 only currently supports ubuntu 23.04 so I use Multipass to host a 22.04 container where the compiling takes place.

Also I can launch on the pi 5 and it works as well.

The paths for the source tree are different on the two systems because the container image just uses a generic user called "ubuntu" so the home directory is /home/ubuntu where the pi zero has a different user account name.

I essentially moved the destination of the install on the pi zero so it would have a matching path, sourced the setup.bash and tried to launch but still got the same failure.

Anyone have any thoughts?

Solution Posted Below

This is a bit obscure. I am trying to run moveit2 on a raspberry pi zero 2 w but the systems resources are so low that I can not really compile on that machine.

So I got a pi 5 for building the whole project, then I rsync the "install" directory to the pi zero. When I do this the launch can't load the plugin and reports the following:

[ros2_control_node-4] [INFO] [1713065838.802180696] [controller_manager]: Subscribing to '/robot_description' topic for robot description.             
[ros2_control_node-4] [INFO] [1713065838.803190173] [controller_manager]: update rate is 100 Hz                                                                     
[ros2_control_node-4] [INFO] [1713065838.840194510] [controller_manager]: Received robot description from topic.                           
[ros2_control_node-4] [INFO] [1713065838.848604593] [resource_manager]: Loading hardware 'FakeSystem'                                                               
[ros2_control_node-4] [ERROR] [1713065838.849262821] [controller_manager]: The published robot description file (urdf) seems not to be genuine. The following error 
was caught:According to the loaded plugin descriptions the class k1_control/RobotSystem with base class type hardware_interface::SystemInterface does not exist. Dec
lared types are  mock_components/GenericSystem test_hardware_components/TestSystemCommandModes test_hardware_components/TestTwoJointSystem     

However is I compile the same code on the pi zero and launch it it works.

Both the pi zero and the pi 5 are running ubuntu 22.04 64 bit. I don't think it matters but the pi 5 only currently supports ubuntu 23.04 so I use Multipass to host a 22.04 container where the compiling takes place.

Also I can launch on the pi 5 and it works as well.

The paths for the source tree are different on the two systems because the container image just uses a generic user called "ubuntu" so the home directory is /home/ubuntu where the pi zero has a different user account name.

I essentially moved the destination of the install on the pi zero so it would have a matching path, sourced the setup.bash and tried to launch but still got the same failure.

Anyone have any thoughts?

This is a bit obscure. I am trying to run moveit2 on a raspberry pi zero 2 w but the systems resources are so low that I can not really compile on that machine.

So I got a pi 5 for building the whole project, then I rsync the "install" directory to the pi zero. When I do this the launch can't load the plugin and reports the following:

[ros2_control_node-4] [INFO] [1713065838.802180696] [controller_manager]: Subscribing to '/robot_description' topic for robot description.             
[ros2_control_node-4] [INFO] [1713065838.803190173] [controller_manager]: update rate is 100 Hz                                                                     
[ros2_control_node-4] [INFO] [1713065838.840194510] [controller_manager]: Received robot description from topic.                           
[ros2_control_node-4] [INFO] [1713065838.848604593] [resource_manager]: Loading hardware 'FakeSystem'                                                               
[ros2_control_node-4] [ERROR] [1713065838.849262821] [controller_manager]: The published robot description file (urdf) seems not to be genuine. The following error 
was caught:According to the loaded plugin descriptions the class k1_control/RobotSystem with base class type hardware_interface::SystemInterface does not exist. Dec
lared types are  mock_components/GenericSystem test_hardware_components/TestSystemCommandModes test_hardware_components/TestTwoJointSystem     

However is I compile the same code on the pi zero and launch it it works.

Both the pi zero and the pi 5 are running ubuntu 22.04 64 bit. I don't think it matters but the pi 5 only currently supports ubuntu 23.04 so I use Multipass to host a 22.04 container where the compiling takes place.

Also I can launch on the pi 5 and it works as well.

The paths for the source tree are different on the two systems because the container image just uses a generic user called "ubuntu" so the home directory is /home/ubuntu where the pi zero has a different user account name.

I essentially moved the destination of the install on the pi zero so it would have a matching path, sourced the setup.bash and tried to launch but still got the same failure.

Anyone have any thoughts?

Solution Posted Below

Source Link

ROS2 "install" can't load plugins on other machines

This is a bit obscure. I am trying to run moveit2 on a raspberry pi zero 2 w but the systems resources are so low that I can not really compile on that machine.

So I got a pi 5 for building the whole project, then I rsync the "install" directory to the pi zero. When I do this the launch can't load the plugin and reports the following:

[ros2_control_node-4] [INFO] [1713065838.802180696] [controller_manager]: Subscribing to '/robot_description' topic for robot description.             
[ros2_control_node-4] [INFO] [1713065838.803190173] [controller_manager]: update rate is 100 Hz                                                                     
[ros2_control_node-4] [INFO] [1713065838.840194510] [controller_manager]: Received robot description from topic.                           
[ros2_control_node-4] [INFO] [1713065838.848604593] [resource_manager]: Loading hardware 'FakeSystem'                                                               
[ros2_control_node-4] [ERROR] [1713065838.849262821] [controller_manager]: The published robot description file (urdf) seems not to be genuine. The following error 
was caught:According to the loaded plugin descriptions the class k1_control/RobotSystem with base class type hardware_interface::SystemInterface does not exist. Dec
lared types are  mock_components/GenericSystem test_hardware_components/TestSystemCommandModes test_hardware_components/TestTwoJointSystem     

However is I compile the same code on the pi zero and launch it it works.

Both the pi zero and the pi 5 are running ubuntu 22.04 64 bit. I don't think it matters but the pi 5 only currently supports ubuntu 23.04 so I use Multipass to host a 22.04 container where the compiling takes place.

Also I can launch on the pi 5 and it works as well.

The paths for the source tree are different on the two systems because the container image just uses a generic user called "ubuntu" so the home directory is /home/ubuntu where the pi zero has a different user account name.

I essentially moved the destination of the install on the pi zero so it would have a matching path, sourced the setup.bash and tried to launch but still got the same failure.

Anyone have any thoughts?