0
$\begingroup$

Rosanswers logo

Further investigation suggests this is unique to my docker setup. When I build the image, it indicates that pyassimp and ros-kinetic-moveit-commander are installed, but when I run the container and apt-get install ros-kinetic-moveit-commander it installs additional code and, after that, moveit_commander imports successfully.

Here is the result of apt-get install ros-kinetic-moveit-commander from the original build:

Collecting pyassimp
  Downloading pyassimp-3.3.tar.gz (94kB)
Installing collected packages: pyassimp
  Running setup.py install for pyassimp: started
    Running setup.py install for pyassimp: finished with status 'done'
Successfully installed pyassimp-3.3
Reading package lists...
Building dependency tree...
Reading state information...
libassimp-dev is already the newest version (3.2~dfsg-3).
libassimp-dev set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 496 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  libccd-dev libccd2 libfcl-0.5-dev libfcl0.5 libglew-dev libglew1.13
  python-bs4 python-chardet python-html5lib python-lxml python-pyassimp
  ros-kinetic-moveit-core ros-kinetic-moveit-kinematics
  ros-kinetic-moveit-msgs ros-kinetic-moveit-ros-manipulation
  ros-kinetic-moveit-ros-move-group ros-kinetic-moveit-ros-perception
  ros-kinetic-moveit-ros-planning ros-kinetic-moveit-ros-planning-interface
  ros-kinetic-moveit-ros-warehouse ros-kinetic-object-recognition-msgs
  ros-kinetic-octomap-msgs ros-kinetic-srdfdom ros-kinetic-urdfdom-py
  ros-kinetic-warehouse-ros
Suggested packages:
  glew-utils python-genshi python-lxml-dbg python-lxml-doc
The following NEW packages will be installed:
  libccd-dev libccd2 libfcl-0.5-dev libfcl0.5 libglew-dev libglew1.13
  python-bs4 python-chardet python-html5lib python-lxml python-pyassimp
  ros-kinetic-moveit-commander ros-kinetic-moveit-core
  ros-kinetic-moveit-kinematics ros-kinetic-moveit-msgs
  ros-kinetic-moveit-ros-manipulation ros-kinetic-moveit-ros-move-group
  ros-kinetic-moveit-ros-perception ros-kinetic-moveit-ros-planning
  ros-kinetic-moveit-ros-planning-interface ros-kinetic-moveit-ros-warehouse
  ros-kinetic-object-recognition-msgs ros-kinetic-octomap-msgs
  ros-kinetic-srdfdom ros-kinetic-urdfdom-py ros-kinetic-warehouse-ros
0 upgraded, 26 newly installed, 0 to remove and 496 not upgraded.
Need to get 6,764 kB of archives.
After this operation, 56.7 MB of additional disk space will be used.

Here is the result of apt-get install ros-kinetic-moveit-commander from the docker container, showing that it does not have moveit-commander installed. All the other moveit packages were installed. After this step, moveit_commander imports successfully.

Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  python-pyassimp
The following NEW packages will be installed:
  python-pyassimp ros-kinetic-moveit-commander
0 upgraded, 2 newly installed, 0 to remove and 496 not upgraded.
Need to get 67.3 kB of archives.
After this operation, 345 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://packages.ros.org/ros/ubuntu xenial/main amd64 ros-kinetic-moveit-commander amd64 0.9.11-0xenial-20180125-180255-0800 [37.3 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial/universe amd64 python-pyassimp all 3.2~dfsg-3 [30.0 kB]
Fetched 67.3 kB in 0s (151 kB/s)                      
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package python-pyassimp.
(Reading database ... 100503 files and directories currently installed.)
Preparing to unpack .../python-pyassimp_3.2~dfsg-3_all.deb ...
Unpacking python-pyassimp (3.2~dfsg-3) ...
Selecting previously unselected package ros-kinetic-moveit-commander.
Preparing to unpack .../ros-kinetic-moveit-commander_0.9.11-0xenial-20180125-180255-0800_amd64.deb ...
Unpacking ros-kinetic-moveit-commander (0.9.11-0xenial-20180125-180255-0800) ...
Setting up python-pyassimp (3.2~dfsg-3) ...
Setting up ros-kinetic-moveit-commander (0.9.11-0xenial-20180125-180255-0800) ...

This is the start of the original question:

I was able to install moveit with binaries, as per the tutorial and it runs. However, when I try to use it in my own code, I get this error when importing moveit_commander.

ImportError: No module named moveit_commander

I am using Ubuntu 16.04 and Kinetic. I re-checked the dependencies for moveit, and have installed:

 ros-kinetic-moveit-core
 ros-kinetic-moveit-kinematics 
 ros-kinetic-moveit-ros-planning 
 ros-kinetic-moveit-ros-move-group 
 ros-kinetic-moveit-planners-ompl 
 ros-kinetic-moveit-ros-visualization 
 ros-kinetic-moveit-simple-controller-manager
 ros-kinetic-moveit-commander

as well as doing apt-get update and apt-get upgrade

The whole thing builds and moveit runs fine. But when I try to import moveit_commander into my planning program I get this error.

Some of the pages addressing this issue suggested upgrading pyassimp to version 3.3, so I did that as well (see below). It installed pyassimp version 3.3 but did not fix the error:

apt-get install python-setuptools
easy_install pip
pip install pyassimp

Originally posted by dan on ROS Answers with karma: 875 on 2018-03-13

Post score: 0


Original comments

Comment by gvdhoorn on 2018-03-13:
Just making sure: you're using regular, v2 python, right (python --version outputs something in the 2.x.y range). No Anaconda, etc?

Comment by dan on 2018-03-13:
yes, python --version shows Python 2.7.12, no anaconda, but it is a docker build.

Comment by dan on 2018-03-13:
I edited the question, as I discovered that the problem has to do with the docker build rather than an overall system question. When building the docker image, it says it installs ros-kinetic-moveit-commander, but when the container is run, I have to install it again to make it work.

Comment by gvdhoorn on 2018-03-13:
I'm confused: the first few lines of the "the original build" output shows (what appears to be) a pip installation of pyassimp. The rest shows apt-get output. Do you build MoveIt from sources?

Comment by dan on 2018-03-13:
moveit was installed from binaries. Apparently, pyassimp needs to be installed with pip. When I installed moveit-commander from inside the container, it installed both pyassimp and moveit-commander. For the docker build I tried it with and without the pip install and got the same import error.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Problem solved. I standardly use this line to install any dependencies I might have missed:

rosdep install --from-paths src --ignore-src -r -y

It seems that was messing up the moveit-commander installation for reasons I cannot fathom. In any case, removing that line solved the problem. I also removed the pip install of pyassimp. It still complains that pyassimp is not installed, but that is a known issue that does not seem to bother the execution.


Originally posted by dan with karma: 875 on 2018-03-13

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

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