neobotix / neo_docking2

ROS2 package for neo_docking
2 stars 1 forks source link

no trasformation found between map and base_footprint #42

Closed MattiaDeiRossi closed 2 months ago

MattiaDeiRossi commented 9 months ago

Hi guys,

We are trying to use neo_docking2 but we have tf issues. We are using cyclonedds setted as follow

 export CYCLONEDDS_URI=file:///awcombo_ros2/cyclonedds.xml
 export ROS_DOMAIN_ID=110
 export ROS_LOCALHOST_ONLY=1
 export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

file awcombo_ros2/cyclonedds.xml

<CycloneDDS>
  <Domain>
    <General>
      <AllowMulticast>false</AllowMulticast>
    </General>
    <Discovery>
      <ParticipantIndex>auto</ParticipantIndex>
      <MaxAutoParticipantIndex>1000</MaxAutoParticipantIndex>
    </Discovery>
  </Domain>
</CycloneDDS>
ros2 launch neo_docking2 docking_launch.py

When the service go_and_dock is called with

ros2 service call /go_and_dock std_srvs/srv/Empty {}

The terminal of server shows:

[INFO] [launch]: All log files can be found below /root/.ros/log/2024-01-29-11-22-32-992784-debian-905
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [neo_docking2-1]: process started with pid [906]
[neo_docking2-1] [INFO] [1706527353.080294855] [neo_docking2]: automatically configuring namespace support
[neo_docking2-1] [INFO] [1706527356.631592716] [neo_docking2]: Starting to dock
[neo_docking2-1] no trasformation found between map and base_footprint

We have already verified that /navigate_to_pose action works well sending a goal from cmdline. Our tf tree is the following one:

55051622-439c-47dc-8e0a-c9e7befd9c05

padhupradheep commented 9 months ago

Hey, thanks for reporting:

no trasformation found between map and base_footprint

Looks like an issue with the localization.. I could give it a try locally and get back to you.

Only thing I could blame as always is the DDS. :laughing:

padhupradheep commented 2 months ago

Closing due to inactivity.

man-do commented 1 month ago

At line 77-84 of neo_docking.cpp:

if (robot_namespace != "/")
    {
      RCLCPP_INFO(this->get_logger(), "automatically configuring namespace support");
      docking_station_ = robot_namespace + "/" + docking_station_;
      pre_dock_ = robot_namespace + "/" + pre_dock_;
      pre_dock_2_ = robot_namespace + "/" + pre_dock_2_;
      base_link_ = robot_namespace + "/" + base_link_;
    }

if robot_namespace is "" then you put "/" in fron of baselink which the tf2 system during lookupTransform errors out.