Hello, i already stated this as a github issue Link, but got kindly redirected to ROS Answers with my issues.
Hello,
While trying to follow the official SROS Tutorials (http://wiki.ros.org/SROS/Tutorials), I had some issues when trying to start the sroskeyserver
. The same errors also occur when running the prebuilt Docker container, so i suppose, that the problem is due to some inconsistencies in the SROS repository or its dependencies.
At first i've pulled the docker and tried to run the command from the install page:
docker run --rm -it \
osrf/sros \
bash -c "source /ros_entrypoint.sh && \
sroskeyserver & \
sleep 3 && \
sroslaunch rospy_tutorials talker_listener.launch"
Somehow this runs into the following problem:
Traceback (most recent call last):
File "/root/sros_catkin_ws/install/bin/sroskeyserver", line 2, in <module>
import sros
File "/root/sros_catkin_ws/install/lib/python2.7/dist-packages/sros/__init__.py", line 7, in <module>
import rosgraph.sros_consts as sros_consts
ImportError: No module named rosgraph.sros_consts
Traceback (most recent call last):
File "/root/sros_catkin_ws/install/bin/sroslaunch", line 2, in <module>
import sros
File "/root/sros_catkin_ws/install/lib/python2.7/dist-packages/sros/__init__.py", line 7, in <module>
import rosgraph.sros_consts as sros_consts
ImportError: No module named rosgraph.sros_consts
Therefore I checked the ros_comm package, which is not available in the Docker container as it is ignored by using an AMENT_IGNORE
file.
./src/ros_comm/ros_comm/AMENT_IGNORE
./src/ros_comm/clients/AMENT_IGNORE
./src/ros_comm/tools/rostopic/AMENT_IGNORE
./src/ros_comm/tools/rosmsg/AMENT_IGNORE
./src/ros_comm/tools/roslaunch/AMENT_IGNORE
./src/ros_comm/tools/rosbag/AMENT_IGNORE
./src/ros_comm/tools/rosparam/AMENT_IGNORE
./src/ros_comm/tools/topic_tools/AMENT_IGNORE
./src/ros_comm/tools/rosnode/AMENT_IGNORE
./src/ros_comm/tools/rosbag_storage/AMENT_IGNORE
./src/ros_comm/tools/rosservice/AMENT_IGNORE
./src/ros_comm/tools/rosout/AMENT_IGNORE
./src/ros_comm/tools/rosconsole/AMENT_IGNORE
./src/ros_comm/tools/rosgraph/AMENT_IGNORE
./src/ros_comm/tools/rosmaster/AMENT_IGNORE
./src/ros_comm/test/AMENT_IGNORE
./src/ros_comm/utilities/AMENT_IGNORE
So I tried to remove the AMENT_IGNORE
files, which (after building again) resulted at least in a usable ros_comm installation (i.e. import in python was working), however also resulted in "abandoned packages".
Furthermore i tried again to start the sroskeyserver
, but there were some packages missing (cryptography, pyopenssl, apparmor).
After finally installing all of the missing dependencies, i ran into the following error trying to start the keyserver again:
root@5c14d417a2ec:~/sros_catkin_ws# sroskeyserver
Starting an XML-RPC server to bootstrap SSL key distribution...
Traceback (most recent call last):
File "/root/sros_catkin_ws/install/bin/sroskeyserver", line 3, in <module>
sros.sroskeyserver_main()
File "/root/sros_catkin_ws/install/lib/python2.7/dist-packages/sros/__init__.py", line 179, in sroskeyserver_main
keyserver.start_keyserver(keyserver_config, keystore_path, keyserver_mode, port)
File "/root/sros_catkin_ws/install/lib/python2.7/dist-packages/rosgraph/keyserver.py", line 143, in start_keyserver
keyserver.stop()
UnboundLocalError: local variable 'keyserver' referenced before assignment
So this looks like an more in-depth error for me and since i used the official Docker image, I was wondering if there is already a known solution for this. Is SROS still maintained or should I check out SROS2? Even if SROS is not maintained anymore, I am still interested in a solution for this problem, as I am currently evaluating different security concepts for ROS. It would be nice, if someone could help me.
Thank you
Originally posted by Nitro24 on ROS Answers with karma: 3 on 2018-07-24
Post score: 0