Closed johnpenright closed 2 years ago
So I've made some progress. In the robot param file (waffle_pi.yaml
), if I change line 29 from
robot_model_type: "differential"
to
robot_model_type: "nav2_amcl::DifferentialMotionModel"
then rViz will launch and initialize properly.
However I don't seem to be getting a local costmap, even though rViz is confugured to display one. I'm not seeing any clear errors in the logs.
After additional digging, it seems like this is related to a known issue with the FastDDS middleware.
There's a temporary fix here or you can install cyclonedds.
Hi, Thanks for your solution, I'm in the same issue, any explanation for that change? After following your instruction, any solution to get a local costmap back ?
Hi, Thanks for your solution, I'm in the same issue, any explanation for that change? After following your instruction, any solution to get a local costmap back ?
I don't think I needed to do anything specific; I just switched over to the cyclonedds.
I got "Message Filter dropping message: frame 'base_scan'/'odom' at time 24.074 for reason 'discarding message because the queue is full'". Is it any way to fix it in src file, and not switch to cyclonedds ( I have no idea about this)
switch to cyclonedds with
sudo apt install ros-<ros-distro>-rmw-cyclonedds-cpp
vim ~/.bashrc
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp # insert this line
source ~/.bashrc
when you do ros2 launch
, check on separate terminal using ps -eo cmd
, should show cyclonedds in --rmw-implementation
:
21318 22.0 0.6 535896 55044 pts/8 Sl 16:14 0:00 /usr/bin/python3 /opt/ros/humble/bin/_ros2_daemon --rmw-implementation rmw_cyclonedds_cpp --ros-domain-id 22
So I've made some progress. In the robot param file (
waffle_pi.yaml
), if I change line 29 from
robot_model_type: "differential"
to
robot_model_type: "nav2_amcl::DifferentialMotionModel"
then rViz will launch and initialize properly.
However I don't seem to be getting a local costmap, even though rViz is confugured to display one. I'm not seeing any clear errors in the logs.
Just a heads-up : Even with CycloneDDS, this failed until I fixed the AMCL configuration as above ^^^
According to the official Nav2 documentation, there is a note saying:
Note for users of galactic and earlier
The models are selectable by string key (valid options: “differential”, “omnidirectional”) rather than plugins.
... which is why that everyone going to Humble has this broken. So, we should be using nav2_amcl::DifferentialMotionModel
. Will put up a PR.
sea-bass,
Your results seem to be consistent with my experience. Fixing the AMCL configuration allowed the demo to run, but I didn't get a cost-map without the changing the DDS. This should be a relatively simple PR to resolve.
ISSUE TEMPLATE ver. 0.4.0
Which TurtleBot3 platform do you use?
Which ROS is working with TurtleBot3?
Which SBC(Single Board Computer) is working on TurtleBot3?
Which OS you installed on SBC?
Which OS you installed on Remote PC?
Specify the software and firmware version(Can be found from Bringup messages)
Specify the commands or instructions to reproduce the issue.
Running Gazebo simulation tutorials (https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/). Following Foxy instructions, adapted for Humble. The Gazebo process loads fine,
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
but starting the Navigation node gives constant errors.
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=$HOME/map.yaml
The above failure in configuring AMCL seems to be the key issue. Here are a few other observations:
[component_container_isolated-1] [INFO] [1656947652.365148100] [global_costmap.global_costmap]: Timed out waiting for transform from base_link to map to become available, tf error: Invalid frame ID "map" passed to canTransform argument target_frame - frame does not exist
map
node is missingMaybe this has something to do with the Navigation changes between Foxy and Humble (https://navigation.ros.org/migration/Galactic.html)?