Difference between revisions of "ROS2"
From ElphelWiki
(Created page with "==GitHub== https://github.com/bmwcarit/meta-ros.git ==ROS1== * Won't build ==ROS2== * Add path to bblayers.conf * Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:...") |
(→GitHub) |
||
(26 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | ==GitHub== | + | ==<font color='blue'>GitHub</font>== |
https://github.com/bmwcarit/meta-ros.git | https://github.com/bmwcarit/meta-ros.git | ||
+ | <font color='red'>https://github.com/erlerobot/meta-ros2</font> ? | ||
− | == | + | ==<font color='blue'>ROS2</font>== |
− | |||
− | == | + | ===Build=== |
* Add path to bblayers.conf | * Add path to bblayers.conf | ||
* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb: | * Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb: | ||
Line 13: | Line 13: | ||
ros2msg \ | ros2msg \ | ||
ros2run \ | ros2run \ | ||
+ | |||
+ | <font color='green'>'''Notes:''' | ||
+ | * Is this a required minimum? | ||
+ | * '''ROS_USE_PYTHON3 = "yes"''' no effect? It already uses python3?</font> | ||
+ | ===Work=== | ||
+ | |||
+ | ====Available packages==== | ||
+ | * SSH session: | ||
+ | root@elphel393:~# export AMENT_PREFIX_PATH=/usr | ||
+ | root@elphel393:~# ros2 pkg list | ||
+ | <font size='1'>builtin_interfaces | ||
+ | demo_nodes_cpp | ||
+ | example_interfaces | ||
+ | geometry_msgs | ||
+ | rcl | ||
+ | rcl_interfaces | ||
+ | rclcpp | ||
+ | rclpy | ||
+ | rcutils | ||
+ | rmw | ||
+ | rmw_fastrtps_cpp | ||
+ | rosidl_cmake | ||
+ | rosidl_generator_c | ||
+ | rosidl_generator_cpp | ||
+ | rosidl_parser | ||
+ | rosidl_typesupport_interface | ||
+ | rosidl_typesupport_introspection_c | ||
+ | rosidl_typesupport_introspection_cpp | ||
+ | sensor_msgs</font> | ||
+ | |||
+ | ====Test Talker and Listener==== | ||
+ | * SSH session 1: | ||
+ | root@elphel393:~# export AMENT_PREFIX_PATH=/usr | ||
+ | root@elphel393:~# ros2 run demo_nodes_cpp talker | ||
+ | * SSH session 2: | ||
+ | root@elphel393:~# export AMENT_PREFIX_PATH=/usr | ||
+ | root@elphel393:~# ros2 run demo_nodes_cpp listener | ||
+ | |||
+ | <font color='green'>'''Notes:'''</font> | ||
+ | * <font color='green'>If AMENT_PREFIX_PATH is not set then:</font> | ||
+ | <font size='1'>Traceback (most recent call last): | ||
+ | File "/usr/bin/ros2", line 11, in <module> | ||
+ | load_entry_point('ros2cli==0.4.0', 'console_scripts', 'ros2')() | ||
+ | File "/usr/lib/python3.5/site-packages/ros2cli/cli.py", line 64, in main | ||
+ | rc = extension.main(parser=parser, args=args) | ||
+ | File "/usr/lib/python3.5/site-packages/ros2run/command/run.py", line 59, in main | ||
+ | executable_name=args.executable_name) | ||
+ | File "/usr/lib/python3.5/site-packages/ros2run/api/__init__.py", line 30, in get_executable_path | ||
+ | paths = get_executable_paths(package_name=package_name) | ||
+ | File "/usr/lib/python3.5/site-packages/ros2pkg/api/__init__.py", line 41, in get_executable_paths | ||
+ | prefix_path = get_prefix_path(package_name) | ||
+ | File "/usr/lib/python3.5/site-packages/ros2pkg/api/__init__.py", line 34, in get_prefix_path | ||
+ | prefix_path = get_package_prefix(package_name) | ||
+ | File "/usr/lib/python3.5/site-packages/ament_index_python/packages.py", line 49, in get_package_prefix | ||
+ | content, package_prefix = get_resource('packages', package_name) | ||
+ | File "/usr/lib/python3.5/site-packages/ament_index_python/resources.py", line 37, in get_resource | ||
+ | for path in get_search_paths(): | ||
+ | File "/usr/lib/python3.5/site-packages/ament_index_python/search_paths.py", line 30, in get_search_paths | ||
+ | "Environment variable '{}' is not set or empty".format(AMENT_PREFIX_PATH_ENV_VAR)) | ||
+ | <font color='red'>'''OSError: Environment variable 'AMENT_PREFIX_PATH' is not set or empty'''</font></font> | ||
+ | |||
+ | ==<font color='blue'>ROS1</font>== | ||
+ | |||
+ | ===Build=== | ||
+ | <font color='red'>'''Won't build'''</font> | ||
+ | <font size='1'>Build Configuration: | ||
+ | BB_VERSION = "1.37.0" | ||
+ | BUILD_SYS = "x86_64-linux" | ||
+ | NATIVELSBSTRING = "universal" | ||
+ | TARGET_SYS = "arm-poky-linux-gnueabi" | ||
+ | MACHINE = "elphel393" | ||
+ | DISTRO = "poky" | ||
+ | DISTRO_VERSION = "2.4+snapshot-20181204" | ||
+ | TUNE_FEATURES = "arm armv7a vfp neon cortexa9" | ||
+ | TARGET_FPU = "softfp" | ||
+ | meta | ||
+ | meta-poky | ||
+ | meta-yocto-bsp = "HEAD:72867393fe2004ab9f0ee23eb09a975c82938b9e" | ||
+ | meta-ezynq = "rocko:046de13c06cc248b725cb7b9928f35d4a369b50f" | ||
+ | meta-elphel393 = "rocko:0cea9b9b8776f0fe725316f1be1501396c95feb4" | ||
+ | meta-ros = "HEAD:72068b17e4192b51e09c8dc633805a35edac8701" | ||
+ | meta-xilinx-bsp = "HEAD:a18947c20dba2c0c38db8bde1ad4684995df4bbd" | ||
+ | meta-oe | ||
+ | meta-python | ||
+ | meta-networking | ||
+ | meta-webserver = "HEAD:34aa4c3202b427f59f843dc43a4e1afda4f81d13"</font> | ||
+ | |||
+ | * Error 1: | ||
+ | ** ROS_USE_PYTHON3 = "yes" | ||
+ | ** IMAGE_INSTALL += "roslaunch" | ||
+ | |||
+ | <font size='1'>NOTE: Resolving any missing task queue dependencies | ||
+ | ERROR: Nothing RPROVIDES 'python3-pycrypto' (but /home/oleg/GIT/elphel393_rocko_clean_install/meta/meta-ros/recipes-devtools/python/python3-paramiko_1.16.0.bb RDEPENDS on or otherwise requires it) | ||
+ | NOTE: Runtime target 'python3-pycrypto' is unbuildable, removing... | ||
+ | Missing or unbuildable dependency chain was: ['python3-pycrypto'] | ||
+ | NOTE: Runtime target 'python3-paramiko' is unbuildable, removing... | ||
+ | Missing or unbuildable dependency chain was: ['python3-paramiko', 'python3-pycrypto'] | ||
+ | NOTE: Runtime target 'roslaunch' is unbuildable, removing... | ||
+ | Missing or unbuildable dependency chain was: ['roslaunch', 'python3-paramiko', 'python3-pycrypto'] | ||
+ | ERROR: Required build target 'core-image-elphel393' has no buildable providers. | ||
+ | Missing or unbuildable dependency chain was: ['core-image-elphel393', 'roslaunch', 'python3-paramiko', 'python3-pycrypto']</font> | ||
+ | |||
+ | * Successful build: | ||
+ | ** IMAGE_INSTALL += "roslaunch" | ||
+ | |||
+ | <font size='1'>NOTE: Resolving any missing task queue dependencies | ||
+ | ERROR: Nothing RPROVIDES 'python3-pycrypto' (but /home/oleg/GIT/elphel393_rocko_clean_install/meta/meta-ros/recipes-devtools/python/python3-paramiko_1.16.0.bb RDEPENDS on or otherwise requires it) | ||
+ | NOTE: Runtime target 'python3-pycrypto' is unbuildable, removing... | ||
+ | Missing or unbuildable dependency chain was: ['python3-pycrypto'] | ||
+ | NOTE: Runtime target 'python3-paramiko' is unbuildable, removing... | ||
+ | Missing or unbuildable dependency chain was: ['python3-paramiko', 'python3-pycrypto'] | ||
+ | NOTE: Runtime target 'roslaunch' is unbuildable, removing... | ||
+ | Missing or unbuildable dependency chain was: ['roslaunch', 'python3-paramiko', 'python3-pycrypto'] | ||
+ | ERROR: Required build target 'core-image-elphel393' has no buildable providers. | ||
+ | Missing or unbuildable dependency chain was: ['core-image-elphel393', 'roslaunch', 'python3-paramiko', 'python3-pycrypto']</font> | ||
+ | |||
+ | |||
+ | * Error 2: | ||
+ | ** <font color='red'>Seems like '''rostopic''' causes:</font> | ||
+ | <font size='1'>ERROR: python-imaging-1.1.7-r5 do_package_qa: QA Issue: python-imaging: The compile log indicates that host include and/or library paths were used. | ||
+ | Please check the log '/home/oleg/GIT/elphel393_rocko_clean_install/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/python-imaging/1.1.7-r5/temp/log.do_compile' for more information. [compile- host-path] | ||
+ | ERROR: python-imaging-1.1.7-r5 do_package_qa: QA run found fatal errors. Please consider fixing them. | ||
+ | ERROR: python-imaging-1.1.7-r5 do_package_qa: Function failed: do_package_qa | ||
+ | ERROR: Logfile of failure stored in: /home/oleg/GIT/elphel393_rocko_clean_install/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/python-imaging/1.1.7-r5/temp/log.do_package_qa.19425 | ||
+ | ERROR: Task (/home/oleg/GIT/elphel393_rocko_clean_install/meta/meta-openembedded/meta-python/recipes-devtools/python/python-imaging_1.1.7.bb:do_package_qa) failed with exit code '1'</font> | ||
+ | |||
+ | potential links: | ||
+ | https://github.com/intel-aero/meta-intel-aero/issues/81 | ||
+ | https://github.com/bmwcarit/meta-ros/issues/395 | ||
+ | |||
+ | removed python3-imaging from '''rosbag''' - everything builds but then not really working. | ||
+ | |||
+ | with '''ROS_USE_PYTHON3 = "yes"''' stopped at finding an appropriate '''python-pycrypto''' lib | ||
+ | |||
+ | ===Work=== | ||
+ | * <font color='red'>'''Won't work'''</font> | ||
+ | |||
+ | ** There's no '''rosrun''' (does not exist?) | ||
+ | |||
+ | ** SSH session 1: | ||
+ | *** Add to /etc/hosts: | ||
+ | 127.0.0.1 elphel393.localdomain elphel393 | ||
+ | *** Export vars: | ||
+ | export ROS_ROOT=/opt/ros | ||
+ | export ROS_DISTRO=indigo | ||
+ | export ROS_PACKAGE_PATH=/opt/ros/indigo/share | ||
+ | export PATH=$PATH:/opt/ros/indigo/bin | ||
+ | export LD_LIBRARY_PATH=/opt/ros/indigo/lib | ||
+ | export PYTHONPATH=/opt/ros/indigo/lib/python2.7/site-packages | ||
+ | export ROS_MASTER_URI=http://localhost:11311 | ||
+ | export CMAKE_PREFIX_PATH=/opt/ros/indigo | ||
+ | touch /opt/ros/indigo/.catkin | ||
+ | *** Roscore | ||
+ | roscore | ||
+ | |||
+ | |||
+ | ** SSH session 2: | ||
+ | root@elphel393:~# rosnode list | ||
+ | <font size='1'>/rosout</font> | ||
+ | root@elphel393:~# rospack list | ||
+ | <font size='1'>cpp_common /opt/ros/indigo/share/cpp_common | ||
+ | genmsg /opt/ros/indigo/share/genmsg | ||
+ | genpy /opt/ros/indigo/share/genpy | ||
+ | rosbag /opt/ros/indigo/share/rosbag | ||
+ | rosbag_storage /opt/ros/indigo/share/rosbag_storage | ||
+ | rosclean /opt/ros/indigo/share/rosclean | ||
+ | rosconsole /opt/ros/indigo/share/rosconsole | ||
+ | roscpp /opt/ros/indigo/share/roscpp | ||
+ | roscpp_serialization /opt/ros/indigo/share/roscpp_serialization | ||
+ | roscpp_tutorials /opt/ros/indigo/share/roscpp_tutorials | ||
+ | rosgraph /opt/ros/indigo/share/rosgraph | ||
+ | rosgraph_msgs /opt/ros/indigo/share/rosgraph_msgs | ||
+ | roslaunch /opt/ros/indigo/share/roslaunch | ||
+ | roslib /opt/ros/indigo/share/roslib | ||
+ | roslz4 /opt/ros/indigo/share/roslz4 | ||
+ | rosmaster /opt/ros/indigo/share/rosmaster | ||
+ | rosnode /opt/ros/indigo/share/rosnode | ||
+ | rosout /opt/ros/indigo/share/rosout | ||
+ | rospack /opt/ros/indigo/share/rospack | ||
+ | rosparam /opt/ros/indigo/share/rosparam | ||
+ | rospy /opt/ros/indigo/share/rospy | ||
+ | rospy_tutorials /opt/ros/indigo/share/rospy_tutorials | ||
+ | rostime /opt/ros/indigo/share/rostime | ||
+ | rostopic /opt/ros/indigo/share/rostopic | ||
+ | std_msgs /opt/ros/indigo/share/std_msgs | ||
+ | topic_tools /opt/ros/indigo/share/topic_tools | ||
+ | xmlrpcpp /opt/ros/indigo/share/xmlrpcpp</font> |
Revision as of 18:02, 4 December 2018
Contents
GitHub
https://github.com/bmwcarit/meta-ros.git
https://github.com/erlerobot/meta-ros2 ?
ROS2
Build
- Add path to bblayers.conf
- Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:
ros2-demo-nodes-cpp \ ros2topic \ ros2msg \ ros2run \
Notes:
- Is this a required minimum?
- ROS_USE_PYTHON3 = "yes" no effect? It already uses python3?
Work
Available packages
- SSH session:
root@elphel393:~# export AMENT_PREFIX_PATH=/usr root@elphel393:~# ros2 pkg list builtin_interfaces demo_nodes_cpp example_interfaces geometry_msgs rcl rcl_interfaces rclcpp rclpy rcutils rmw rmw_fastrtps_cpp rosidl_cmake rosidl_generator_c rosidl_generator_cpp rosidl_parser rosidl_typesupport_interface rosidl_typesupport_introspection_c rosidl_typesupport_introspection_cpp sensor_msgs
Test Talker and Listener
- SSH session 1:
root@elphel393:~# export AMENT_PREFIX_PATH=/usr root@elphel393:~# ros2 run demo_nodes_cpp talker
- SSH session 2:
root@elphel393:~# export AMENT_PREFIX_PATH=/usr root@elphel393:~# ros2 run demo_nodes_cpp listener
Notes:
- If AMENT_PREFIX_PATH is not set then:
Traceback (most recent call last): File "/usr/bin/ros2", line 11, in <module> load_entry_point('ros2cli==0.4.0', 'console_scripts', 'ros2')() File "/usr/lib/python3.5/site-packages/ros2cli/cli.py", line 64, in main rc = extension.main(parser=parser, args=args) File "/usr/lib/python3.5/site-packages/ros2run/command/run.py", line 59, in main executable_name=args.executable_name) File "/usr/lib/python3.5/site-packages/ros2run/api/__init__.py", line 30, in get_executable_path paths = get_executable_paths(package_name=package_name) File "/usr/lib/python3.5/site-packages/ros2pkg/api/__init__.py", line 41, in get_executable_paths prefix_path = get_prefix_path(package_name) File "/usr/lib/python3.5/site-packages/ros2pkg/api/__init__.py", line 34, in get_prefix_path prefix_path = get_package_prefix(package_name) File "/usr/lib/python3.5/site-packages/ament_index_python/packages.py", line 49, in get_package_prefix content, package_prefix = get_resource('packages', package_name) File "/usr/lib/python3.5/site-packages/ament_index_python/resources.py", line 37, in get_resource for path in get_search_paths(): File "/usr/lib/python3.5/site-packages/ament_index_python/search_paths.py", line 30, in get_search_paths "Environment variable '{}' is not set or empty".format(AMENT_PREFIX_PATH_ENV_VAR)) OSError: Environment variable 'AMENT_PREFIX_PATH' is not set or empty
ROS1
Build
Won't build
Build Configuration: BB_VERSION = "1.37.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "arm-poky-linux-gnueabi" MACHINE = "elphel393" DISTRO = "poky" DISTRO_VERSION = "2.4+snapshot-20181204" TUNE_FEATURES = "arm armv7a vfp neon cortexa9" TARGET_FPU = "softfp" meta meta-poky meta-yocto-bsp = "HEAD:72867393fe2004ab9f0ee23eb09a975c82938b9e" meta-ezynq = "rocko:046de13c06cc248b725cb7b9928f35d4a369b50f" meta-elphel393 = "rocko:0cea9b9b8776f0fe725316f1be1501396c95feb4" meta-ros = "HEAD:72068b17e4192b51e09c8dc633805a35edac8701" meta-xilinx-bsp = "HEAD:a18947c20dba2c0c38db8bde1ad4684995df4bbd" meta-oe meta-python meta-networking meta-webserver = "HEAD:34aa4c3202b427f59f843dc43a4e1afda4f81d13"
- Error 1:
- ROS_USE_PYTHON3 = "yes"
- IMAGE_INSTALL += "roslaunch"
NOTE: Resolving any missing task queue dependencies ERROR: Nothing RPROVIDES 'python3-pycrypto' (but /home/oleg/GIT/elphel393_rocko_clean_install/meta/meta-ros/recipes-devtools/python/python3-paramiko_1.16.0.bb RDEPENDS on or otherwise requires it) NOTE: Runtime target 'python3-pycrypto' is unbuildable, removing... Missing or unbuildable dependency chain was: ['python3-pycrypto'] NOTE: Runtime target 'python3-paramiko' is unbuildable, removing... Missing or unbuildable dependency chain was: ['python3-paramiko', 'python3-pycrypto'] NOTE: Runtime target 'roslaunch' is unbuildable, removing... Missing or unbuildable dependency chain was: ['roslaunch', 'python3-paramiko', 'python3-pycrypto'] ERROR: Required build target 'core-image-elphel393' has no buildable providers. Missing or unbuildable dependency chain was: ['core-image-elphel393', 'roslaunch', 'python3-paramiko', 'python3-pycrypto']
- Successful build:
- IMAGE_INSTALL += "roslaunch"
NOTE: Resolving any missing task queue dependencies ERROR: Nothing RPROVIDES 'python3-pycrypto' (but /home/oleg/GIT/elphel393_rocko_clean_install/meta/meta-ros/recipes-devtools/python/python3-paramiko_1.16.0.bb RDEPENDS on or otherwise requires it) NOTE: Runtime target 'python3-pycrypto' is unbuildable, removing... Missing or unbuildable dependency chain was: ['python3-pycrypto'] NOTE: Runtime target 'python3-paramiko' is unbuildable, removing... Missing or unbuildable dependency chain was: ['python3-paramiko', 'python3-pycrypto'] NOTE: Runtime target 'roslaunch' is unbuildable, removing... Missing or unbuildable dependency chain was: ['roslaunch', 'python3-paramiko', 'python3-pycrypto'] ERROR: Required build target 'core-image-elphel393' has no buildable providers. Missing or unbuildable dependency chain was: ['core-image-elphel393', 'roslaunch', 'python3-paramiko', 'python3-pycrypto']
- Error 2:
- Seems like rostopic causes:
ERROR: python-imaging-1.1.7-r5 do_package_qa: QA Issue: python-imaging: The compile log indicates that host include and/or library paths were used. Please check the log '/home/oleg/GIT/elphel393_rocko_clean_install/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/python-imaging/1.1.7-r5/temp/log.do_compile' for more information. [compile- host-path] ERROR: python-imaging-1.1.7-r5 do_package_qa: QA run found fatal errors. Please consider fixing them. ERROR: python-imaging-1.1.7-r5 do_package_qa: Function failed: do_package_qa ERROR: Logfile of failure stored in: /home/oleg/GIT/elphel393_rocko_clean_install/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/python-imaging/1.1.7-r5/temp/log.do_package_qa.19425 ERROR: Task (/home/oleg/GIT/elphel393_rocko_clean_install/meta/meta-openembedded/meta-python/recipes-devtools/python/python-imaging_1.1.7.bb:do_package_qa) failed with exit code '1' potential links: https://github.com/intel-aero/meta-intel-aero/issues/81 https://github.com/bmwcarit/meta-ros/issues/395
removed python3-imaging from rosbag - everything builds but then not really working.
with ROS_USE_PYTHON3 = "yes" stopped at finding an appropriate python-pycrypto lib
Work
- Won't work
- There's no rosrun (does not exist?)
- SSH session 1:
- Add to /etc/hosts:
- SSH session 1:
127.0.0.1 elphel393.localdomain elphel393
- Export vars:
export ROS_ROOT=/opt/ros export ROS_DISTRO=indigo export ROS_PACKAGE_PATH=/opt/ros/indigo/share export PATH=$PATH:/opt/ros/indigo/bin export LD_LIBRARY_PATH=/opt/ros/indigo/lib export PYTHONPATH=/opt/ros/indigo/lib/python2.7/site-packages export ROS_MASTER_URI=http://localhost:11311 export CMAKE_PREFIX_PATH=/opt/ros/indigo touch /opt/ros/indigo/.catkin
- Roscore
roscore
- SSH session 2:
root@elphel393:~# rosnode list /rosout root@elphel393:~# rospack list cpp_common /opt/ros/indigo/share/cpp_common genmsg /opt/ros/indigo/share/genmsg genpy /opt/ros/indigo/share/genpy rosbag /opt/ros/indigo/share/rosbag rosbag_storage /opt/ros/indigo/share/rosbag_storage rosclean /opt/ros/indigo/share/rosclean rosconsole /opt/ros/indigo/share/rosconsole roscpp /opt/ros/indigo/share/roscpp roscpp_serialization /opt/ros/indigo/share/roscpp_serialization roscpp_tutorials /opt/ros/indigo/share/roscpp_tutorials rosgraph /opt/ros/indigo/share/rosgraph rosgraph_msgs /opt/ros/indigo/share/rosgraph_msgs roslaunch /opt/ros/indigo/share/roslaunch roslib /opt/ros/indigo/share/roslib roslz4 /opt/ros/indigo/share/roslz4 rosmaster /opt/ros/indigo/share/rosmaster rosnode /opt/ros/indigo/share/rosnode rosout /opt/ros/indigo/share/rosout rospack /opt/ros/indigo/share/rospack rosparam /opt/ros/indigo/share/rosparam rospy /opt/ros/indigo/share/rospy rospy_tutorials /opt/ros/indigo/share/rospy_tutorials rostime /opt/ros/indigo/share/rostime rostopic /opt/ros/indigo/share/rostopic std_msgs /opt/ros/indigo/share/std_msgs topic_tools /opt/ros/indigo/share/topic_tools xmlrpcpp /opt/ros/indigo/share/xmlrpcpp