-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Get ROS2 working on the wombat #6
Comments
The jessie source links seem to have gone dead, so to mitigate the problem I have been editing the source lists to pull from stretch, but then not doing a full-upgrade/dist-upgrade to prevent the issues that arise from that. Attempt 1:
Current Failure:
Update: |
Since jessie prevents us from installing ROS2 directly (the packages were meant to be installed to ubuntu, along with the errors seen above). We may be able to use a ROS1 Bridge as discussed in the libwallaby issue: kipr/libwallaby#147 We may also be able to build it from scratch: https://docs.ros.org/en/foxy/Installation/Ubuntu-Development-Setup.html Alternative: https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html Whatever we do is going to be a workaround because ROS2 is only supported for the Pi4 running Ubuntu. |
Currently I have been able to get past the jessie package sources going dead by changing the source lists to pull from stretch instead without doing a dist-upgrade to prevent the issues that arise from that. I also made ROS packages pull from the stretch branch by changing: echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
to echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu stretch main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null However, the stretch tricks don't work when i get to this stage: Wombat:~/ros2_foxy $ rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-5.3.1 urdfdom_headers" --rosdistro foxy
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
ament_clang_format: No definition of [clang-format] for OS version [jessie]
ament_pep257: No definition of [pydocstyle] for OS version [jessie]
ament_clang_tidy: No definition of [clang-tidy] for OS version [jessie]
launch: No definition of [python3-lark-parser] for OS version [jessie]
ament_mypy: No definition of [python3-mypy] for OS version [jessie]
ros2doctor: No definition of [python3-ifcfg] for OS version [jessie]
rosidl_parser: No definition of [python3-lark-parser] for OS version [jessie] I'm not sure how to force this part to use stretch packages yet. Simply installing with apt only worked for one or two of them. Ignoring this and skipping leads to the following error later: Wombat:~/ros2_foxy $ sudo colcon build --symlink-install
Starting >>> ament_package
Starting >>> ament_lint
Starting >>> gtest_vendor
Starting >>> fastcdr
Traceback (most recent call last):g] [ament_lint - 1.3s] ...
File "<string>", line 1, in <module>
ImportError: No module named 'setuptools.extern.packaging'
--- stderr: ament_package
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__
rc = await self.task(*args, **kwargs)
File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__
return await task_method(*args, **kwargs)
File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_python/build.py", line 51, in build
setup_py_data = get_setup_data(self.context.pkg, env)
File "/usr/lib/python3/dist-packages/colcon_core/task/python/__init__.py", line 20, in get_setup_data
return dict(pkg.metadata[key](env))
File "/usr/lib/python3/dist-packages/colcon_ros/package_identification/ros.py", line 130, in getter
desc.path / 'setup.py', env=env)
File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 242, in get_setup_information
setup_py, env=env)
File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 283, in _get_setup_information
cwd=os.path.abspath(str(setup_py.parent)), check=True, env=env)
File "/usr/lib/python3.5/subprocess.py", line 398, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-c', "import sys;from setuptools.extern.packaging.specifiers import SpecifierSet;from distutils.core import run_setup;dist = run_setup( 'setup.py', script_args=('--dry-run',), stop_after='config');skip_keys = ('cmdclass', 'distclass', 'ext_modules', 'metadata');data = { key: value for key, value in dist.__dict__.items() if ( not key.startswith('_') and not callable(value) and key not in skip_keys and key not in dist.display_option_names )};data['metadata'] = { k: v for k, v in dist.metadata.__dict__.items() if k not in ('license_files', 'provides_extras')};sys.stdout.buffer.write(repr(data).encode('utf-8'))"]' returned non-zero exit status 1
---
Failed <<< ament_package [1.45s, exited with code 1]
Traceback (most recent call last):] [3 ongoing] [ament_lint - 2.7s] ...
File "<string>", line 1, in <module>
ImportError: No module named 'setuptools.extern.packaging'
--- stderr: ament_lint
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/colcon_core/executor/__init__.py", line 91, in __call__
rc = await self.task(*args, **kwargs)
File "/usr/lib/python3/dist-packages/colcon_core/task/__init__.py", line 93, in __call__
return await task_method(*args, **kwargs)
File "/usr/lib/python3/dist-packages/colcon_ros/task/ament_python/build.py", line 51, in build
setup_py_data = get_setup_data(self.context.pkg, env)
File "/usr/lib/python3/dist-packages/colcon_core/task/python/__init__.py", line 20, in get_setup_data
return dict(pkg.metadata[key](env))
File "/usr/lib/python3/dist-packages/colcon_ros/package_identification/ros.py", line 130, in getter
desc.path / 'setup.py', env=env)
File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 242, in get_setup_information
setup_py, env=env)
File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 283, in _get_setup_information
cwd=os.path.abspath(str(setup_py.parent)), check=True, env=env)
File "/usr/lib/python3.5/subprocess.py", line 398, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-c', "import sys;from setuptools.extern.packaging.specifiers import SpecifierSet;from distutils.core import run_setup;dist = run_setup( 'setup.py', script_args=('--dry-run',), stop_after='config');skip_keys = ('cmdclass', 'distclass', 'ext_modules', 'metadata');data = { key: value for key, value in dist.__dict__.items() if ( not key.startswith('_') and not callable(value) and key not in skip_keys and key not in dist.display_option_names )};data['metadata'] = { k: v for k, v in dist.metadata.__dict__.items() if k not in ('license_files', 'provides_extras')};sys.stdout.buffer.write(repr(data).encode('utf-8'))"]' returned non-zero exit status 1
---
Failed <<< ament_lint [2.92s, exited with code 1]
Aborted <<< gtest_vendor [2.95s]
Aborted <<< fastcdr [2.95s]
Summary: 0 packages finished [24.1s]
2 packages failed: ament_lint ament_package
2 packages aborted: fastcdr gtest_vendor
2 packages had stderr output: ament_lint ament_package
307 packages not processed
Command '['/usr/bin/python3', '-c', "import sys;from setuptools.extern.packaging.specifiers import SpecifierSet;from distutils.core import run_setup;dist = run_setup( 'setup.py', script_args=('--dry-run',), stop_after='config');skip_keys = ('cmdclass', 'distclass', 'ext_modules', 'metadata');data = { key: value for key, value in dist.__dict__.items() if ( not key.startswith('_') and not callable(value) and key not in skip_keys and key not in dist.display_option_names )};data['metadata'] = { k: v for k, v in dist.metadata.__dict__.items() if k not in ('license_files', 'provides_extras')};sys.stdout.buffer.write(repr(data).encode('utf-8'))"]' returned non-zero exit status 1
|
Just an idea I thought of before clocking out. The Create 3 has a dust tray that allows for easy mounting, the USB C port is also inside the dust tray. There is also a hole pulling the tray out that a wire could be ran through to connect the Pi's over ethernet if needed or connect any other cable in a way that isn't totally ugly. (Just to be clear, I hate this solution, but it exists) |
I'm closing this issue to keep the conversation contained in one issue thread: This thread will just be used for referencing. |
This might end up requiring a bigger SD card and then trimming until it fits into 8gb.
There also might be issues related to the fact we can't update past jessie as of writing this.
The text was updated successfully, but these errors were encountered: