Imaging solutions with Free Software & Open Hardware

Who's online

There are currently 0 users online.

12/10/18 [meta-elphel393][master-next] by Oleg Dzhimiev: updated srcrev

Elphel GIT logs - Mon, 12/10/2018 - 18:28
Oleg Dzhimiev committed changes to the Elphel git project :
updated srcrev

ROS2

Wiki Recent Changes - Mon, 12/10/2018 - 13:41

← Older revision Revision as of 20:41, 10 December 2018 Line 116: Line 116:  ** works for PC, even in 16.04 ** works for PC, even in 16.04  ** not supported in meta-ros (as of 2018/12/07) ** not supported in meta-ros (as of 2018/12/07)  +** [https://colcon.readthedocs.io/en/released/user/how-to.html#build-only-a-single-package-or-selected-packages colcon docs]     * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] and [https://discourse.ros.org/search?q=meta-ros2%20order%3Alatest about meta-ros2] - are they merged? * [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] and [https://discourse.ros.org/search?q=meta-ros2%20order%3Alatest about meta-ros2] - are they merged? Oleg

ROS2

Wiki Recent Changes - Mon, 12/10/2018 - 13:41

← Older revision Revision as of 20:41, 10 December 2018 (16 intermediate revisions by the same user not shown)Line 39: Line 39:     ===Notes=== ===Notes===  +* Cross-compilation for ARM  * ROS2 for python populates '''/usr/lib/python3.5/site-packages/''' so python scripts can live anywhere. * 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: * For command line apps, like ''ros2 ...'', if AMENT_PREFIX_PATH is not set then: Line 72: Line 73:  ===Installation=== ===Installation===  * Google and follow the [https://index.ros.org/doc/ros2/ general instructions]. * Google and follow the [https://index.ros.org/doc/ros2/ general instructions]. −<font color='green'>'''Notes:'''+   +===Notes===  * '''apt install ros-bouncy-desktop''' available in 18.04, <font color='red'>n/a in 16.04</font> * '''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>+* '''apt install ros-ardent-desktop''' available in 16.04 − +* ROS2 will get installed to '''/opt/ros/<name>''', <name>s are ''ardent'', ''bouncy'', ''crystal'', etc. −===Workflow===  −* ROS2 will get installed to '''/opt/ros/<name>''', <name> = ardent, bouncy.   * Terminal setup: * Terminal setup:    <font size='2'>''source /opt/ros/bouncy/setup.bash''   <font size='2'>''source /opt/ros/bouncy/setup.bash'' Line 83: Line 83:    ''source /opt/ros/bouncy/local_setup.bash''</font>   ''source /opt/ros/bouncy/local_setup.bash''</font>     +===Workflow===  * Create a workspace * Create a workspace  * Create some packages inside or clone - they have a [https://github.com/dirk-thomas/vcstool vcs tool] to clone all repos from a text file. * Create some packages inside or clone - they have a [https://github.com/dirk-thomas/vcstool vcs tool] to clone all repos from a text file.  * Install [https://colcon.readthedocs.io/en/released/user/quick-start.html colcon] * Install [https://colcon.readthedocs.io/en/released/user/quick-start.html colcon]  * Then build with colcon * Then build with colcon −* Packages will not get installed to /opt/ros/bouncy/... Instead they will stay in their folders.+* New packages will not get installed to '''/opt/ros/<name>'''. They will live in their folders.  * To use a package: * To use a package: −  source /opt/ros/bouncy/setup.bash+  <font size='2'>source /opt/ros/bouncy/setup.bash    source ~/ros2_ws/some-package/install/local_setup.bash   source ~/ros2_ws/some-package/install/local_setup.bash    ros2 pkg list   ros2 pkg list −  then run anything in this terminal+  then run anything in this terminal</font>  * Python scripts can live anywhere - just run them from that sourced terminal * Python scripts can live anywhere - just run them from that sourced terminal −* [https://erlerobotics.gitbooks.io/erle-robotics-python-gitbook-free/udp_and_tcp/a_simple_tcp_client_and_server.html Good book about UDP?]+   +==<font color='blue'>ROS2 in Docker</font>==  + docker pull osrf/ros2:bouncy-desktop  + docker run -i -t osrf/ros2:bouncy-desktop  + No network, no colcon, no ament...     ==<font color='blue'>ROS2 General Notes</font>== ==<font color='blue'>ROS2 General Notes</font>==  ===Notes=== ===Notes===  * SROS is Secure ROS or something * SROS is Secure ROS or something  +  ===Useful links=== ===Useful links=== −* [http://docs.erlerobotics.com/robot_operating_system/ros2/tutorials/tutorial_10 Tutorials ErleRobotics]+  −* [https://github.com/intel/ros2_intel_realsense Intel RealSense]+* [http://docs.erlerobotics.com/robot_operating_system/ros2 ErleRobotics Tutorials on ROS2] - very useful −* [https://index.ros.org/doc/ros2/Ament-Tutorial/ Ament tutorial] - will not work for PC because it's outdated, will work in Yocto+  −* [https://index.ros.org/doc/ros2/Colcon-Tutorial/ Colcon tutorial] - this one worked for PC+* [https://index.ros.org/doc/ros2/Ament-Tutorial/ Ament tutorial] - build system for new packages −* [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)]+** works and supported in meta-ros −* [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros]+** will not work for PC because repo hashes moved on?  +   +* [https://index.ros.org/doc/ros2/Colcon-Tutorial/ Colcon tutorial] - newest build system for new packages  +** works for PC, even in 16.04  +** not supported in meta-ros (as of 2018/12/07)  +** [https://colcon.readthedocs.io/en/released/user/how-to.html#build-only-a-single-package-or-selected-packages colcon docs]  +   +* [https://discourse.ros.org/search?q=meta-ros%20order%3Alatest About meta-ros] and [https://discourse.ros.org/search?q=meta-ros2%20order%3Alatest about meta-ros2] - are they merged?  +   +Networking:  +   * [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 114: Line 130:  * [http://www.eprosima.com/index.php/resources-all/performance/40-eprosima-fast-rtps-performance FastRTPS benchmarks] * [http://www.eprosima.com/index.php/resources-all/performance/40-eprosima-fast-rtps-performance FastRTPS benchmarks]  * [http://docs.eprosima.com/en/latest/advanced.html FastRTPS max message size] * [http://docs.eprosima.com/en/latest/advanced.html FastRTPS max message size]  +* [https://erlerobotics.gitbooks.io/erle-robotics-python-gitbook-free/udp_and_tcp/a_simple_tcp_client_and_server.html Good book about UDP?]  +  +ROS2 Services:  +  * [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]  +* [https://discourse.ros.org/t/suggestions-for-std-srvs/1079/16 STD-SRVS '''discussion'''] & [https://github.com/ros2/examples/issues/4 ROS2 examples(?)]    −===Docker===+===Reference ROS repos=== − docker pull osrf/ros2:bouncy-desktop+* [https://github.com/inertialsense/inertial_sense_ros.git inertial_sense_ros.git] - cpp − docker run -i -t osrf/ros2:bouncy-desktop +* [https://github.com/intel/ros2_intel_realsense.git ros2_intel_realsense.git] - cpp − ...no network, no colcon, no ament...+* [https://github.com/ros-drivers/axis_camera.git axis_camera.git] - python − +* [https://github.com/bmwcarit/meta-ros.git meta-ros.git] - layer for Yocto     ==<font color='blue'>ROS1</font>== ==<font color='blue'>ROS1</font>==  <font color='red'>'''Won't build'''</font>. [[ROS1|More info]]. <font color='red'>'''Won't build'''</font>. [[ROS1|More info]]. Oleg

ROS2

Wiki Recent Changes - Mon, 12/10/2018 - 13:41

ROS2

Wiki Recent Changes - Fri, 12/07/2018 - 17:40

‎ROS2 General Notes

Show changes Oleg

ROS1

Wiki Recent Changes - Fri, 12/07/2018 - 16:52

Created page with "===Build=== <font color='red'>'''Won't build'''</font> <font size='1'>Build Configuration: BB_VERSION = "1.37.0" BUILD_SYS = "x86_64-linux" NATIVELSBS..."

New page

===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> Oleg

ROS2

Wiki Recent Changes - 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

Wiki Recent Changes - 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

Wiki Recent Changes - 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

Wiki Recent Changes - 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

Wiki Recent Changes - Fri, 12/07/2018 - 16:50

ROS2

Wiki Recent Changes - Fri, 12/07/2018 - 16:45

‎Workflow

Show changes Oleg

ROS2

Wiki Recent Changes - 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

Wiki Recent Changes - 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

Wiki Recent Changes - Fri, 12/07/2018 - 13:44

Oleg moved page Meta-ros testing to ROS2 better name

Oleg

Meta-ros testing

Wiki Recent Changes - Fri, 12/07/2018 - 12:14

Meta-ros testing

Wiki Recent Changes - Thu, 12/06/2018 - 23:50

‎Useful links

Show changes Oleg

Meta-ros testing

Wiki Recent Changes - Thu, 12/06/2018 - 22:46

‎ROS2 General Notes

Show changes Oleg

Meta-ros testing

Wiki Recent Changes - Thu, 12/06/2018 - 18:59

‎ROS2 General Notes

Show changes Oleg

Meta-ros testing

Wiki Recent Changes - Thu, 12/06/2018 - 18:51

‎Docker

Show changes Oleg

Pages

Subscribe to www3.elphel.com aggregator