0
$\begingroup$

Rosanswers logo

Hi everyone,

I am currently trying to run ROS kinetic with Moveit! on my Raspberry Pi 3 board.

I successfully installed Ubuntu Mate 16.04 (https://ubuntu-mate.org/raspberry-pi/), ROS kinetic (http://wiki.ros.org/kinetic/Installation/Ubuntu) and Moveit! packages on the Raspberry.

I also successfully built all the packages for my custom robot with catkin. And I can launch my nodes, set robot_description param, etc... The problems comes when I launch move_group (with move_group.launch from my moveit config folder)

Note that everything is working fine on my Ubuntu 16.04 desktop installation, I created and tested all my packages. Here is what is happening on my laptop, while running "roslaunch my_robot_package_moveit_config move_group.launch" :

...
...
[ INFO] [1482395047.420033154]: Loading robot model 'my_robot'...
[ INFO] [1482395047.511544563]: Publishing maintained planning scene on 'monitored_planning_scene'
[New Thread 0x7fffcbdf8700 (LWP 5206)]
...
...

However, on the Raspberry Pi 3 with Ubuntu Mate, with the exact same installation, config and files :

NODES
  /
    move_group (moveit_ros_move_group/move_group)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[move_group-1]: started with pid [17610]
[ INFO] [1482398385.724625628]: Loading robot model 'my_robot'...
[ INFO] [1482398386.383339632]: Loading robot model 'my_robot'...
[move_group-1] process has died [pid 17610, exit code -11, cmd /opt/ros/kinetic/lib/moveit_ros_move_group/move_group __name:=move_group __log:=/home/niryo/.ros/log/d73c13fc-c826-11e6-b1b9-b827eb50f10b/move_group-1.log].
log file: /home/my_robot/.ros/log/d73c13fc-c826-11e6-b1b9-b827eb50f10b/move_group-1*.log

I also launched move_group.launch with debug:=true :

...
... 
[ INFO] [1482398405.376777619]: Loading robot model 'my_robot'...

Thread 1 "move_group" received signal SIGSEGV, Segmentation fault.
0x76f73f96 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) ()
   from /opt/ros/kinetic/lib/libmoveit_planning_scene_monitor.so.0.9.3
...
...

I also tried with Ubuntu ARM (https://wiki.ubuntu.com/ARM/RaspberryPi) and I got the same error.

Does anyone know how to fix that ? Is it a Raspberry Pi relative problem ? Or Ubuntu version problem ? Or a Moveit! problem ?

Thanks


Originally posted by renarded on ROS Answers with karma: 161 on 2016-12-22

Post score: 1


Original comments

Comment by tommytwoeyes on 2017-01-11:
Apologies for a question unrelated to yours, but I'm a ROS beginner. Based on your ROS/Pi experience: For a new project, I can get a Pi 3, or wait until Feb 29, when the Pi 4 may (or may not) come out. Some speculate there will be no update this year. Is a Pi 3 sufficient for ROS, or should I wait?

Comment by renarded on 2017-01-11:
@tommytwoeyes I've heard that there will be no Pi 4 for 2017, but many improvement on OSes around RPI3. RPI3 is powerful enough for most ROS applications, so I think you'd better start with Pi3 now.

Comment by roser on 2017-04-26:
Hey, I'm facing the same issue. Did you manage to solve this?

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I finally solved my problem :

I had to remove all geometry stuff from my URDF file : visual and collision, including box, cylinder and meshes. That way move_group is not having this segfault and everything is running.

So I'm guessing I am missing some dependencies or packages on my Raspberry Pi 3 with armhf (reminder : everything works well on my 64 bit laptop and on my 32 bit laptop).


Note : this is only a partial answer, as now I have another problem : collisions will not be detected because I removed them from the URDF.


Originally posted by renarded with karma: 161 on 2017-01-10

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by v4hn on 2017-01-12:
This is not an answer at all.. As you stated collision testing doesn't work if you remove the collision bodies. :)

I know there have been problems with the binary package of FCL on non-x86 platforms in the past. Maybe this is still a problem? You could try to build FCL from source.

Comment by renarded on 2017-01-17:
@v4hn thanks for your advice, I will try that when I have time and will let you know about the result

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.