@@ -67,6 +67,7 @@ constexpr const auto kSizeAttribute = "size";
6767constexpr const auto kNameAttribute = " name" ;
6868constexpr const auto kTypeAttribute = " type" ;
6969constexpr const auto kRoleAttribute = " role" ;
70+ constexpr const auto kReadOnlyAttribute = " read_only" ;
7071constexpr const auto kReductionAttribute = " mechanical_reduction" ;
7172constexpr const auto kOffsetAttribute = " offset" ;
7273constexpr const auto kReadWriteRateAttribute = " rw_rate" ;
@@ -554,6 +555,9 @@ JointInfo parse_transmission_joint_from_xml(const tinyxml2::XMLElement * element
554555 JointInfo joint_info;
555556 joint_info.name = get_attribute_value (element_it, kNameAttribute , element_it->Name ());
556557 joint_info.role = get_attribute_value (element_it, kRoleAttribute , element_it->Name ());
558+ const auto * read_only_attr = element_it->FindAttribute (kReadOnlyAttribute );
559+ joint_info.read_only =
560+ read_only_attr ? parse_bool (ros2_control::strip (read_only_attr->Value ())) : false ;
557561 joint_info.mechanical_reduction =
558562 get_parameter_value_or (element_it->FirstChildElement (), kReductionAttribute , 1.0 );
559563 joint_info.offset =
@@ -566,6 +570,9 @@ ActuatorInfo parse_transmission_actuator_from_xml(const tinyxml2::XMLElement * e
566570 ActuatorInfo actuator_info;
567571 actuator_info.name = get_attribute_value (element_it, kNameAttribute , element_it->Name ());
568572 actuator_info.role = get_attribute_value (element_it, kRoleAttribute , element_it->Name ());
573+ const auto * read_only_attr = element_it->FindAttribute (kReadOnlyAttribute );
574+ actuator_info.read_only =
575+ read_only_attr ? parse_bool (ros2_control::strip (read_only_attr->Value ())) : false ;
569576 actuator_info.mechanical_reduction =
570577 get_parameter_value_or (element_it->FirstChildElement (), kReductionAttribute , 1.0 );
571578 actuator_info.offset =
@@ -675,7 +682,7 @@ void auto_fill_transmission_interfaces(HardwareInfo & hardware)
675682 transmission.actuators .push_back (
676683 ActuatorInfo{
677684 " actuator1" , transmission.joints [0 ].state_interfaces ,
678- transmission.joints [0 ].command_interfaces , " actuator1" , 1.0 , 0.0 });
685+ transmission.joints [0 ].command_interfaces , " actuator1" , 1.0 , 0.0 , false });
679686 }
680687 }
681688}
0 commit comments