ROS2显示urdf模型中No transform from [XX_Link] to [base_link]
错误
该错误中关节joint
为fixed
可以正常显示,而其他joint
为cotinuous
,都显示无法关联到base_link
,当我尝试把所有joint改为fixed时可以显示正常,但这并不是正确的解决办法。
解决
原因是在launch文件中未添加joint_state_publisher
节点,导致旋转关节无法关联
display_launch.py
from launch import LaunchDescription
from launch_ros.actions import Node
from launch.substitutions import Command
from ament_index_python.packages import get_package_share_directory
from launch_ros.parameter_descriptions import ParameterValue
def generate_launch_description():
p_value = ParameterValue(Command(["xacro ", get_package_share_directory("cpp06_urdf") + "/urdf/urdf/ros_car.urdf"]))
robot_state_pub = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
parameters=[{"robot_description":p_value}]
)
rviz2 = Node(
package="rviz2",
executable="rviz2",
arguments=["-d", get_package_share_directory("cpp06_urdf")+"/rviz/ros_car.urdf.rviz"])
return LaunchDescription([robot_state_pub, rviz2])
添加joint_state_publisher
节点
joint_state_pub = Node(
package="joint_state_publisher",
executable="joint_state_publisher")
return LaunchDescription([robot_state_pub,joint_state_pub, rviz2])
重新编译并运行
colcon build --packages-select cpp06_urdf
. install/setup.bash
ros2 launch cpp06_urdf display_launch.py
显示正常