Comments (6)
Share code for replicating this issue.
Which transport are you using?
Does the board connect to wifi with your setup without micro-ROS?
from micro_ros_platformio.
I am trying to use wifi as transport for micro ros but not getting it to work, with serial transport it worked.
Before I used micro ros with platform io, i used esp idf. There the wifi connection worked with micro ros and also the agent worked so there were no problems.
I don´t know how i should test the wifi connection without using micro ros.
Thanks for the response!
#include <Arduino.h>
#include <micro_ros_platformio.h>
#include <rcl/rcl.h>
#include <rclc/rclc.h>
#include <rclc/executor.h>
#include <std_msgs/msg/int32.h>
IPAddress agent_ip(192, 168, 178, 88);
size_t agent_port = 8888;
char ssid[] = "ssid";
char psk[] = "pwsd"; // change to correct ssid and pswd in my code
rcl_subscription_t subscriber;
std_msgs__msg__Int32 msg;
rclc_executor_t exe;
rclc_support_t support;
rcl_allocator_t allocator;
rcl_node_t node;
void spin_motor(const void *msgin)
{
const std_msgs__msg__Int32 *msg = (const std_msgs__msg__Int32 *)msgin;
digitalWrite(GPIO_NUM_17, HIGH);
delay(msg->data * 100);
digitalWrite(GPIO_NUM_17, LOW);
}
void setup()
{
set_microros_wifi_transports(ssid, psk, agent_ip, agent_port);
pinMode(GPIO_NUM_17, OUTPUT);
digitalWrite(GPIO_NUM_17, HIGH);
digitalWrite(GPIO_NUM_17, HIGH);
delay(GPIO_NUM_17 * 100);
digitalWrite(GPIO_NUM_17, LOW);
rcl_allocator_t allocator = rcl_get_default_allocator();
rclc_support_init(&support, 0, NULL, &allocator);
// Init default node
rclc_node_init_default(&node, "motor_driver", "", &support);
rclc_subscription_init_default(
&subscriber, &node,
ROSIDL_GET_MSG_TYPE_SUPPORT(std_msgs, msg, Int32), "motor_pos");
rclc_executor_init(&exe, &support.context, 1, &allocator);
rcl_ret_t rc = rclc_executor_add_subscription(
&exe, &subscriber, &msg,
&spin_motor, ON_NEW_DATA);
}
void loop()
{
rclc_executor_spin_some(&exe, RCL_MS_TO_NS(100));
}
from micro_ros_platformio.
- Does your network works without micro-ROS?
- Could you link here the transport implementation you are using?
from micro_ros_platformio.
Hi, I tried ruing wifi without micro ros, it worked.
The Code I copied from the Internet :)
It gets an Ip
I am sorry I don't now what you mean with your second point. But i am using the esp32dev board and just the normal wifi not wifi_nina and I did not create the colcon.meta file. I don't know if its helpful but i would share also the installation of micro ros in platform io.
The code for testing wifi:
#include <Arduino.h>
#include "WiFi.h"
// WiFi credentials.
const char* WIFI_SSID = "wifi-ssid";
const char* WIFI_PASS = "wifi-password";
void setup()
{
Serial.begin(9600);
// Giving it a little time because the serial monitor doesn't
// immediately attach. Want the firmware that's running to
// appear on each upload.
delay(2000);
Serial.println();
Serial.println("Running Firmware.");
// Connect to Wifi.
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(WIFI_SSID);
// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
WiFi.begin(WIFI_SSID, WIFI_PASS);
Serial.println("Connecting...");
while (WiFi.status() != WL_CONNECTED) {
// Check to see if connecting failed.
// This is due to incorrect credentials
if (WiFi.status() == WL_CONNECT_FAILED) {
Serial.println("Failed to connect to WIFI. Please verify credentials: ");
Serial.println();
Serial.print("SSID: ");
Serial.println(WIFI_SSID);
Serial.print("Password: ");
Serial.println(WIFI_PASS);
Serial.println();
}
delay(5000);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Hello World, I'm connected to the internets!!");
}
void loop()
{
delay(5000);
Serial.println("Hello World");
}
So here the installation of the micro ros lib:
Library Manager: Installing git+https://github.com/micro-ROS/micro_ros_platformio
git version 2.34.1
Cloning into '/home/neb/.platformio/.cache/tmp/pkg-installing-brxhhstz'...
remote: Enumerating objects: 67, done.
remote: Counting objects: 100% (67/67), done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 67 (delta 10), reused 45 (delta 4), pack-reused 0
Receiving objects: 100% (67/67), 125.47 KiB | 2.46 MiB/s, done.
Resolving deltas: 100% (10/10), done.
Library Manager: [email protected]+sha.22cf9b6 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (5.2.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
- framework-arduinoespressif32 @ 3.20005.220925 (2.0.5)
- tool-esptoolpy @ 1.40201.0 (4.2.1)
- tool-mkfatfs @ 2.0.1
- tool-mklittlefs @ 1.203.210628 (2.3)
- tool-mkspiffs @ 2.230.0 (2.30)
- toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Installing pyyaml with pip at PlatformIO environment
/home/neb/.platformio/penv/bin/python -m pip install pyyaml
Requirement already satisfied: pyyaml in /home/neb/.platformio/penv/lib/python3.10/site-packages (6.0)
Installing markupsafe==2.0.1 with pip at PlatformIO environment
/home/neb/.platformio/penv/bin/python -m pip install markupsafe==2.0.1
Requirement already satisfied: markupsafe==2.0.1 in /home/neb/.platformio/penv/lib/python3.10/site-packages (2.0.1)
Configuring esp32dev with transport wifi
Downloading micro-ROS dev dependencies
- Downloaded ament_cmake
- Downloaded ament_lint
- Downloaded ament_package
- Downloaded googletest
- Downloaded ament_cmake_ros
- Downloaded ament_index
Building micro-ROS dev dependencies
Downloading micro-ROS library
- Downloaded microcdr
- Downloaded microxrcedds_client
- Downloaded rcl_action
- Downloaded rcl_yaml_param_parser (ignored)
- Downloaded rcl
- Downloaded rcl_lifecycle
- Downloaded rclc_examples (ignored)
- Downloaded rclc_lifecycle
- Downloaded rclc
- Downloaded rclc_parameter
- Downloaded micro_ros_utilities
- Downloaded rcutils
- Downloaded micro_ros_msgs
- Downloaded rmw_microxrcedds
- Downloaded rosidl_typesupport_c
- Downloaded rosidl_typesupport_cpp (ignored)
- Downloaded rosidl_typesupport_microxrcedds_test_msg
- Downloaded rosidl_typesupport_microxrcedds_c_tests
- Downloaded rosidl_typesupport_microxrcedds_cpp_tests
- Downloaded rosidl_typesupport_microxrcedds_cpp (ignored)
- Downloaded rosidl_typesupport_microxrcedds_c
- Downloaded rosidl_parser
- Downloaded rosidl_adapter
- Downloaded rosidl_generator_c
- Downloaded rosidl_generator_cpp (ignored)
- Downloaded rosidl_typesupport_introspection_tests
- Downloaded rosidl_typesupport_introspection_c
- Downloaded rosidl_typesupport_interface
- Downloaded rosidl_runtime_c
- Downloaded rosidl_cli
- Downloaded rosidl_cmake
- Downloaded rosidl_typesupport_introspection_cpp (ignored)
- Downloaded rosidl_runtime_cpp (ignored)
- Downloaded rmw_implementation_cmake
- Downloaded rmw
- Downloaded action_msgs
- Downloaded rcl_interfaces
- Downloaded composition_interfaces
- Downloaded lifecycle_msgs
- Downloaded rosgraph_msgs
- Downloaded statistics_msgs
- Downloaded test_msgs
- Downloaded builtin_interfaces
- Downloaded rosidl_default_generators
- Downloaded rosidl_default_runtime
- Downloaded unique_identifier_msgs
- Downloaded common_interfaces
- Downloaded nav_msgs
- Downloaded actionlib_msgs
- Downloaded std_srvs
- Downloaded sensor_msgs_py
- Downloaded sensor_msgs
- Downloaded diagnostic_msgs
- Downloaded std_msgs
- Downloaded stereo_msgs
- Downloaded shape_msgs
- Downloaded trajectory_msgs
- Downloaded visualization_msgs
- Downloaded geometry_msgs
- Downloaded test_interface_files
- Downloaded rmw_implementation
- Downloaded test_rmw_implementation
- Downloaded rcl_logging_spdlog (ignored)
- Downloaded rcl_logging_noop
- Downloaded rcl_logging_interface
- Downloaded tracetools_test
- Downloaded test_tracetools
- Downloaded tracetools_read
- Downloaded ros2trace
- Downloaded tracetools
- Downloaded test_tracetools_launch
- Downloaded tracetools_launch
- Downloaded tracetools_trace
- Extra packages folder not found, skipping...
Building micro-ROS library
Found 34 compatible libraries
Scanning dependencies...
Dependency Graph
|-- AccelStepper @ 1.61.0
|-- micro_ros_platformio @ 0.0.1+sha.22cf9b6
| |-- WiFi @ 2.0.0
Building in release mode
Thank you very much for the effort!
from micro_ros_platformio.
I am sorry I don't now what you mean with your second point.
In general, I just need instructions for replicating your issue. Share here your project so we can build and reproduce your problem.
from micro_ros_platformio.
Hi,
sorry for replying so late. I switched my location and also the wifi. I used the same code like before but now it works. Probably it was something with the wifi. The only difference I know of is that I now saved it in the default location of platfrom io and not in a costume one like I did before. In about a week I am back in the other location. I`ll see if I can set it up then properly.
But thank you very much!
from micro_ros_platformio.
Related Issues (20)
- Feature request Wifi transport for RP2040 W HOT 9
- rosidl_runtime_cppConfig.cmake missing error HOT 2
- Modules won't compile with colcon build HOT 1
- ament_cmake clone failed when compiling for esp32-dev HOT 19
- Micro-ROS timer not working on my esp32 board/toolchain HOT 15
- MicroROS spin_some() blocks the functionality of the Adafruit bno08x library HOT 2
- Crashing when connected to Agent over UDP HOT 3
- Windows 11 VSCode "'.' is not recognized as an internal or external command" when adding library to lib_deps in platformio.ini HOT 3
- Micro-ROS parameter server not reporting correct parameter values to host on initial connection HOT 2
- Arduino Wire.h I2C custom transport on Pi Pico is causing a crash
- Same message is received continuously. HOT 6
- Publishing to a subscriber causes rclc_executor_spin_some to return a fail code. HOT 2
- Wrong UNIX time from rmw_uros_sync_session HOT 1
- Can't get topics to show on ROS2 Humble HOT 1
- ESP32-EVB support
- Failer build the firmware HOT 5
- No nodes or topics visible using ESP32 and WiFi transport HOT 31
- [Feature request] custom task kill micro-ros-agent and upload to board HOT 1
- Why use "-DRMW_UXRCE_TRANSPORT=custom" in metas? rmw_microros discovery.c won't build. HOT 1
- tf2_msgs not in micro_ros_platformio HOT 2
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_platformio.