gazebo controller recognition problem
Hello, there is a problem with the controller input while uploading the robot from gazebo. I'd appreciate your help.
error message
$ roslaunch {package} launch
... logging to /home/kimjaen/.ros/log/1d958cb2-c239-11ed-9b62-fd77b2be295e/roslaunch-kimjaen-2174.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://localhost:33523/
SUMMARY
========
PARAMETERS
* /gazebo/enable_ros_network: True
* /rosdistro: noetic
* /rosversion: 1.15.15
* /car/joint_03_position_controller/joint: joint_03
* /car/joint_03_position_controller/pid/d: 10.0
* /car/joint_03_position_controller/pid/i: 0.01
* /car/joint_03_position_controller/pid/p: 100.0
* /car/joint_03_position_controller/type: effort_controller...
* /car/joint_04_position_controller/joint: joint_04
* /car/joint_04_position_controller/pid/d: 10.0
* /car/joint_04_position_controller/pid/i: 0.01
* /car/joint_04_position_controller/pid/p: 100.0
* /car/joint_04_position_controller/type: effort_controller...
* /car/joint_05_position_controller/joint: joint_05
* /car/joint_05_position_controller/pid/d: 10.0
* /car/joint_05_position_controller/pid/i: 0.01
* /car/joint_05_position_controller/pid/p: 100.0
* /car/joint_05_position_controller/type: effort_controller...
* /car/joint_state_controller/publish_rate: 50
* /car/joint_state_controller/type: joint_state_contr...
* /car/left_slider_position_controller/joint: left_slider
* /car/left_slider_position_controller/pid/d: 10.0
* /car/left_slider_position_controller/pid/i: 0.01
* /car/left_slider_position_controller/pid/p: 100.0
* /car/left_slider_position_controller/type: effort_controller...
* /car/right_slider_position_controller/joint: right_slider
* /car/right_slider_position_controller/pid/d: 10.0
* /car/right_slider_position_controller/pid/i: 0.01
* /car/right_slider_position_controller/pid/p: 100.0
* /car/right_slider_position_controller/type: effort_controller...
* /car/robot_description: <?xml version="1....
* /use_sim_time: True
NODES
/
gazebo (gazebo_ros/gzserver)
gazebo_gui (gazebo_ros/gzclient)
/car/
controller_spawner (controller_manager/spawner)
mybot_spawn (gazebo_ros/spawn_model)
rqt_publisher (rqt_publisher/rqt_publisher)
rqt_reconfigure (rqt_reconfigure/rqt_reconfigure)
auto-starting new master
process[master]: started with pid [2186]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 1d958cb2-c239-11ed-9b62-fd77b2be295e
process[rosout-1]: started with pid [2196]
started core service [/rosout]
process[gazebo-2]: started with pid [2199]
process[gazebo_gui-3]: started with pid [2205]
process[car/mybot_spawn-4]: started with pid [2211]
process[car/controller_spawner-5]: started with pid [2214]
process[car/rqt_reconfigure-6]: started with pid [2215]
process[car/rqt_publisher-7]: started with pid [2216]
[INFO] [1678778609.565001, 0.000000]: Loading model XML from ros parameter robot_description
[INFO] [1678778609.569759, 0.000000]: Waiting for service /gazebo/spawn_urdf_model
[INFO] [1678778609.572303, 0.000000]: Waiting for /clock to be available...
[ INFO] [1678778609.830229877]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1678778609.831096434]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1678778609.937331903]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
[ INFO] [1678778609.938207370]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1678778610.163657896]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[INFO] [1678778610.173782, 0.007000]: Calling service /gazebo/spawn_urdf_model
[INFO] [1678778610.493265, 0.156000]: Spawn status: SpawnModel: Successfully spawned entity
[ INFO] [1678778610.499239229, 0.156000000]: Physics dynamic reconfigure ready.
../src/intel/isl/isl.c:2105: FINISHME: ../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available.
[ INFO] [1678778610.545539505, 0.156000000]: Loading gazebo_ros_control plugin
[ INFO] [1678778610.545732534, 0.156000000]: Starting gazebo_ros_control plugin in namespace: /car/
[ INFO] [1678778610.546101339, 0.156000000]: gazebo_ros_control plugin is waiting for model URDF in parameter [/car/robot_description] on the ROS param server.
[ INFO] [1678778610.672966102, 0.156000000]: Loaded gazebo_ros_control.
[INFO] [1678778610.717540, 0.201000]: /clock is published. Proceeding to load the controller(s).
[INFO] [1678778610.718493, 0.201000]: Controller Spawner: Waiting for service /car/controller_manager/load_controller
[INFO] [1678778610.720274, 0.203000]: Controller Spawner: Waiting for service /car/controller_manager/switch_controller
[INFO] [1678778610.722062, 0.205000]: Controller Spawner: Waiting for service /car/controller_manager/unload_controller
[INFO] [1678778610.723975, 0.207000]: Loading controller: joint_state_controller
[INFO] [1678778610.731911, 0.215000]: Loading controller: joint03_position_controller
[ERROR] [1678778610.734682353, 0.218000000]: Could not load controller 'joint03_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/car/joint03_position_controller')?
[car/mybot_spawn-4] process has finished cleanly
log file: /home/kimjaen/.ros/log/1d958cb2-c239-11ed-9b62-fd77b2be295e/car-mybot_spawn-4*.log
[ERROR] [1678778611.735891, 1.216000]: Failed to load joint03_position_controller
[INFO] [1678778611.736835, 1.217000]: Loading controller: joint04_position_controller
[ERROR] [1678778611.739638016, 1.219000000]: Could not load controller 'joint04_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/car/joint04_position_controller')?
[ERROR] [1678778612.740603, 2.218000]: Failed to load joint04_position_controller
[INFO] [1678778612.741582, 2.219000]: Loading controller: joint05_position_controller
[ERROR] [1678778612.743917646, 2.222000000]: Could not load controller 'joint05_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/car/joint05_position_controller')?
[ERROR] [1678778613.744581, 3.220000]: Failed to load joint05_position_controller
[INFO] [1678778613.745495, 3.221000]: Loading controller: left_slider_position_controller
[INFO] [1678778613.774940, 3.251000]: Loading controller: right_slider_position_controller
[INFO] [1678778613.789221, 3.265000]: Controller Spawner: Loaded controllers: joint_state_controller, left_slider_position_controller, right_slider_position_controller
[INFO] [1678778613.795694, 3.272000]: Started controllers: joint_state_controller, left_slider_position_controller, right_slider_position_controller
^C[car/rqt_publisher-7] killing on exit
[car/rqt_reconfigure-6] killing on exit
[car/controller_spawner-5] killing on exit
[gazebo_gui-3] killing on exit
[INFO] [1678778804.366496, 193.495000]: Shutting down spawner. Stopping and unloading controllers...
[gazebo-2] killing on exit
[INFO] [1678778804.367791, 193.496000]: Stopping all controllers...
my xacro File
No abnormalities in xacro files
~~~~~~~~
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
</plugin>
</gazebo>
</robot>
xacro plug-in application part
<?xml version="1.0" ?>
<robot name="car" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="joint_n" params="name type axis_xyz limit_e limit_l limit_u limit_v origin_rpy origin_xyz parent child">
<joint name="${name}" type="${type}">
<axis xyz="${axis_xyz}" />
<limit effort="${limit_e}" lower="${limit_l}" upper="${limit_u}" velocity="${limit_v}" />
<origin rpy="${origin_rpy}" xyz="${origin_xyz}" />
<parent link="${parent}" />
<child link="${child}" />
</joint>
<transmission name="trans_${name}">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${name}">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor_${name}">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
</xacro:macro>
My launch file
<?xml version="1.0" encoding="UTF-8"?>
<launch>
<!-- Spawn the world model -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="paused" value="false"/>
<arg name="use_sim_time" value="true"/>
<arg name="gui" value="true"/>
<arg name="headless" value="false"/>
<arg name="debug" value="false"/>
</include>
<group ns="/car">
<!-- Robot model -->
<param name="robot_description" command="$(find xacro)/xacro $(find car_description)/urdf/car_urdf.xacro"/>
<arg name="x" default="0"/>
<arg name="y" default="0"/>
<arg name="z" default="1"/>
<!-- Spawn the robot model -->
<node name="mybot_spawn" pkg="gazebo_ros" type="spawn_model" output="screen"
args="-urdf -param robot_description -model car -x $(arg x) -y $(arg y) -z $(arg z)"/>
<!-- Load controllers -->
<rosparam command="load" file="$(find car_description)/config/controller.yaml" />
<!-- Controllers -->
<node name="controller_spawner" pkg="controller_manager" type="spawner"
respawn="false" output="screen" ns="/car"
args="--namespace=/car/
joint_state_controller
joint03_position_controller
joint04_position_controller
joint05_position_controller
left_slider_position_controller
right_slider_position_controller
--timeout 60">
</node>
<!-- rqt -->
<node name="rqt_reconfigure" pkg="rqt_reconfigure" type="rqt_reconfigure" />
<node name="rqt_publisher" pkg="rqt_publisher" type="rqt_publisher" />
</group>
</launch>
controller_yaml File
# Publish all joint states -----------------------------------
joint_state_controller:
type: joint_state_controller/JointStateController
publish_rate: 50
# Position Controllers --------------------------------------
joint_03_position_controller:
type: effort_controllers/JointPositionController
joint: joint_03
pid: {p: 100.0, i: 0.01, d: 10.0}
joint_04_position_controller:
type: effort_controllers/JointPositionController
joint: joint_04
pid: {p: 100.0, i: 0.01, d: 10.0}
joint_05_position_controller:
type: effort_controllers/JointPositionController
joint: joint_05
pid: {p: 100.0, i: 0.01, d: 10.0}
left_slider_position_controller:
type: effort_controllers/JointPositionController
joint: left_slider
pid: {p: 100.0, i: 0.01, d: 10.0}
right_slider_position_controller:
type: effort_controllers/JointPositionController
joint: right_slider
pid: {p: 100.0, i: 0.01, d: 10.0}
As shown in the problem, only the connections of controllers 3, 4, and 5 fail.
The expected problem is that there is a fixed link between each joint, so is this a problem?
The two links are connected by a fixed axle link.
help me plz....
Asked by jaeeunkim on 2023-03-14 02:51:53 UTC
Answers
This problem was solved by modifying the package xml and Cmake file by adding rospy!
Asked by jaeeunkim on 2023-03-15 02:28:17 UTC
Comments