Skip to content
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

Issues building with Nuttx + Olimex-stm32-e407 #138

Closed
jayanthendo opened this issue Jun 22, 2020 · 42 comments
Closed

Issues building with Nuttx + Olimex-stm32-e407 #138

jayanthendo opened this issue Jun 22, 2020 · 42 comments

Comments

@jayanthendo
Copy link

Hello! I am trying to run an example on the Olimex-stm32-e407 by following the micro-ROS application tutorial for RTOS and getting some errors while building.
i am doing on ubuntu 18
setup is Dashing Diademata and crystal also
when creating the framework with the following command
ros2 run micro_ros_setup create_firmware_ws.sh nuttx
the following error appears

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
micro_ros_agent: Cannot locate rosdep definition for [microxrcedds_agent]

i have installed the following package
ros-crystal-micro-xrce-dds-agent
ros-crystal-microxrcedds-agent-cmake-module
ros-crystal-microxrcedds-agent

and installed Micro-XRCE-DDS-Agent using https://micro-xrce-dds.docs.eprosima.com/en/latest/installation.html
but still i am getting the same error

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
micro_ros_agent: Cannot locate rosdep definition for [microxrcedds_agent]

is there any package i am missing? or any other steps to follow?
Thank you very much.

Jayanth kandregula

@pablogs9
Copy link
Member

Hello, try to continue with the tutorial. These rosdep errors can be taken as warning for now. Please check if you micro-ROS workspace builds correctly.

We are working on fixing them.

@jayanthendo
Copy link
Author

yes its build correctly for the linux example and worked properly. But when creating this for stm32f4 nuttx rtos this rosdep dependency error is coming and can't flash to Development board

@pablogs9
Copy link
Member

Could you please copy here the error you are having?

@jayanthendo
Copy link
Author

the same error as mentioned above
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
micro_ros_agent: Cannot locate rosdep definition for [microxrcedds_agent]

@pablogs9
Copy link
Member

This error seems to be in the micro-ROS Agent installation.

Are you running ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407 or are you running ros2 run micro_ros_setup create_agent_ws.sh ?

@jayanthendo
Copy link
Author

ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407

@pablogs9
Copy link
Member

can you continue with the configuration step ignoring this dependencies errors?

@jayanthendo
Copy link
Author

is it going to work like that? without first creating firmware?

@pablogs9
Copy link
Member

do you have a firmware folder with other folders (dev_ws, mcu_ws, NuttX, etc) inside of it?

@jayanthendo
Copy link
Author

no just firmware folder

@jayanthendo
Copy link
Author

when i have created firmware for the host machine then the firmware folder containing dev_ws
but for the nuttx i have removed firmware folder and creating a new firmware creating the error

@pablogs9
Copy link
Member

Well, on this docker I have done:

sudo apt update
source /opt/ros/dashing/setup.bash
mkdir uros_ws && cd uros_ws
git clone -b dashing https://github.com/micro-ROS/micro-ros-build.git src/micro-ros-build
rosdep update && rosdep install --from-path src --ignore-src -y
colcon build
source install/local_setup.bash 

ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407

And I obtain:

root@pgarrido:/uros_ws# tree -L 2 .
.
├── build
│   ├── COLCON_IGNORE
│   └── micro_ros_setup
├── firmware
│   ├── COLCON_IGNORE
│   ├── NuttX
│   ├── PLATFORM
│   ├── apps
│   ├── dev_ws
│   ├── drive_base
│   ├── mcu_ws
│   └── uclibc
├── install
│   ├── COLCON_IGNORE
│   ├── _local_setup_util_ps1.py
│   ├── _local_setup_util_sh.py
│   ├── local_setup.bash
│   ├── local_setup.ps1
│   ├── local_setup.sh
│   ├── local_setup.zsh
│   ├── micro_ros_setup
│   ├── setup.bash
│   ├── setup.ps1
│   ├── setup.sh
│   └── setup.zsh
├── log
│   ├── COLCON_IGNORE
│   ├── build_2020-06-23_10-27-01
│   ├── latest -> latest_build
│   └── latest_build -> build_2020-06-23_10-27-01
└── src
    └── micro-ros-build

Could you please replicate these steps in a clean ROS 2 Dashing environment?

@jayanthendo
Copy link
Author

ok with clean ROS2 error microxrcedds_agent is gone now
Thank you

but configuring with
ros2 run micro_ros_setup configure_firmware.sh uros_pingpong
gives
Configuration configs/olimex-stm32-e407/uros_pingpong (expanded from uros_pingpong) not found
and with
ros2 run micro_ros_setup configure_firmware.sh pingpong --transport serial --dev 3
gives
--- stderr: firmware
CMake Error: The source directory "/home/jayanth/uros_ws/firmware/apps" does not appear to contain CMakeLists.txt.

@pablogs9
Copy link
Member

try with pingpong-eth configuration

@jayanthendo
Copy link
Author

with pingpong-eth configuration the same error

Starting >>> firmware
--- stderr: firmware                         
CMake Error: The source directory "/home/jayanth/uros_ws/firmware/apps" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
---
Failed   <<< firmware	[ Exited with code 1 ]

with drive_base configuration

Failed   <<< rclc	[ Exited with code 1 ]
Aborted  <<< shape_msgs                                 
Aborted  <<< trajectory_msgs                            
Aborted  <<< visualization_msgs

Summary: 44 packages finished [1min 27s]
  1 package failed: rclc
  3 packages aborted: shape_msgs trajectory_msgs visualization_msgs
  3 packages had stderr output: rclc rcutils rmw_microxrcedds
  8 packages not processed

@pablogs9
Copy link
Member

I'm not sure if the RCLC layer is working currently on dashing. Could you create a file named COLCON_IGNORE in firmware/mcu_ws/uros/rclc ?

@pablogs9
Copy link
Member

We are fixing all these issues on foxy release, it would be released in a week hopefully

@jayanthendo
Copy link
Author

in crystal also i am getting dependency issues
ros2 run micro_ros_setup create_agent_ws.sh
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
microxrcedds_agent_cmake_module: Cannot locate rosdep definition for [microxrcedds_agent]
rosidl_typesupport_fastrtps_cpp: Cannot locate rosdep definition for [fastrtps]
rcl_logging_noop: Cannot locate rosdep definition for [launch_testing]
rmw_implementation: Cannot locate rosdep definition for [poco_vendor]
rosidl_typesupport_fastrtps_c: Cannot locate rosdep definition for [fastrtps]
rcl_action: Cannot locate rosdep definition for [osrf_testing_tools_cpp]
rcl_yaml_param_parser: Cannot locate rosdep definition for [launch_testing]
rcl_logging_log4cxx: Cannot locate rosdep definition for [launch_testing]
rcl_lifecycle: Cannot locate rosdep definition for [osrf_testing_tools_cpp]
rcl: Cannot locate rosdep definition for [osrf_testing_tools_cpp]
rosidl_typesupport_cpp: Cannot locate rosdep definition for [poco_vendor]
rmw_fastrtps_dynamic_cpp: Cannot locate rosdep definition for [fastrtps]
rcutils: Cannot locate rosdep definition for [osrf_testing_tools_cpp]
rmw_fastrtps_shared_cpp: Cannot locate rosdep definition for [fastrtps]
micro_ros_agent: Cannot locate rosdep definition for [fastrtps]
rmw_fastrtps_cpp: Cannot locate rosdep definition for [fastrtps]
rosidl_typesupport_c: Cannot locate rosdep definition for [poco_vendor]

and
colcon build
Summary: 1 package finished [2.52s]
1 package failed: rcutils
3 packages aborted: fastrtps_cmake_module rmw_implementation_cmake rosidl_adapter
1 package had stderr output: rcutils
52 packages not processed

so is there any working version of micro-ROS present now so i can try it.

@pablogs9
Copy link
Member

please target ROS 2 dashing installation in order to use micro-ROS

@jayanthendo
Copy link
Author

yes i have done that before with ROS 2 dashing and just trying with crystal checking if it is working or not.

can i manually configure the nuttx for dashing and flash the micro-ROS to development board?
so is there any working version of micro-ROS present now, so i can try it?
is there any alternative to micro-ROS that i can use ROS2 on development board?

@jayanthendo
Copy link
Author

can i use "freeRTPS" or "Embedded_nuttx" or "riot_ROS2" to use on development board and ROS2 on linux to communicate ?
which is better?

@jayanthendo
Copy link
Author

@pablogs9 please tell the solution as soon as possible, as i was struggling to make it work from past few days.

@pablogs9
Copy link
Member

Well, on this docker I have done:

sudo apt update
source /opt/ros/dashing/setup.bash
mkdir uros_ws && cd uros_ws
git clone -b dashing https://github.com/micro-ROS/micro-ros-build.git src/micro-ros-build
rosdep update && rosdep install --from-path src --ignore-src -y
colcon build
source install/local_setup.bash 

ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407
ros2 run micro_ros_setup configure_firmware.sh pingpong-eth

# Make sure that you have kconfig-frontends
git clone https://bitbucket.org/nuttx/tools.git firmware/tools
pushd firmware/tools/kconfig-frontends
./configure --enable-mconf --disable-nconf --disable-gconf --disable-qconf 
LD_RUN_PATH=/usr/local/lib && make && sudo make install && sudo ldconfig
popd

# Enable exception support (we will fix this soon)
pushd firmware/Nuttx
make menuconfig
# Go to Library Routines -> Enable Exception Support (under LLVM C++ Library)
# Hit save and exit
popd

ros2 run micro_ros_setup build_firmware.sh

# Now you have a .bin ready to be flashed

@acassis
Copy link

acassis commented Jul 1, 2020

Hi Pablo, instead opening a new issue I will post my log here since it appears a similar issue:

$ ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407
Firmware already created. Please delete /home/alan/microros/firmware folder if you want a fresh installation.
alan@dev:/microros$ rm -rf firmware
alan@dev:
/microros$ ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407
Creating firmware for nuttx platform olimex-stm32-e407
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Add distro "dashing"
Add distro "eloquent"
Add distro "foxy"
Skip end-of-life distro "groovy"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Skip end-of-life distro "jade"
Add distro "kinetic"
Skip end-of-life distro "lunar"
Add distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/alan/.ros/rosdep/sources.cache
#All required rosdeps installed successfully
/home/alan/microros/install/micro_ros_setup/lib/micro_ros_setup/yaml_filter.py:10: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
repos_info = yaml.load(sys.stdin)
/home/alan/microros/install/micro_ros_setup/lib/micro_ros_setup/yaml_filter.py:11: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
repos_keep = yaml.load(open(sys.argv[1]))['keep'].split()
#All required rosdeps installed successfully
/home/alan/microros/install/micro_ros_setup/lib/micro_ros_setup/yaml_filter.py:10: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
repos_info = yaml.load(sys.stdin)
/home/alan/microros/install/micro_ros_setup/lib/micro_ros_setup/yaml_filter.py:11: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
repos_keep = yaml.load(open(sys.argv[1]))['keep'].split()
Crosscompiled environment: cleaning path
Starting >>> ament_package
Starting >>> ament_lint
Starting >>> ament_cppcheck
Starting >>> gtest_vendor
Starting >>> ament_pep8
Finished <<< gtest_vendor [1.10s]
Starting >>> gmock_vendor
Finished <<< gmock_vendor [0.16s]
Finished <<< ament_cppcheck [1.36s]
Finished <<< ament_pep8 [1.36s]
Starting >>> ament_pyflakes
Finished <<< ament_lint [1.64s]
Finished <<< ament_package [1.66s]
Starting >>> ament_cmake_core
Starting >>> ament_flake8
Finished <<< ament_pyflakes [0.62s]
Finished <<< ament_cmake_core [0.43s]
Starting >>> ament_cmake_libraries
Starting >>> ament_cmake_export_libraries
Starting >>> ament_cmake_include_directories
Starting >>> ament_cmake_python
Starting >>> ament_cmake_export_definitions
Starting >>> ament_cmake_export_include_directories
Starting >>> ament_cmake_export_link_flags
Finished <<< ament_flake8 [0.73s]
Starting >>> ament_pep257
Finished <<< ament_cmake_include_directories [0.85s]
Finished <<< ament_cmake_python [0.87s]
Finished <<< ament_cmake_export_include_directories [0.86s]
Starting >>> ament_cmake_test
Finished <<< ament_cmake_export_link_flags [0.87s]
Finished <<< ament_cmake_export_definitions [0.90s]
Finished <<< ament_cmake_export_libraries [0.93s]
Starting >>> ament_cmake_export_interfaces
Finished <<< ament_cmake_libraries [0.96s]
Starting >>> ament_cmake_export_dependencies
Starting >>> ament_cmake_target_dependencies
Finished <<< ament_pep257 [0.93s]
Starting >>> ament_copyright
Starting >>> ament_index_python
Finished <<< ament_cmake_export_dependencies [0.91s]
Finished <<< ament_cmake_export_interfaces [0.96s]
Finished <<< ament_cmake_target_dependencies [0.93s]
Finished <<< ament_cmake_test [1.07s]
Starting >>> ament_cmake
Starting >>> ament_lint_auto
Starting >>> ament_cmake_gtest
Starting >>> ament_cmake_nose
Starting >>> ament_cmake_pytest
Finished <<< ament_index_python [1.09s]
Finished <<< ament_copyright [1.12s]
Starting >>> ament_lint_cmake
Starting >>> ament_cpplint
Starting >>> ament_xmllint
Finished <<< ament_cmake [1.33s]
Finished <<< ament_cmake_nose [1.31s]
Starting >>> uncrustify_vendor
Starting >>> ament_clang_format
Finished <<< ament_lint_auto [1.38s]
Finished <<< ament_cmake_gtest [1.37s]
Starting >>> ament_clang_tidy
Starting >>> ament_pclint
Finished <<< ament_cmake_pytest [1.39s]
Starting >>> ament_cmake_auto
Finished <<< ament_cpplint [1.89s]
Starting >>> ament_cmake_gmock
Finished <<< ament_lint_cmake [1.94s]
Finished <<< ament_xmllint [1.90s]
Starting >>> ament_cmake_lint_cmake
Finished <<< ament_clang_format [1.48s]
Finished <<< uncrustify_vendor [1.49s]
Starting >>> ament_uncrustify
Finished <<< ament_clang_tidy [1.47s]
Finished <<< ament_pclint [1.73s]
Finished <<< ament_cmake_auto [1.47s]
Finished <<< ament_cmake_lint_cmake [0.91s]
Starting >>> ament_cmake_copyright
Finished <<< ament_cmake_gmock [0.97s]
Finished <<< ament_uncrustify [0.66s]
Finished <<< ament_cmake_copyright [0.43s]
Starting >>> ament_cmake_cppcheck
Starting >>> ament_cmake_cpplint
Starting >>> ament_cmake_flake8
Starting >>> ament_cmake_pep257
Starting >>> ament_cmake_uncrustify
Starting >>> ament_cmake_xmllint
Starting >>> ament_cmake_clang_format
Starting >>> ament_cmake_clang_tidy
Finished <<< ament_cmake_flake8 [0.82s]
Finished <<< ament_cmake_xmllint [0.80s]
Starting >>> ament_cmake_pclint
Starting >>> ament_cmake_pep8
Finished <<< ament_cmake_cpplint [0.86s]
Finished <<< ament_cmake_pep257 [0.86s]
Starting >>> ament_cmake_pyflakes
Finished <<< ament_cmake_clang_tidy [0.84s]
Finished <<< ament_cmake_uncrustify [0.91s]
Finished <<< ament_cmake_cppcheck [0.94s]
Finished <<< ament_cmake_clang_format [0.91s]
Starting >>> ament_lint_common
Finished <<< ament_cmake_pep8 [0.53s]
Finished <<< ament_cmake_pclint [0.54s]
Finished <<< ament_cmake_pyflakes [0.63s]
Finished <<< ament_lint_common [0.57s]
Starting >>> ament_cmake_ros
Starting >>> ament_index_cpp
Starting >>> nuttx_kconfig_vendor
Finished <<< ament_cmake_ros [0.59s]
Finished <<< ament_index_cpp [5.24s]
--- stderr: nuttx_kconfig_vendor
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
ar: u' modifier ignored since D' is the default (see U') ar: u' modifier ignored since D' is the default (see U')
In file included from libs/parser/yconf.c:2507:
libs/parser/confdata.c: In function ‘conf_write’:
libs/parser/confdata.c:776:20: warning: ‘.tmpconfig.’ directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
776 | sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
| ^~~~~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:867,
from libs/parser/yconf.c:82:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 13 and 4119 bytes into a destination of size 4097
36 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.

Finished <<< nuttx_kconfig_vendor [14.3s]

Summary: 55 packages finished [23.9s]
1 package had stderr output: nuttx_kconfig_vendor
#All required rosdeps installed successfully

Installing uClibc++ in the NuttX source tree
Installation succeeded

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rcl_logging_noop: No definition of [launch_testing] for OS version [focal]
rcl: No definition of [osrf_testing_tools_cpp] for OS version [focal]
rosidl_default_runtime: No definition of [rosidl_generator_py] for OS version [focal]
rosidl_typesupport_c: No definition of [poco_vendor] for OS version [focal]
rclc: No definition of [osrf_testing_tools_cpp] for OS version [focal]
rcutils: No definition of [osrf_testing_tools_cpp] for OS version [focal]
rosidl_typesupport_cpp: No definition of [poco_vendor] for OS version [focal]
rcl_lifecycle: No definition of [osrf_testing_tools_cpp] for OS version [focal]
rmw_implementation: No definition of [poco_vendor] for OS version [focal]

Do you have some idea why these dependence are reported?

@pablogs9
Copy link
Member

pablogs9 commented Jul 2, 2020

Are you using Ubuntu 18.04?

@jayanthendo
Copy link
Author

@pablogs9 do we have an stable update for ROS2 foxy released?

@pablogs9
Copy link
Member

pablogs9 commented Jul 2, 2020

not yet, the stable version is dashing until next week or so.

@jayanthendo
Copy link
Author

Well, on this docker I have done:

sudo apt update
source /opt/ros/dashing/setup.bash
mkdir uros_ws && cd uros_ws
git clone -b dashing https://github.com/micro-ROS/micro-ros-build.git src/micro-ros-build
rosdep update && rosdep install --from-path src --ignore-src -y
colcon build
source install/local_setup.bash 

ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407
ros2 run micro_ros_setup configure_firmware.sh pingpong-eth

# Make sure that you have kconfig-frontends
git clone https://bitbucket.org/nuttx/tools.git firmware/tools
pushd firmware/tools/kconfig-frontends
./configure --enable-mconf --disable-nconf --disable-gconf --disable-qconf 
LD_RUN_PATH=/usr/local/lib && make && sudo make install && sudo ldconfig
popd

# Enable exception support (we will fix this soon)
pushd firmware/Nuttx
make menuconfig
# Go to Library Routines -> Enable Exception Support (under LLVM C++ Library)
# Hit save and exit
popd

ros2 run micro_ros_setup build_firmware.sh

# Now you have a .bin ready to be flashed

i have downloaded this docker and yet end up with errors, not able to create firmware in dashing

@acassis
Copy link

acassis commented Jul 2, 2020

Are you using Ubuntu 18.04?

Hi Pablo,
No, I'm using Ubuntu 20.04. BTW, the compilation of ROS2 happened correctly.
I think there is only some minor issues to get it working correctly. Do you have some idea how to fix it or debug it?

@acassis
Copy link

acassis commented Jul 5, 2020

Well, on this docker I have done:

sudo apt update
source /opt/ros/dashing/setup.bash
mkdir uros_ws && cd uros_ws
git clone -b dashing https://github.com/micro-ROS/micro-ros-build.git src/micro-ros-build
rosdep update && rosdep install --from-path src --ignore-src -y
colcon build
source install/local_setup.bash 

ros2 run micro_ros_setup create_firmware_ws.sh nuttx olimex-stm32-e407
ros2 run micro_ros_setup configure_firmware.sh pingpong-eth

# Make sure that you have kconfig-frontends
git clone https://bitbucket.org/nuttx/tools.git firmware/tools
pushd firmware/tools/kconfig-frontends
./configure --enable-mconf --disable-nconf --disable-gconf --disable-qconf 
LD_RUN_PATH=/usr/local/lib && make && sudo make install && sudo ldconfig
popd

# Enable exception support (we will fix this soon)
pushd firmware/Nuttx
make menuconfig
# Go to Library Routines -> Enable Exception Support (under LLVM C++ Library)
# Hit save and exit
popd

ros2 run micro_ros_setup build_firmware.sh

# Now you have a .bin ready to be flashed

i have downloaded this docker and yet end up with errors, not able to create firmware in dashing

Hi @pablogs9 in fact the issue appears related to Ubuntu 20.04 and CMake version. Also there are tons of warning messages during the compilation. I submitted a patch to rmw_microxrcedds_c fixing some of these warnings.

My complete compilation log is here:
https://pastebin.com/0tgV6ZvS

@pablogs9
Copy link
Member

pablogs9 commented Jul 6, 2020

Let us check this. We are not in 20.04 yet.

@FranFin
Copy link
Contributor

FranFin commented Jul 20, 2020

@jayanthendo @acassis Hi! Thank you for your interest in micro-ROS. Notice that we’ll discuss the recent contributions and developments in the next Embedded WG meeting. You’re invited to bring your micro-ROS related issue to this platform. We’ll be very happy to have you join us and discuss your questions with the community.

@jayanthendo
Copy link
Author

Thank you @pablogs9 i think this issue is in my local configuration as it was working on other system.

@zivy90
Copy link

zivy90 commented Jul 24, 2020

Hi, @jayanthendo and @acassis have you solved these issues? I also got similar errors. I am using Dashing to bulid micro_ROS, it appers error as @jayanthendo showed.
When I use Foxy, these errors shows like @acassis's.
@pablogs9 do you have any suggestions? I am using Ubuntu 18.04, but updating to 20.04.

@jayanthendo
Copy link
Author

@zivy90 i still don't know why this error's are coming on my system. i am using lenovo with ubuntu 18 but i have tested on dell system with same ubuntu and its working with same libraries as mine.

@pablogs9
Copy link
Member

We are merging the new Ubuntu 20.04 + micro-ROS Foxy tutorials in this PR: micro-ROS/micro-ROS.github.io#187

I would suggest that you try the new tutorials + Foxy release when they are merged.

Sorry for the inconvenience.

@pablogs9 pablogs9 changed the title Issues building with Nuttx Issues building with Nuttx + Olimex-stm32-e407 Jul 24, 2020
@pablogs9
Copy link
Member

pablogs9 commented Jul 24, 2020

Hello again! Please check this new tutorial for micro-ROS Foxy + Ubuntu 20.04 + Nuttx + Olimex: https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/nuttx/

I would also suggest you use a docker container using ros:foxy image.

@zivy90
Copy link

zivy90 commented Jul 24, 2020

@jayanthendo, @pablogs9 Thanks for the reply, I am going to try docker container. Thanks again for the help!

@zivy90
Copy link

zivy90 commented Jul 25, 2020

Hi, @pablogs9, one more question, I am using host to bulid micro-ros on Foxy branch, but after ros2 run micro_ros_setup configure_firmware.sh pingpong-eth
it got an error:

cd /microros_ws/firmware/apps/; colcon build --cmake-target clean --cmake-target-skip-unavailable
Starting >>> firmware
--- stderr: firmware
CMake Error: The source directory "/microros_ws/firmware/apps" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
---
Failed   <<< firmware [0.07s, exited with code 1]

run ros2 run micro_ros_setup configure_firmware.sh drive_base, shows

--- stderr: microxrcedds_client                                     
CMake Error at CMakeLists.txt:106 (find_package):
  By not providing "Findmicrocdr.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "microcdr",
  but CMake did not find one.

  Could not find a package configuration file provided by "microcdr"
  (requested version 1.2.0) with any of the following names:

    microcdrConfig.cmake
    microcdr-config.cmake

  Add the installation prefix of "microcdr" to CMAKE_PREFIX_PATH or set
  "microcdr_DIR" to a directory containing one of the above files.  If
  "microcdr" provides a separate development package or SDK, be sure it has
  been installed.

Do you have any idea? Thank you!

PS: I cannot use docker container, since there are some network issues, i.e., some sources cannot be accessed in Chain and I failed to let container use VPN.

Update (26/07):
Runnning ros2 run micro_ros_setup create_firmware_ws.sh nuttx *** , has below stderr

--- stderr: nuttx_kconfig_vendor                                  
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
In file included from libs/parser/yconf.c:2507:
libs/parser/confdata.c: In function ‘conf_write’:
libs/parser/confdata.c:776:20: warning: ‘.tmpconfig.’ directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
  776 |   sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
      |                    ^~~~~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:867,
                 from libs/parser/yconf.c:82:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 13 and 4119 bytes into a destination of size 4097
   36 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   37 |       __bos (__s), __fmt, __va_arg_pack ());
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
---
Finished <<< nuttx_kconfig_vendor [18.3s]

Summary: 60 packages finished [28.0s]
  1 package had stderr output: nuttx_kconfig_vendor

Update (27/07):
I configured the network of docker container (ros:foxy) successfully by using the host VPN .
But the above errors still exit.

@jayanthendo
Copy link
Author

@zivy90 which system are you using?
its better to switch system and try because i also got the same problem using normal ubuntu and docker also, when i switched to dell system its not showing these errors
i don't know why these error are causing

@zivy90
Copy link

zivy90 commented Jul 27, 2020

@zivy90 which system are you using?
its better to switch system and try because i also got the same problem using normal ubuntu and docker also, when i switched to dell system its not showing these errors
i don't know why these error are causing

@jamoralp I am using Ubuntu 20.04, my computer is Dell XPS. It is weird, I used Ubuntu 18.04 before, and showed these errors, while I upgraded the system to 20.04, same errors showed again.
BTW, dell system means using dell computer? Thank you!

@jayanthendo
Copy link
Author

i am using lenovo, its weird it's working on some system's and but not on other systems

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants