Fixing a middleware mismatch + Nav2 transforms help #604
Unanswered
CFBerryhill
asked this question in
Questions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
How are you connecting to your Create 3?
USB Ethernet (ROS 2)
Computer(s) Model(s) and Operating System(s)
pi 4 mounted
Which version of ROS 2 is installed on your computer?
Humble
Which firmware version is installed on your robot?
H.2.3
Which RMW is your robot running?
I don't know
Does your robot have an assigned namespace? If so, please share.
No response
Is the robot connected to a network? If so, what is the network type?
No response
Are there multiple Create 3 robots connected to your network?
None
Is multicast enabled?
None
What is the Adapter Board's USB/BLE Toggle currently switched to?
None
Describe your question.
Sorry this is sort of 2 posts in one: first block is something I ran into and resolved but theres very poor documentation of on google so far as I can tell, and then the crux of the issue. I'm providing both for context that COULD be relevant though I'll admit that it seems unlikely to me. I've seperated the first fix and the actual issue with === bar.
PROBLEM I WAS HAVING AND HAD A HARD TIME FINDING THE SOLUTION TO:
This is an extension of this problem here. As a short summary I'm trying to get Slam toolbox and nav2 to work and communicate with each other. I suspected that my issue was that my ROS2 distros are different on my raspberry pi and the computer I'm running rviz on, but taking a closer look at some errors that keep cropping up and the troubleshooting hints on this doc (helpfully provided as a response to my last question) I think the issue is actually just the middleware.
Here's the error message:
Specificallly looking at this line:
[async_slam_toolbox_node-1] 'Fast CDR exception deserializing message of type rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_., at ./src/type_support_common.cpp:118'
the message looks like its coming over the middleware, and moreover is triggered when I interact with rviz on the laptop while everything else runs on the raspberry pi.
I have yet to find any instructions on checking which middleware you are using unless you've set the
$RMW_IMPLEMENTATION
environment variable. Luckily I have so I resolved this particular issue after writing most of this up. I'm keeping it in case future people are looking for an answer to this problem because I found it hard to find.======================================================
PROBLEM IM HAVING NOW:
So I fixed the issue with the middle ware and.... no dice on nav2 actually working. I'm running slam-toolbox and launching nav2 navigation on the pi, with rviz on my laptop publishing
estimated pose
andnav2 goal pose
. The feedback I'm getting from the navigation is this:[controller_server-1] [INFO] [1722454414.654427680] [local_costmap.local_costmap]: Timed out waiting for transform from base_link to odom to become available, tf error: Invalid frame ID "odom" passed to canTransform argument target_frame - frame does not exist
along with every server periodically dying with nearly identical exit codes, as an example:
[ERROR] [smoother_server-2]: process has died [pid 5944, exit code -9, cmd '/opt/ros/humble/lib/nav2_smoother/smoother_server --ros-args --log-level info --ros-args -r __node:=smoother_server --params-file /tmp/launch_params_gqf3tp5p -r /tf:=tf -r /tf_static:=tf_static'].
The topic echo of /tf has a lot of this:
and so on...
The error code is correct so far as I can tell, there was no tf between base_link and odom at any point, just map to odom. How do I fix this?
(apologies in advance if this should have been 2 posts)
Beta Was this translation helpful? Give feedback.
All reactions