Imaging solutions with Free Software & Open Hardware

Who's online

There are currently 0 users online.

Subscribe to Wiki Recent Changes feed
Track the most recent changes to the wiki in this feed. MediaWiki 1.28.0
Updated: 42 min 2 sec ago

ROS2

Fri, 12/07/2018 - 16:50

← Older revision Revision as of 23:50, 7 December 2018 (24 intermediate revisions by the same user not shown)Line 33: Line 33:  * For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>? * For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>?  <font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font> <font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font>  +====Include meta-ros to elphel393====  +* Add path to bblayers.conf  +* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:  + <font size='2'>packagegroup-ros2-world \</font>     ===Workflow=== ===Workflow===  +'''Notes:'''  +* ROS2 for python populates '''/usr/lib/python3.5/site-packages/''' so python scripts can live anywhere.  +* For command line apps, like ''ros2 ...'', if AMENT_PREFIX_PATH is not set then:  + <font size='1' color='red'>'''OSError: Environment variable 'AMENT_PREFIX_PATH' is not set or empty'''</font>  +* Useful examples (command line):  + <font size='2'>export AMENT_PREFIX_PATH=/usr</font>  +  + <font size='2'>ros2 pkg list  + ros2 node list  + ros2 srv list  + ros2 srv show std_srvs/Trigger  + ros2 msg list  + ros2 msg show std_msgs/String</font>     +===Demos===  +====talker-listener cpp====  + <font size='2'>''# terminal 1:''  + export AMENT_PREFIX_PATH=/usr  + ros2 run demo_nodes_cpp talker  +  + ''# terminal 2:''  + export AMENT_PREFIX_PATH=/usr  + ros2 run demo_nodes_cpp listener</font>     ==<font color='blue'>ROS2 on PC</font>== ==<font color='blue'>ROS2 on PC</font>== Line 47: Line 73:  * ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy. * ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy.  * Terminal setup: * Terminal setup: −  source /opt/ros/bouncy/setup.bash+  <font size='2'>''source /opt/ros/bouncy/setup.bash''    or   or −  source /opt/ros/bouncy/local_setup.bash+  ''source /opt/ros/bouncy/local_setup.bash''</font>     * Create a workspace * Create a workspace Line 74: Line 100:  * [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)] * [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)]  * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] −  −===Docker===  − docker pull osrf/ros2:bouncy-desktop  − docker run -i -t osrf/ros2:bouncy-desktop   − ...no network, no colcon, no ament...  −  −==<font color='blue'>ROS2 on Zynq</font>==  −Cross-compiled and installed in Yocto  −  −===Other links===   * [http://design.ros2.org/articles/ros_on_dds.html ROS on DDS] * [http://design.ros2.org/articles/ros_on_dds.html ROS on DDS]    <font size='2'>...     <font size='2'>...   Line 94: Line 110:  * [https://wiki.ros.org/Services Request-Response is done with '''service''']. Format [https://wiki.ros.org/srv srv] * [https://wiki.ros.org/Services Request-Response is done with '''service''']. Format [https://wiki.ros.org/srv srv]    −===Build===+===Docker=== −* Add path to bblayers.conf+  docker pull osrf/ros2:bouncy-desktop −* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:+  docker run -i -t osrf/ros2:bouncy-desktop −  packagegroup-ros2-world \+  ...no network, no colcon, no ament... −   −<font color='green'>'''Notes:'''  −* -</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>  −* It populates '''/usr/lib/python3.5/site-packages/''' so python scripts can be pretty much standalone  −* <font color='green'>If AMENT_PREFIX_PATH is not set (only for command line apps) 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>== ==<font color='blue'>ROS1</font>== −   ===Build=== ===Build===  <font color='red'>'''Won't build'''</font> <font color='red'>'''Won't build'''</font> Oleg

ROS2

Fri, 12/07/2018 - 16:50

← Older revision Revision as of 23:50, 7 December 2018 (25 intermediate revisions by the same user not shown)Line 3: Line 3:     ==<font color='blue'>Goals</font>== ==<font color='blue'>Goals</font>== −<font color='green'>Notes:+<font color='green'>'''Notes:'''  * Controlling and initializing of multi-camera systems is already implemented using PHP API (autocampars.php), Python and lighttpd. * Controlling and initializing of multi-camera systems is already implemented using PHP API (autocampars.php), Python and lighttpd.  * Using ROS2 is intended to simplify/standardize the above. * Using ROS2 is intended to simplify/standardize the above. Line 33: Line 33:  * For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>? * For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>?  <font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font> <font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font>  +====Include meta-ros to elphel393====  +* Add path to bblayers.conf  +* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:  + <font size='2'>packagegroup-ros2-world \</font>     ===Workflow=== ===Workflow===  +'''Notes:'''  +* ROS2 for python populates '''/usr/lib/python3.5/site-packages/''' so python scripts can live anywhere.  +* For command line apps, like ''ros2 ...'', if AMENT_PREFIX_PATH is not set then:  + <font size='1' color='red'>'''OSError: Environment variable 'AMENT_PREFIX_PATH' is not set or empty'''</font>  +* Useful examples (command line):  + <font size='2'>export AMENT_PREFIX_PATH=/usr</font>     + <font size='2'>ros2 pkg list  + ros2 node list  + ros2 srv list  + ros2 srv show std_srvs/Trigger  + ros2 msg list  + ros2 msg show std_msgs/String</font>  +  +===Demos===  +====talker-listener cpp====  + <font size='2'>''# terminal 1:''  + export AMENT_PREFIX_PATH=/usr  + ros2 run demo_nodes_cpp talker  +  + ''# terminal 2:''  + export AMENT_PREFIX_PATH=/usr  + ros2 run demo_nodes_cpp listener</font>     ==<font color='blue'>ROS2 on PC</font>== ==<font color='blue'>ROS2 on PC</font>== Line 47: Line 73:  * ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy. * ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy.  * Terminal setup: * Terminal setup: −  source /opt/ros/bouncy/setup.bash+  <font size='2'>''source /opt/ros/bouncy/setup.bash''    or   or −  source /opt/ros/bouncy/local_setup.bash+  ''source /opt/ros/bouncy/local_setup.bash''</font>     * Create a workspace * Create a workspace Line 74: Line 100:  * [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)] * [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)]  * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] −  −===Docker===  − docker pull osrf/ros2:bouncy-desktop  − docker run -i -t osrf/ros2:bouncy-desktop   − ...no network, no colcon, no ament...  −  −==<font color='blue'>ROS2 on Zynq</font>==  −Cross-compiled and installed in Yocto  −  −===Other links===   * [http://design.ros2.org/articles/ros_on_dds.html ROS on DDS] * [http://design.ros2.org/articles/ros_on_dds.html ROS on DDS]    <font size='2'>...     <font size='2'>...   Line 94: Line 110:  * [https://wiki.ros.org/Services Request-Response is done with '''service''']. Format [https://wiki.ros.org/srv srv] * [https://wiki.ros.org/Services Request-Response is done with '''service''']. Format [https://wiki.ros.org/srv srv]    −===Build===+===Docker=== −* Add path to bblayers.conf+  docker pull osrf/ros2:bouncy-desktop −* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:+  docker run -i -t osrf/ros2:bouncy-desktop −  packagegroup-ros2-world \+  ...no network, no colcon, no ament... −   −<font color='green'>'''Notes:'''  −* -</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>  −* It populates '''/usr/lib/python3.5/site-packages/''' so python scripts can be pretty much standalone  −* <font color='green'>If AMENT_PREFIX_PATH is not set (only for command line apps) 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>== ==<font color='blue'>ROS1</font>== −   ===Build=== ===Build===  <font color='red'>'''Won't build'''</font> <font color='red'>'''Won't build'''</font> Oleg

ROS2

Fri, 12/07/2018 - 16:50

← Older revision Revision as of 23:50, 7 December 2018 (26 intermediate revisions by the same user not shown)Line 3: Line 3:     ==<font color='blue'>Goals</font>== ==<font color='blue'>Goals</font>== −<font color='green'>Notes:+<font color='green'>'''Notes:'''  * Controlling and initializing of multi-camera systems is already implemented using PHP API (autocampars.php), Python and lighttpd. * Controlling and initializing of multi-camera systems is already implemented using PHP API (autocampars.php), Python and lighttpd.  * Using ROS2 is intended to simplify/standardize the above. * Using ROS2 is intended to simplify/standardize the above. Line 33: Line 33:  * For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>? * For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>?  <font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font> <font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font>  +====Include meta-ros to elphel393====  +* Add path to bblayers.conf  +* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:  + <font size='2'>packagegroup-ros2-world \</font>     ===Workflow=== ===Workflow===  +'''Notes:'''  +* ROS2 for python populates '''/usr/lib/python3.5/site-packages/''' so python scripts can live anywhere.  +* For command line apps, like ''ros2 ...'', if AMENT_PREFIX_PATH is not set then:  + <font size='1' color='red'>'''OSError: Environment variable 'AMENT_PREFIX_PATH' is not set or empty'''</font>  +* Useful examples (command line):  + <font size='2'>export AMENT_PREFIX_PATH=/usr</font>  +  + <font size='2'>ros2 pkg list  + ros2 node list  + ros2 srv list  + ros2 srv show std_srvs/Trigger  + ros2 msg list  + ros2 msg show std_msgs/String</font>     +===Demos===  +====talker-listener cpp====  + <font size='2'>''# terminal 1:''  + export AMENT_PREFIX_PATH=/usr  + ros2 run demo_nodes_cpp talker  +  + ''# terminal 2:''  + export AMENT_PREFIX_PATH=/usr  + ros2 run demo_nodes_cpp listener</font>     ==<font color='blue'>ROS2 on PC</font>== ==<font color='blue'>ROS2 on PC</font>== Line 47: Line 73:  * ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy. * ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy.  * Terminal setup: * Terminal setup: −  source /opt/ros/bouncy/setup.bash+  <font size='2'>''source /opt/ros/bouncy/setup.bash''    or   or −  source /opt/ros/bouncy/local_setup.bash+  ''source /opt/ros/bouncy/local_setup.bash''</font>     * Create a workspace * Create a workspace Line 74: Line 100:  * [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)] * [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)]  * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] −  −===Docker===  − docker pull osrf/ros2:bouncy-desktop  − docker run -i -t osrf/ros2:bouncy-desktop   − ...no network, no colcon, no ament...  −  −==<font color='blue'>ROS2 on Zynq</font>==  −Cross-compiled and installed in Yocto  −  −===Other links===   * [http://design.ros2.org/articles/ros_on_dds.html ROS on DDS] * [http://design.ros2.org/articles/ros_on_dds.html ROS on DDS]    <font size='2'>...     <font size='2'>...   Line 94: Line 110:  * [https://wiki.ros.org/Services Request-Response is done with '''service''']. Format [https://wiki.ros.org/srv srv] * [https://wiki.ros.org/Services Request-Response is done with '''service''']. Format [https://wiki.ros.org/srv srv]    −===Build===+===Docker=== −* Add path to bblayers.conf+ docker pull osrf/ros2:bouncy-desktop −* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:+  docker run -i -t osrf/ros2:bouncy-desktop −  packagegroup-ros2-world \+ ...no network, no colcon, no ament... −   −<font color='green'>'''Notes:'''  −* -</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>  −* It populates '''/usr/lib/python3.5/site-packages/''' so python scripts can be pretty much standalone  −* <font color='green'>If AMENT_PREFIX_PATH is not set (only for command line apps) 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'>ROS2 on PC</font>==  −* [https://index.ros.org/doc/ros2/Linux-Install-Debians/ Linux-Install-Debians]  −  −<font color='green'>'''Notes:'''  −* '''apt install ros-bouncy-desktop''' available in 18.04, n/a in 16.04  −* '''apt install ros-ardent-desktop''' available in 16.04</font>      ==<font color='blue'>ROS1</font>== ==<font color='blue'>ROS1</font>== −   ===Build=== ===Build===  <font color='red'>'''Won't build'''</font> <font color='red'>'''Won't build'''</font> Oleg

ROS2

Fri, 12/07/2018 - 16:50

← Older revision Revision as of 23:50, 7 December 2018 (27 intermediate revisions by the same user not shown)Line 3: Line 3:     ==<font color='blue'>Goals</font>== ==<font color='blue'>Goals</font>==  +<font color='green'>'''Notes:'''  +* Controlling and initializing of multi-camera systems is already implemented using PHP API (autocampars.php), Python and lighttpd.  +* Using ROS2 is intended to simplify/standardize the above.  +* Using ROS2 is intended to make cameras compatible with other hardware supported by ROS1/2.  +</font>  +  Having ROS2 cross-compiled and installed on each camera: Having ROS2 cross-compiled and installed on each camera:  * '''Initialize cameras in a pre-defined multi-camera system''' - sync and sequence critical init * '''Initialize cameras in a pre-defined multi-camera system''' - sync and sequence critical init Line 27: Line 33:  * For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>? * For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>?  <font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font> <font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font>  +====Include meta-ros to elphel393====  +* Add path to bblayers.conf  +* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:  + <font size='2'>packagegroup-ros2-world \</font>     ===Workflow=== ===Workflow===  +'''Notes:'''  +* ROS2 for python populates '''/usr/lib/python3.5/site-packages/''' so python scripts can live anywhere.  +* For command line apps, like ''ros2 ...'', if AMENT_PREFIX_PATH is not set then:  + <font size='1' color='red'>'''OSError: Environment variable 'AMENT_PREFIX_PATH' is not set or empty'''</font>  +* Useful examples (command line):  + <font size='2'>export AMENT_PREFIX_PATH=/usr</font>  +  + <font size='2'>ros2 pkg list  + ros2 node list  + ros2 srv list  + ros2 srv show std_srvs/Trigger  + ros2 msg list  + ros2 msg show std_msgs/String</font>     +===Demos===  +====talker-listener cpp====  + <font size='2'>''# terminal 1:''  + export AMENT_PREFIX_PATH=/usr  + ros2 run demo_nodes_cpp talker  +  + ''# terminal 2:''  + export AMENT_PREFIX_PATH=/usr  + ros2 run demo_nodes_cpp listener</font>     ==<font color='blue'>ROS2 on PC</font>== ==<font color='blue'>ROS2 on PC</font>== Line 41: Line 73:  * ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy. * ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy.  * Terminal setup: * Terminal setup: −  source /opt/ros/bouncy/setup.bash+  <font size='2'>''source /opt/ros/bouncy/setup.bash''    or   or −  source /opt/ros/bouncy/local_setup.bash+  ''source /opt/ros/bouncy/local_setup.bash''</font>     * Create a workspace * Create a workspace Line 68: Line 100:  * [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)] * [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)]  * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] −  −===Docker===  − docker pull osrf/ros2:bouncy-desktop  − docker run -i -t osrf/ros2:bouncy-desktop   − ...no network, no colcon, no ament...  −  −==<font color='blue'>ROS2 on Zynq</font>==  −Cross-compiled and installed in Yocto  −  −===Other links===   * [http://design.ros2.org/articles/ros_on_dds.html ROS on DDS] * [http://design.ros2.org/articles/ros_on_dds.html ROS on DDS]    <font size='2'>...     <font size='2'>...   Line 88: Line 110:  * [https://wiki.ros.org/Services Request-Response is done with '''service''']. Format [https://wiki.ros.org/srv srv] * [https://wiki.ros.org/Services Request-Response is done with '''service''']. Format [https://wiki.ros.org/srv srv]    −===Build===+===Docker=== −* Add path to bblayers.conf+  docker pull osrf/ros2:bouncy-desktop −* Add to "IMAGE_INSTALL_append" of core-image-elphel393.bb:+  docker run -i -t osrf/ros2:bouncy-desktop −  packagegroup-ros2-world \+  ...no network, no colcon, no ament... −   −<font color='green'>'''Notes:'''  −* -</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>  −* It populates '''/usr/lib/python3.5/site-packages/''' so python scripts can be pretty much standalone  −* <font color='green'>If AMENT_PREFIX_PATH is not set (only for command line apps) 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'>ROS2 on PC</font>==  −* [https://index.ros.org/doc/ros2/Linux-Install-Debians/ Linux-Install-Debians]     −<font color='green'>'''Notes:'''  −* '''apt install ros-bouncy-desktop''' available in 18.04, n/a in 16.04  −* '''apt install ros-ardent-desktop''' available in 16.04</font>      ==<font color='blue'>ROS1</font>== ==<font color='blue'>ROS1</font>== −   ===Build=== ===Build===  <font color='red'>'''Won't build'''</font> <font color='red'>'''Won't build'''</font> Oleg

ROS2

Fri, 12/07/2018 - 16:50

ROS2

Fri, 12/07/2018 - 16:45

‎Workflow

Show changes Oleg

ROS2

Fri, 12/07/2018 - 15:41

‎Interfaces

← Older revision Revision as of 22:41, 7 December 2018 (20 intermediate revisions by the same user not shown)Line 1: Line 1: −==<font color='blue'>GitHub</font>==+==<font color='blue'>About</font>== −https://github.com/bmwcarit/meta-ros.git+Use ROS2 in Elphel single or multi-camera systems. The cameras are 10393 system boards based on Xilinx Zynq, ARM.    −<font color='red'>https://github.com/erlerobot/meta-ros2</font> ?+==<font color='blue'>Goals</font>==  +Having ROS2 cross-compiled and installed on each camera:  +* '''Initialize cameras in a pre-defined multi-camera system''' - sync and sequence critical init  +* '''Control multiple cameras from any camera of the system''' - parameters, recording  +* '''Control multiple cameras from a PC''' (with ROS2 for PC installed).  +* '''Control multiple cameras from a network device''' (w/o ROS2 installed, but with a browser) - by accessing a web server running on a camera interfaced with ROS2 of the camera. Can use nodejs or just lighttpd+php.     +==<font color='blue'>Status</font>==  +Development    −==<font color='blue'>ROS2 General Notes</font>==+==<font color='blue'>Interfaces</font>== −===Notes===+ROS2 nodes communicate over: −* SROS is Secure ROS or something+* '''1 GigE LAN''' or (possibly) '''wifi''' (camera1-camera2..N, pc-camera1..N, pc1-pc2..M) −===Useful links===+* within a single device −* [http://docs.erlerobotics.com/robot_operating_system/ros2/tutorials/tutorial_10 Tutorials ErleRobotics]+<font color='green'>'''Notes:''' −* [https://github.com/intel/ros2_intel_realsense Intel RealSense]+* image sensors, IMS (or GPS & IMU), any other sensors are attached to cameras via a custom interface or USB, with appropriate driver support. −* [https://index.ros.org/doc/ros2/Ament-Tutorial/ Ament tutorial] - will not work for PC because it's outdated, will work in Yocto+* normally cameras in the system are synced with a custom trigger cable - this is setup over network −* [https://index.ros.org/doc/ros2/Colcon-Tutorial/ Colcon tutorial] - this one worked for PC+* any device attached to PC? −* [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)]+</font> −* [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros]+   +==<font color='blue'>ROS2 on Zynq</font>==  +   +===Installation===  +* For Embedded Linux (but not Ubuntu Distro) use [https://github.com/bmwcarit/meta-ros.git meta-ros.git]. What about <font color='red'>[https://github.com/erlerobot/meta-ros2 meta-ros2]</font>?  +<font color='green'>'''TODO:''' Include [https://github.com/bmwcarit/meta-ros.git meta-ros.git] in [https://git.elphel.com/Elphel/elphel393 elphel393] build system.</font>  +   +===Workflow===  +   +   +==<font color='blue'>ROS2 on PC</font>==  +===Installation===  +* Google and follow the [https://index.ros.org/doc/ros2/ general instructions].  +<font color='green'>'''Notes:'''  +* '''apt install ros-bouncy-desktop''' available in 18.04, <font color='red'>n/a in 16.04</font>  +* '''apt install ros-ardent-desktop''' available in 16.04</font>    −===PC workflow===+===Workflow=== −* Install ROS2 - will get installed to '''/opt/ros/<name>'''+* ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy.  * Terminal setup: * Terminal setup:    source /opt/ros/bouncy/setup.bash   source /opt/ros/bouncy/setup.bash Line 36: Line 58:  * [https://erlerobotics.gitbooks.io/erle-robotics-python-gitbook-free/udp_and_tcp/a_simple_tcp_client_and_server.html Good book about UDP?] * [https://erlerobotics.gitbooks.io/erle-robotics-python-gitbook-free/udp_and_tcp/a_simple_tcp_client_and_server.html Good book about UDP?]    −===Embedded workflow===+==<font color='blue'>ROS2 General Notes</font>== −* Use meta-ros in yocto+===Notes=== −* Go for ROS2 recipes. Use as examples.+* SROS is Secure ROS or something −* The build system in Yocto is '''ament''' - which is one generation older then '''colcon'''+===Useful links=== −* Here there's no workspace - packages do get installed somewhere+* [http://docs.erlerobotics.com/robot_operating_system/ros2/tutorials/tutorial_10 Tutorials ErleRobotics] −* Need to +* [https://github.com/intel/ros2_intel_realsense Intel RealSense] − export AMENT_PREFIX_PATH=/usr+* [https://index.ros.org/doc/ros2/Ament-Tutorial/ Ament tutorial] - will not work for PC because it's outdated, will work in Yocto −* Python scripts can live anywhere - because ROS2 populates /usr/lib/...+* [https://index.ros.org/doc/ros2/Colcon-Tutorial/ Colcon tutorial] - this one worked for PC −* Service formats are too few - for a simple "Request string - Response string" server need to add new srv.+* [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)]  +* [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros]     ===Docker=== ===Docker=== Oleg

ROS2

Fri, 12/07/2018 - 14:33

‎Communication interfaces

← Older revision Revision as of 21:33, 7 December 2018 (3 intermediate revisions by the same user not shown)Line 1: Line 1:  +==<font color='blue'>About</font>==  +Use ROS2 in Elphel single or multi-camera systems. The cameras are 10393 system boards based on Xilinx Zynq, ARM.  +  +==<font color='blue'>Goals</font>==  +Having ROS2 cross-compiled and installed on each camera:  +* '''Initialize cameras in a pre-defined multi-camera system''' - sync and sequence critical init  +* '''Control multiple cameras from any camera of the system''' - parameters, recording  +* '''Control multiple cameras from a PC''' (with ROS2 for PC installed).  +* '''Control multiple cameras from a network device''' (w/o ROS2 installed, but with a browser) - by accessing a web server running on a camera interfaced with ROS2 of the camera. Can use nodejs or just lighttpd+php.  +  +==<font color='blue'>Communication interfaces</font>==  +ROS2 nodes communicate over:  +* '''1 GigE LAN''' or (possibly) '''wifi''' (camera1-camera2,pc-camera,pc1-pc2)  +* within a single device  +Notes:  +* image sensors, IMS (or GPS & IMU), any other sensors are attached to cameras via a custom interface or USB, with appropriate driver support.  +* normally cameras in the system are synced with a custom trigger cable - this is setup over network  +* any device attached to PC?  +  ==<font color='blue'>GitHub</font>== ==<font color='blue'>GitHub</font>==  https://github.com/bmwcarit/meta-ros.git https://github.com/bmwcarit/meta-ros.git Oleg

Meta-ros testing

Fri, 12/07/2018 - 13:44

Oleg moved page Meta-ros testing to ROS2 better name

Oleg

Meta-ros testing

Fri, 12/07/2018 - 12:14

Meta-ros testing

Thu, 12/06/2018 - 23:50

‎Useful links

Show changes Oleg

Meta-ros testing

Thu, 12/06/2018 - 22:46

‎ROS2 General Notes

Show changes Oleg

Meta-ros testing

Thu, 12/06/2018 - 18:59

‎ROS2 General Notes

Show changes Oleg

Meta-ros testing

Thu, 12/06/2018 - 18:51

‎Docker

Show changes Oleg

Meta-ros testing

Thu, 12/06/2018 - 11:06

‎Other links

Show changes Oleg

Meta-ros testing

Wed, 12/05/2018 - 18:06

‎ROS2

Show changes Oleg

Meta-ros testing

Tue, 12/04/2018 - 19:02

‎GitHub

Show changes Oleg

Meta-ros testing

Tue, 12/04/2018 - 17:39

‎ROS1

Show changes Oleg

Meta-ros testing

Tue, 12/04/2018 - 15:38

‎ROS1

← Older revision Revision as of 22:38, 4 December 2018 (19 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='blue'>ROS2</font>==    −==ROS1==+===Build=== −* Won't build  −   −==ROS2==   * 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 11:    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===  +====1. 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>  +  +====2. 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>  +  +==<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  +  +  +===Work===  +* Won't work Oleg

Meta-ros testing

Tue, 12/04/2018 - 14:40

← Older revision Revision as of 21:40, 4 December 2018 (16 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='blue'>ROS2</font>==    −==ROS1==+===Build=== −* Won't build  −   −==ROS2==   * 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 11:    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===  +====1. 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>  +  +====2. 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>  +  +==<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>  +  +===Work===  +* Won't work Oleg

Pages