Comments (8)
I have tested the whole process with your board, here you have my session: https://asciinema.org/a/Vpcvaj7wgAqTRv8Y3Gbs8hoHp
The final error is that the board has not enough memory (this SoC has 24 kB? this will be challenging)... In any case, you can check this tutorial for tunning the micro-ROS memory usage.
from micro_ros_zephyr_module.
Nice, I'm closing. Feel free to open another issue if you have further problems.
from micro_ros_zephyr_module.
You should be able to use this component as it is with your boards if it is supported by Zephyr.
Did you have any problem?
from micro_ros_zephyr_module.
Hi @pablogs9,
I first tried the following tutorial, but obviously my board is not in the supported ones, and so I cloned this repo, and executed the west build as follow:
(nrf) manucar@D311:~/Desktop/micro-ROS$ west build --board ubx_bmd360eval_nrf52811 micro_ros_zephyr_module
-- west build: generating a build system
Including boilerplate (Zephyr base (cached)): /home/manucar/Documents/NRF_SDK/ncs/zephyr/cmake/app/boilerplate.cmake
-- Application: /home/manucar/Desktop/micro-ROS/micro_ros_zephyr_module
-- Zephyr version: 2.7.99 (/home/manucar/Documents/NRF_SDK/ncs/zephyr), build: v2.7.99-ncs1-1
-- Found west (found suitable version "0.13.1", minimum required is "0.7.1")
CMake Warning at /home/manucar/Documents/NRF_SDK/ncs/zephyr/cmake/app/boilerplate.cmake:241 (message):
BOARD_ROOT element without a 'boards' subdirectory:
/home/manucar/Desktop/micro-ROS
Hints:
- if your board directory is '/foo/bar/boards/<ARCH>/my_board' then add '/foo/bar' to BOARD_ROOT, not the entire board directory
- if in doubt, use absolute paths
Call Stack (most recent call first):
/home/manucar/Documents/NRF_SDK/ncs/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:24 (include)
/home/manucar/Documents/NRF_SDK/ncs/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:40 (include_boilerplate)
CMakeLists.txt:7 (find_package)
-- Board: ubx_bmd360eval_nrf52811
-- Cache files will be written to: /home/manucar/.cache/zephyr
-- Found dtc: /usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6")
-- Found toolchain: gnuarmemb (/home/manucar/gcc-arm-none-eabi-10.3-2021.10)
-- Found BOARD.dts: /home/manucar/Documents/NRF_SDK/ncs/zephyr/boards/arm/ubx_bmd360eval_nrf52811/ubx_bmd360eval_nrf52811.dts
-- Generated zephyr.dts: /home/manucar/Desktop/micro-ROS/build/zephyr/zephyr.dts
-- Generated devicetree_unfixed.h: /home/manucar/Desktop/micro-ROS/build/zephyr/include/generated/devicetree_unfixed.h
-- Generated device_extern.h: /home/manucar/Desktop/micro-ROS/build/zephyr/include/generated/device_extern.h
-- Including generated dts.cmake file: /home/manucar/Desktop/micro-ROS/build/zephyr/dts.cmake
Parsing /home/manucar/Documents/NRF_SDK/ncs/zephyr/Kconfig
Loaded configuration '/home/manucar/Documents/NRF_SDK/ncs/zephyr/boards/arm/ubx_bmd360eval_nrf52811/ubx_bmd360eval_nrf52811_defconfig'
Merged configuration '/home/manucar/Desktop/micro-ROS/micro_ros_zephyr_module/prj.conf'
Merged configuration '/home/manucar/Desktop/micro-ROS/build/zephyr/misc/generated/extra_kconfig_options.conf'
warning: NATIVE_POSIX_TIMER (defined at drivers/timer/Kconfig.native_posix:6) was assigned the value
'y' but got the value 'n'. Check these unsatisfied dependencies: BOARD_NATIVE_POSIX (=n). See
http://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_NATIVE_POSIX_TIMER.html and/or look up
NATIVE_POSIX_TIMER in the menuconfig/guiconfig interface. The Application Development Primer,
Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be
helpful too.
/home/manucar/Desktop/micro-ROS/micro_ros_zephyr_module/prj.conf:17: warning: attempt to assign the value 'y' to the undefined symbol USB
error: Aborting due to Kconfig warnings
CMake Error at /home/manucar/Documents/NRF_SDK/ncs/zephyr/cmake/kconfig.cmake:272 (message):
command failed with return code: 1
Call Stack (most recent call first):
/home/manucar/Documents/NRF_SDK/ncs/zephyr/cmake/app/boilerplate.cmake:544 (include)
/home/manucar/Documents/NRF_SDK/ncs/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:24 (include)
/home/manucar/Documents/NRF_SDK/ncs/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:40 (include_boilerplate)
CMakeLists.txt:7 (find_package)
-- Configuring incomplete, errors occurred!
FATAL ERROR: command exited with status 1: /usr/bin/cmake -DWEST_PYTHON=/usr/bin/python3 -B/home/manucar/Desktop/micro-ROS/build -S/home/manucar/Desktop/micro-ROS/micro_ros_zephyr_module -GNinja
and it gives me the above errors.
It's my first time with micro-ROS, any advice is really appreciated!
from micro_ros_zephyr_module.
Ok definitely this SoC is not powerful enough, I will upgrade to the next version "ubx_bmd380eval_nrf52840". Following your video and compiling for this new board, it gives me no error! So when the board will arrive I think the flashing will be okay, I will let you know.
Thank you very much for your precious help!
from micro_ros_zephyr_module.
Hi @pablogs9, the board is arrived and I flashed the built image, but it remains stuck in this function (as far as I can see with gdb):
(gdb) c
Continuing.
^C
Program received signal SIGTRAP, Trace/breakpoint trap.
0x000018de in main () at ../src/main.c:54
54 RCCHECK(rclc_support_init_with_options(&support, 0, NULL, &init_options, &allocator));
and on the agent side:
(base) manucar@D311:~$ docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:humble serial --dev /dev/ttyACM1 -v6
[1654605220.329402] info | TermiosAgentLinux.cpp | init | running... | fd: 3
[1654605220.329568] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 6
I compiled the example on this repo with the same steps of your video (for the actual board: ubx_bmd380eval_nrf52840).
Do you think anything I can try?
Thanks!
from micro_ros_zephyr_module.
Make sure that your board is reaching the PC via /dev/ttyACM1
. Make sure that your serial ports are working ok before using it for micro-ROS client transport.
from micro_ros_zephyr_module.
Hi @pablogs9, okay after some debugging I find out that for some reason in this function for opening the transport layer:
bool zephyr_transport_open(struct uxrCustomTransport * transport){
zephyr_transport_params_t * params = (zephyr_transport_params_t*) transport->args;
char uart_descriptor[8];
sprintf(uart_descriptor,"UART_%d", params->fd);
params->uart_dev = device_get_binding(uart_descriptor);
if (!params->uart_dev) {
printk("Serial device not found\n");
return false;
}
...
the params->fd
field was set to 1
, so it was opening the UART_1
, changing it to 0
-> UART_0
make it works.
from micro_ros_zephyr_module.
Related Issues (20)
- POSIX timers for zephyr fix in rcutils is not being reflected in the humble release HOT 9
- Support for custom messages? HOT 1
- rcutils/src/time_unix.c fails on foxy HOT 8
- std_srvs location HOT 3
- Cannot create more than 2 services HOT 4
- How does someone make use of this in a zephyr project? HOT 2
- Support for chip from espressif family with Zephyr HOT 18
- Pip dependencies error while running Zephyr Emulator tutorial HOT 2
- Micro ros agent stopped at set_verbose_level HOT 4
- Changed Zephyr code base causes compilation errors (z_impl_clock_gettime) HOT 5
- How to add extra package? HOT 3
- Bluetooth transport
- Ping does not work after `rclc_support_init` is called HOT 4
- Error code 1 on calling `rclc_node_init_default` HOT 6
- Build issue with Zephyr 3.1 HOT 9
- A few build questions HOT 6
- Has someone tried UDP on STM32? HOT 3
- Separating module and custom_app repo HOT 1
- Build fails when adding CONFIG_CPLUSPLUS to prj.conf HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from micro_ros_zephyr_module.