ROS_Lessons_Learned - RicoJia/notes GitHub Wiki

========================================================================

Gazebo

========================================================================

  1. Want Gazebo to publish /joint_state. Conclusions:
    • By default, Gazebo does not publish /joint_state. One needs JointStateController to publish it.
    • However, from source code, we cannot remap the topic name /joint_state: Link. One potential solution is changing Gazebo's ns. But gazebo does not allow it.
    • Therefore, it seems that we can only publish /joint_states from Gazebo, which seems to be one bottleneck of the plugin
    • moveit! and joint_state_publisher can be easily remapped
    • Lessons Learned
      • Not gettting all command topics: DO NOT READ ephemeral topics, such as topic list. Read from services, or rosparams
      • rosrun ... __ns:= is the correct way to launch node in namespace
      • MQTT not publishing the joint values in the right order:
        • Thought we can let Gazebo/Esp32 first publish joint states, motion controller follow the order
        • In gazebo, we have put hand and arm joints together.
        • But we have two topics: /hand, /arm. So publishing the two separately will require muxing at the end
        • **Lesson learned: ** stick to the same paradigm. If they're separate, stick to it
⚠️ **GitHub.com Fallback** ⚠️