skywoodsz / qm_control

Quadruped manipulator controller using model predictive control and whole body control based on OCS2
228 stars 36 forks source link

Some questions #8

Closed zxfever closed 11 months ago

zxfever commented 11 months ago

Hello, I followed the installation to built the code, but l meet some problems and ask for advice.

1. The first is when i run mon launch qm_gazebo empty_world.launch in MPC-WBC The shape of the robot seems a bit strange, and it doesn't seem to be quite the same as what you show in the video tutorial you gave, as shown in the image below 4

and the terminal information is

         /spawn_urdf: [SpawnModelNode.run]: Loading model XML from ros parameter qm_description
         /spawn_urdf: [spawn_urdf_model_client]: Waiting for service /gazebo/spawn_urdf_model
             /gazebo: [GazeboRosApiPlugin::Load]: Finished loading Gazebo ROS API Plugin.
             /gazebo: [service::exists]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
         /gazebo_gui: [GazeboRosApiPlugin::Load]: Finished loading Gazebo ROS API Plugin.
         /gazebo_gui: [service::exists]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
             /gazebo: [service::waitForService]: waitForService: Service [/gazebo/set_physics_properties] is now available.
         /spawn_urdf: [spawn_urdf_model_client]: Calling service /gazebo/spawn_urdf_model
         /gazebo_gui: ../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
                   ~  .
         /spawn_urdf: [spawn_urdf_model_client]: Spawn status: SpawnModel: Successfully spawned entity
         /spawn_urdf: [set_model_configuration_client]: Waiting for service /gazebo/set_model_configuration
         /spawn_urdf: [set_model_configuration_client]: temporary hack to **fix** the -J joint position option (issue #93), sleeping for 1 second to avoid race condition
                   ~  .
             /gazebo: [GazeboRosApiPlugin::physicsReconfigureThread]: Physics dynamic reconfigure ready.
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_1]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_2]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_3]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_4]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_5]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_6]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosControlPlugin::Load]: Loading gazebo_ros_control plugin
             /gazebo: [GazeboRosControlPlugin::Load]: Starting gazebo_ros_control plugin in namespace: /
             /gazebo: [string gazebo_ros_control::GazeboRosControlPlugin::getURDF]: gazebo_ros_control plugin is waiting for model URDF in parameter [qm_description] on 
                   ~  the ROS param server.
             /gazebo: [GazeboRosControlPlugin::Load]: Loaded gazebo_ros_control.
         /spawn_urdf: [set_model_configuration_client]: Calling service /gazebo/set_model_configuration
         /spawn_urdf: [set_model_configuration_client]: Set model configuration status: SetModelConfiguration: success
         /spawn_urdf: /spawn_urdf exited with status 0

2.then when i run mon launch qm_controllers load_controller.launch,the controller doesn't seem to be loaded, compared with your tutorial video, and the terminal information is:

.......
roscore is already running.
Running as '/rosmon_1702295726284037689'
Warning: Could not create log directory '/home/wuba/.ros/log/ef19ab2c-980f-11ee-ad86-6d39d8f0ce27'

  /controller_loader: Loaded 'controllers/joint_state_controller'
  /controller_loader: Loaded 'controllers/qm_controller'
  /controller_loader: /controller_loader exited with status 0

3. then when i run rosrun rqt_controller_manager rqt_controller_manager, the manager is shown as Picture1

This manager is stuck and cannot be operated, but this may be caused by the above questions.

4. when i run roslaunch qm_controllers load_qm_target.launch, the error information is:

SUMMARY
========

PARAMETERS
 * /joy_node/autorepeat_rate: 20
 * /joy_node/deadzone: 1e-3
 * /joy_node/dev: /dev/input/js0
 * /rosdistro: noetic
 * /rosversion: 1.16.0
 * /teleop/ee/axis_mappings: [{'axis': 0, 'tar...
 * /teleop/ee/deadman_buttons: [5]
 * /teleop/ee/message_type: geometry_msgs/Twist
 * /teleop/ee/topic_name: ee_cmd_vel
 * /teleop/ee/type: topic
 * /teleop/walk/axis_mappings: [{'axis': 0, 'tar...
 * /teleop/walk/deadman_buttons: [4]
 * /teleop/walk/message_type: geometry_msgs/Twist
 * /teleop/walk/topic_name: cmd_vel
 * /teleop/walk/type: topic

NODES
  /
    joy_node (joy/joy_node)
    joy_teleop (joy_teleop/joy_teleop.py)
    legged_robot_gait_command (ocs2_legged_robot_ros/legged_robot_gait_command)
    qm_target_trajectories_publisher (qm_controllers/qm_target_trajectories_publisher)

ROS_MASTER_URI=http://localhost:11311

process[joy_node-1]: started with pid [11297]
ERROR: cannot launch node of type [joy_teleop/joy_teleop.py]: joy_teleop
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/wuba/qm_control_ws/src/ocs2/ocs2_sqp/blasfeo_catkin
ROS path [2]=/home/wuba/qm_control_ws/src/hpp-fcl
ROS path [3]=/home/wuba/qm_control_ws/src/ocs2/ocs2
ROS path [4]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpcnet/ocs2_mpcnet
ROS path [5]=/home/wuba/qm_control_ws/src/ocs2/ocs2_msgs
ROS path [6]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_pinocchio
ROS path [7]=/home/wuba/qm_control_ws/src/ocs2/ocs2_raisim/ocs2_raisim
ROS path [8]=/home/wuba/qm_control_ws/src/ocs2_robotic_assets
ROS path [9]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_robotic_examples
ROS path [10]=/home/wuba/qm_control_ws/src/ocs2/ocs2_thirdparty
ROS path [11]=/home/wuba/qm_control_ws/src/ocs2/ocs2_core
ROS path [12]=/home/wuba/qm_control_ws/src/ocs2/ocs2_frank_wolfe
ROS path [13]=/home/wuba/qm_control_ws/src/ocs2/ocs2_oc
ROS path [14]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpc
ROS path [15]=/home/wuba/qm_control_ws/src/ocs2/ocs2_test_tools/ocs2_qp_solver
ROS path [16]=/home/wuba/qm_control_ws/src/ocs2/ocs2_sqp/hpipm_catkin
ROS path [17]=/home/wuba/qm_control_ws/src/ocs2/ocs2_ddp
ROS path [18]=/home/wuba/qm_control_ws/src/ocs2/ocs2_ipm
ROS path [19]=/home/wuba/qm_control_ws/src/ocs2/ocs2_ocs2
ROS path [20]=/home/wuba/qm_control_ws/src/ocs2/ocs2_raisim/ocs2_raisim_core
ROS path [21]=/home/wuba/qm_control_ws/src/ocs2/ocs2_raisim/ocs2_raisim_ros
ROS path [22]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_tools
ROS path [23]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_cartpole
ROS path [24]=/home/wuba/qm_control_ws/src/ocs2/ocs2_perceptive
ROS path [25]=/home/wuba/qm_control_ws/src/ocs2/ocs2_python_interface
ROS path [26]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_double_integrator
ROS path [27]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_quadrotor
ROS path [28]=/home/wuba/qm_control_ws/src/ocs2/ocs2_ros_interfaces
ROS path [29]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_cartpole_ros
ROS path [30]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_double_integrator_ros
ROS path [31]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpcnet/ocs2_mpcnet_core
ROS path [32]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_quadrotor_ros
ROS path [33]=/home/wuba/qm_control_ws/src/ocs2/ocs2_slp
ROS path [34]=/home/wuba/qm_control_ws/src/ocs2/ocs2_sqp/ocs2_sqp
ROS path [35]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_ballbot
ROS path [36]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_ballbot_ros
ROS path [37]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpcnet/ocs2_ballbot_mpcnet
ROS path [38]=/home/wuba/qm_control_ws/src/pinocchio
ROS path [39]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_pinocchio_interface
ROS path [40]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_centroidal_model
ROS path [41]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_legged_robot
ROS path [42]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_legged_robot_ros
ROS path [43]=/home/wuba/qm_control_ws/src/ocs2/ocs2_raisim/ocs2_legged_robot_raisim
ROS path [44]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpcnet/ocs2_legged_robot_mpcnet
ROS path [45]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_self_collision
ROS path [46]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_mobile_manipulator
ROS path [47]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_self_collision_visualization
ROS path [48]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_mobile_manipulator_ros
ROS path [49]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_sphere_approximation
ROS path [50]=/home/wuba/qm_control_ws/src/qm_control/qm_common
ROS path [51]=/home/wuba/qm_control_ws/src/qm_control/qm_control
ROS path [52]=/home/wuba/qm_control_ws/src/qm_control/qm_description
ROS path [53]=/home/wuba/qm_control_ws/src/qm_control/qm_estimation
ROS path [54]=/home/wuba/qm_control_ws/src/qm_control/qm_gazebo
ROS path [55]=/home/wuba/qm_control_ws/src/qm_control/qm_interface
ROS path [56]=/home/wuba/qm_control_ws/src/qm_control/qm_msgs
ROS path [57]=/home/wuba/qm_control_ws/src/qm_control/qpoases_catkin
ROS path [58]=/home/wuba/qm_control_ws/src/qm_control/qm_wbc
ROS path [59]=/home/wuba/qm_control_ws/src/qm_control/qm_controllers
ROS path [60]=/home/wuba/qm_control_ws/src/raisimLib
ROS path [61]=/opt/ros/noetic/share
process[legged_robot_gait_command-3]: started with pid [11298]
process[qm_target_trajectories_publisher-4]: started with pid [11299]
Loading gait file: /home/wuba/qm_control_ws/src/qm_control/qm_controllers/config/gait.info
[ INFO] [1702296760.443255776]: legged_robot_mpc_mode_schedule node is setting up ...
 #### 'list': {stance, trot, standing_trot, flying_trot, pace, standing_pace, dynamic_walk, static_walk, amble, lindyhop, skipping, pawup} 
 #### 'stance.switchingTimes': {0, 0.5} 
 #### 'stance.modeSequence': {STANCE} 
 #### 'trot.switchingTimes': {0, 0.35, 0.7} 
 #### 'trot.modeSequence': {LF_RH, RF_LH} 
 #### 'standing_trot.switchingTimes': {0, 0.4, 0.5, 0.9, 1} 
 #### 'standing_trot.modeSequence': {LF_RH, STANCE, RF_LH, STANCE} 
 #### 'flying_trot.switchingTimes': {0, 0.25, 0.3, 0.55, 0.6} 
 #### 'flying_trot.modeSequence': {LF_RH, FLY, RF_LH, FLY} 
 #### 'pace.switchingTimes': {0, 0.28, 0.3, 0.58, 0.6} 
 #### 'pace.modeSequence': {LF_LH, FLY, RF_RH, FLY} 
 #### 'standing_pace.switchingTimes': {0, 0.3, 0.35, 0.65, 0.7} 
 #### 'standing_pace.modeSequence': {LF_LH, STANCE, RF_RH, STANCE} 
 #### 'dynamic_walk.switchingTimes': {0, 0.2, 0.3, 0.5, 0.7, 0.8, 1} 
 #### 'dynamic_walk.modeSequence': {LF_RF_RH, RF_RH, RF_LH_RH, LF_RF_LH, LF_LH, LF_LH_RH} 
 #### 'static_walk.switchingTimes': {0, 0.3, 0.6, 0.9, 1.2} 
 #### 'static_walk.modeSequence': {LF_RF_RH, RF_LH_RH, LF_RF_LH, LF_LH_RH} 
 #### 'amble.switchingTimes': {0, 0.15, 0.4, 0.55, 0.8} 
 #### 'amble.modeSequence': {RF_LH, LF_LH, LF_RH, RF_RH} 
 #### 'lindyhop.switchingTimes': {0, 0.35, 0.45, 0.8, 0.9, 1.125, 1.35, 1.7, 1.8, 2.025, 2.25, 2.6, 2.7[ INFO] [1702296760.448694043]: The TargetTrajectories is publishing on qm_mpc_target topic.
} 
 #### 'lindyhop.modeSequence': {LF_RH, STANCE, RF_LH, STANCE, LF_LH, RF_RH, LF_LH, STANCE, RF_RH, LF_LH, RF_RH, STANCE} 
 #### 'skipping.switchingTimes': {0, 0.27, 0.3, 0.57, 0.6, 0.87, 0.9, 1.17, 1.2} 
 #### 'skipping.modeSequence': {LF_RH, FLY, LF_RH, FLY, RF_LH, FLY, RF_LH, FLY} 
 #### 'pawup.switchingTimes': {0, 2} 
 #### 'pawup.modeSequence': {RF_LH_RH} 
[ INFO] [1702296760.449635426]: legged_robot_mpc_mode_schedule command node is ready.
Enter the desired gait, for the list of available gait enter "list": [ INFO] [1702296760.453666162]: legged_robot_mpc_mode_schedule node is setting up ...
[ INFO] [1702296760.455737871]: legged_robot_mpc_mode_schedule command node is ready.
[ WARN] [1702296760.620337142]: Couldn't set gain on joystick force feedback: Bad file descriptor

so the robot can't be controlled. My environment is :

ubuntu 20.04
ros1 noetic

can you give some suggestions for the above problems? thanks a lot!

zxfever commented 11 months ago

5. when i run mon launch qm_controllers rviz.launch, the rviz is 6 no marker point in the rviz

skywoodsz commented 11 months ago

Hello, I followed the installation to built the code, but l meet some problems and ask for advice.

1. The first is when i run mon launch qm_gazebo empty_world.launch in MPC-WBC The shape of the robot seems a bit strange, and it doesn't seem to be quite the same as what you show in the video tutorial you gave, as shown in the image below 4

and the terminal information is

         /spawn_urdf: [SpawnModelNode.run]: Loading model XML from ros parameter qm_description
         /spawn_urdf: [spawn_urdf_model_client]: Waiting for service /gazebo/spawn_urdf_model
             /gazebo: [GazeboRosApiPlugin::Load]: Finished loading Gazebo ROS API Plugin.
             /gazebo: [service::exists]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
         /gazebo_gui: [GazeboRosApiPlugin::Load]: Finished loading Gazebo ROS API Plugin.
         /gazebo_gui: [service::exists]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
             /gazebo: [service::waitForService]: waitForService: Service [/gazebo/set_physics_properties] is now available.
         /spawn_urdf: [spawn_urdf_model_client]: Calling service /gazebo/spawn_urdf_model
         /gazebo_gui: ../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
                   ~  .
         /spawn_urdf: [spawn_urdf_model_client]: Spawn status: SpawnModel: Successfully spawned entity
         /spawn_urdf: [set_model_configuration_client]: Waiting for service /gazebo/set_model_configuration
         /spawn_urdf: [set_model_configuration_client]: temporary hack to **fix** the -J joint position option (issue #93), sleeping for 1 second to avoid race condition
                   ~  .
             /gazebo: [GazeboRosApiPlugin::physicsReconfigureThread]: Physics dynamic reconfigure ready.
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_1]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_2]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_3]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_4]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_5]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosFT::Load]: ft_sensor plugin reporting wrench values to the frame [j2n6s300_link_6]
             /gazebo: [GazeboRosFT::Load]: imu plugin missing <gaussianNoise>, defaults to 0.0
             /gazebo: [GazeboRosControlPlugin::Load]: Loading gazebo_ros_control plugin
             /gazebo: [GazeboRosControlPlugin::Load]: Starting gazebo_ros_control plugin in namespace: /
             /gazebo: [string gazebo_ros_control::GazeboRosControlPlugin::getURDF]: gazebo_ros_control plugin is waiting for model URDF in parameter [qm_description] on 
                   ~  the ROS param server.
             /gazebo: [GazeboRosControlPlugin::Load]: Loaded gazebo_ros_control.
         /spawn_urdf: [set_model_configuration_client]: Calling service /gazebo/set_model_configuration
         /spawn_urdf: [set_model_configuration_client]: Set model configuration status: SetModelConfiguration: success
         /spawn_urdf: /spawn_urdf exited with status 0

2.then when i run mon launch qm_controllers load_controller.launch,the controller doesn't seem to be loaded, compared with your tutorial video, and the terminal information is:

.......
roscore is already running.
Running as '/rosmon_1702295726284037689'
Warning: Could not create log directory '/home/wuba/.ros/log/ef19ab2c-980f-11ee-ad86-6d39d8f0ce27'

  /controller_loader: Loaded 'controllers/joint_state_controller'
  /controller_loader: Loaded 'controllers/qm_controller'
  /controller_loader: /controller_loader exited with status 0

3. then when i run rosrun rqt_controller_manager rqt_controller_manager, the manager is shown as Picture1

This manager is stuck and cannot be operated, but this may be caused by the above questions.

4. when i run roslaunch qm_controllers load_qm_target.launch, the error information is:

SUMMARY
========

PARAMETERS
 * /joy_node/autorepeat_rate: 20
 * /joy_node/deadzone: 1e-3
 * /joy_node/dev: /dev/input/js0
 * /rosdistro: noetic
 * /rosversion: 1.16.0
 * /teleop/ee/axis_mappings: [{'axis': 0, 'tar...
 * /teleop/ee/deadman_buttons: [5]
 * /teleop/ee/message_type: geometry_msgs/Twist
 * /teleop/ee/topic_name: ee_cmd_vel
 * /teleop/ee/type: topic
 * /teleop/walk/axis_mappings: [{'axis': 0, 'tar...
 * /teleop/walk/deadman_buttons: [4]
 * /teleop/walk/message_type: geometry_msgs/Twist
 * /teleop/walk/topic_name: cmd_vel
 * /teleop/walk/type: topic

NODES
  /
    joy_node (joy/joy_node)
    joy_teleop (joy_teleop/joy_teleop.py)
    legged_robot_gait_command (ocs2_legged_robot_ros/legged_robot_gait_command)
    qm_target_trajectories_publisher (qm_controllers/qm_target_trajectories_publisher)

ROS_MASTER_URI=http://localhost:11311

process[joy_node-1]: started with pid [11297]
ERROR: cannot launch node of type [joy_teleop/joy_teleop.py]: joy_teleop
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/wuba/qm_control_ws/src/ocs2/ocs2_sqp/blasfeo_catkin
ROS path [2]=/home/wuba/qm_control_ws/src/hpp-fcl
ROS path [3]=/home/wuba/qm_control_ws/src/ocs2/ocs2
ROS path [4]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpcnet/ocs2_mpcnet
ROS path [5]=/home/wuba/qm_control_ws/src/ocs2/ocs2_msgs
ROS path [6]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_pinocchio
ROS path [7]=/home/wuba/qm_control_ws/src/ocs2/ocs2_raisim/ocs2_raisim
ROS path [8]=/home/wuba/qm_control_ws/src/ocs2_robotic_assets
ROS path [9]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_robotic_examples
ROS path [10]=/home/wuba/qm_control_ws/src/ocs2/ocs2_thirdparty
ROS path [11]=/home/wuba/qm_control_ws/src/ocs2/ocs2_core
ROS path [12]=/home/wuba/qm_control_ws/src/ocs2/ocs2_frank_wolfe
ROS path [13]=/home/wuba/qm_control_ws/src/ocs2/ocs2_oc
ROS path [14]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpc
ROS path [15]=/home/wuba/qm_control_ws/src/ocs2/ocs2_test_tools/ocs2_qp_solver
ROS path [16]=/home/wuba/qm_control_ws/src/ocs2/ocs2_sqp/hpipm_catkin
ROS path [17]=/home/wuba/qm_control_ws/src/ocs2/ocs2_ddp
ROS path [18]=/home/wuba/qm_control_ws/src/ocs2/ocs2_ipm
ROS path [19]=/home/wuba/qm_control_ws/src/ocs2/ocs2_ocs2
ROS path [20]=/home/wuba/qm_control_ws/src/ocs2/ocs2_raisim/ocs2_raisim_core
ROS path [21]=/home/wuba/qm_control_ws/src/ocs2/ocs2_raisim/ocs2_raisim_ros
ROS path [22]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_tools
ROS path [23]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_cartpole
ROS path [24]=/home/wuba/qm_control_ws/src/ocs2/ocs2_perceptive
ROS path [25]=/home/wuba/qm_control_ws/src/ocs2/ocs2_python_interface
ROS path [26]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_double_integrator
ROS path [27]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_quadrotor
ROS path [28]=/home/wuba/qm_control_ws/src/ocs2/ocs2_ros_interfaces
ROS path [29]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_cartpole_ros
ROS path [30]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_double_integrator_ros
ROS path [31]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpcnet/ocs2_mpcnet_core
ROS path [32]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_quadrotor_ros
ROS path [33]=/home/wuba/qm_control_ws/src/ocs2/ocs2_slp
ROS path [34]=/home/wuba/qm_control_ws/src/ocs2/ocs2_sqp/ocs2_sqp
ROS path [35]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_ballbot
ROS path [36]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_ballbot_ros
ROS path [37]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpcnet/ocs2_ballbot_mpcnet
ROS path [38]=/home/wuba/qm_control_ws/src/pinocchio
ROS path [39]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_pinocchio_interface
ROS path [40]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_centroidal_model
ROS path [41]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_legged_robot
ROS path [42]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_legged_robot_ros
ROS path [43]=/home/wuba/qm_control_ws/src/ocs2/ocs2_raisim/ocs2_legged_robot_raisim
ROS path [44]=/home/wuba/qm_control_ws/src/ocs2/ocs2_mpcnet/ocs2_legged_robot_mpcnet
ROS path [45]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_self_collision
ROS path [46]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_mobile_manipulator
ROS path [47]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_self_collision_visualization
ROS path [48]=/home/wuba/qm_control_ws/src/ocs2/ocs2_robotic_examples/ocs2_mobile_manipulator_ros
ROS path [49]=/home/wuba/qm_control_ws/src/ocs2/ocs2_pinocchio/ocs2_sphere_approximation
ROS path [50]=/home/wuba/qm_control_ws/src/qm_control/qm_common
ROS path [51]=/home/wuba/qm_control_ws/src/qm_control/qm_control
ROS path [52]=/home/wuba/qm_control_ws/src/qm_control/qm_description
ROS path [53]=/home/wuba/qm_control_ws/src/qm_control/qm_estimation
ROS path [54]=/home/wuba/qm_control_ws/src/qm_control/qm_gazebo
ROS path [55]=/home/wuba/qm_control_ws/src/qm_control/qm_interface
ROS path [56]=/home/wuba/qm_control_ws/src/qm_control/qm_msgs
ROS path [57]=/home/wuba/qm_control_ws/src/qm_control/qpoases_catkin
ROS path [58]=/home/wuba/qm_control_ws/src/qm_control/qm_wbc
ROS path [59]=/home/wuba/qm_control_ws/src/qm_control/qm_controllers
ROS path [60]=/home/wuba/qm_control_ws/src/raisimLib
ROS path [61]=/opt/ros/noetic/share
process[legged_robot_gait_command-3]: started with pid [11298]
process[qm_target_trajectories_publisher-4]: started with pid [11299]
Loading gait file: /home/wuba/qm_control_ws/src/qm_control/qm_controllers/config/gait.info
[ INFO] [1702296760.443255776]: legged_robot_mpc_mode_schedule node is setting up ...
 #### 'list': {stance, trot, standing_trot, flying_trot, pace, standing_pace, dynamic_walk, static_walk, amble, lindyhop, skipping, pawup} 
 #### 'stance.switchingTimes': {0, 0.5} 
 #### 'stance.modeSequence': {STANCE} 
 #### 'trot.switchingTimes': {0, 0.35, 0.7} 
 #### 'trot.modeSequence': {LF_RH, RF_LH} 
 #### 'standing_trot.switchingTimes': {0, 0.4, 0.5, 0.9, 1} 
 #### 'standing_trot.modeSequence': {LF_RH, STANCE, RF_LH, STANCE} 
 #### 'flying_trot.switchingTimes': {0, 0.25, 0.3, 0.55, 0.6} 
 #### 'flying_trot.modeSequence': {LF_RH, FLY, RF_LH, FLY} 
 #### 'pace.switchingTimes': {0, 0.28, 0.3, 0.58, 0.6} 
 #### 'pace.modeSequence': {LF_LH, FLY, RF_RH, FLY} 
 #### 'standing_pace.switchingTimes': {0, 0.3, 0.35, 0.65, 0.7} 
 #### 'standing_pace.modeSequence': {LF_LH, STANCE, RF_RH, STANCE} 
 #### 'dynamic_walk.switchingTimes': {0, 0.2, 0.3, 0.5, 0.7, 0.8, 1} 
 #### 'dynamic_walk.modeSequence': {LF_RF_RH, RF_RH, RF_LH_RH, LF_RF_LH, LF_LH, LF_LH_RH} 
 #### 'static_walk.switchingTimes': {0, 0.3, 0.6, 0.9, 1.2} 
 #### 'static_walk.modeSequence': {LF_RF_RH, RF_LH_RH, LF_RF_LH, LF_LH_RH} 
 #### 'amble.switchingTimes': {0, 0.15, 0.4, 0.55, 0.8} 
 #### 'amble.modeSequence': {RF_LH, LF_LH, LF_RH, RF_RH} 
 #### 'lindyhop.switchingTimes': {0, 0.35, 0.45, 0.8, 0.9, 1.125, 1.35, 1.7, 1.8, 2.025, 2.25, 2.6, 2.7[ INFO] [1702296760.448694043]: The TargetTrajectories is publishing on qm_mpc_target topic.
} 
 #### 'lindyhop.modeSequence': {LF_RH, STANCE, RF_LH, STANCE, LF_LH, RF_RH, LF_LH, STANCE, RF_RH, LF_LH, RF_RH, STANCE} 
 #### 'skipping.switchingTimes': {0, 0.27, 0.3, 0.57, 0.6, 0.87, 0.9, 1.17, 1.2} 
 #### 'skipping.modeSequence': {LF_RH, FLY, LF_RH, FLY, RF_LH, FLY, RF_LH, FLY} 
 #### 'pawup.switchingTimes': {0, 2} 
 #### 'pawup.modeSequence': {RF_LH_RH} 
[ INFO] [1702296760.449635426]: legged_robot_mpc_mode_schedule command node is ready.
Enter the desired gait, for the list of available gait enter "list": [ INFO] [1702296760.453666162]: legged_robot_mpc_mode_schedule node is setting up ...
[ INFO] [1702296760.455737871]: legged_robot_mpc_mode_schedule command node is ready.
[ WARN] [1702296760.620337142]: Couldn't set gain on joystick force feedback: Bad file descriptor

so the robot can't be controlled. My environment is :

ubuntu 20.04
ros1 noetic

can you give some suggestions for the above problems? thanks a lot!

Thanks for your follow!

  1. You should press the start button to start the gazebo simulation as shown in the image below. 289527171-1f0c6bde-11d3-4da0-bdf7-9449a2e0e5eb
  2. The controller is successfully built. There is nothing to worry about.
  3. If you normally start the gazebo simulation in step 1, you can operate the manager without problems.
  4. You need to install the joy_teleop using the command sudo apt-get install ros-neotic-joy-teleop.
  5. If you normally operate the gazebo simulation in step 1 and install the joy_teleop in step 4, you can get the same result as my tutor video. Good luck!
zxfever commented 11 months ago

@skywoodsz Sorry for the late reply. Thank you very much for your help. I would like to read if the corresponding literature has been published.

nys601350111 commented 11 months ago

编译时,提示缺失的头文件 ocs2_ipm/IpmSettings.h,ocs2_ipm/在哪里获取?感谢呀

nys601350111 commented 11 months ago

Errors << qm_interface:make /home/ocs2_ws/logs/qm_interface/build.make.006.log In file included from /home/k1314/ocs2_ws/src/qm_control/qm_interface/src/QMInterface.cpp:9: /home/k1314/ocs2_ws/src/qm_control/qm_interface/include/qm_interface/QMInterface.h:13:10: fatal error: ocs2_ipm/IpmSettings.h: 没有那个文件或目录 13 | #include <ocs2_ipm/IpmSettings.h> | ^~~~~~~~ compilation terminated. make[2]: [CMakeFiles/qm_interface.dir/build.make:63:CMakeFiles/qm_interface.dir/src/QMInterface.cpp.o] 错误 1 make[1]: [CMakeFiles/Makefile2:762:CMakeFiles/qm_interface.dir/all] 错误 2 make: *** [Makefile:141:all] 错误 2 cd /home/k1314/ocs2_ws/build/qm_interface; catkin build --get-env qm_interface | catkin env -si /usr/bin/make --jobserver-auth=3,4; cd -

.............................................................................. Failed << qm_interface:make [ Exited with code 2 ]
Failed <<< qm_interface [ 4.5 seconds ]
Abandoned <<< qm_control [ Unrelated job failed ] Abandoned <<< qm_controllers [ Unrelated job failed ]


Errors << qm_wbc:make /home/ocs2_ws/logs/qm_wbc/build.make.006.log
/home/k1314/ocs2_ws/src/qm_control/qm_wbc/src/WbcBase.cpp: In constructor ‘qm::WbcBase::WbcBase(const PinocchioInterface&, ocs2::CentroidalModelInfo, const ocs2::PinocchioEndEffectorKinematics&, const ocs2::PinocchioEndEffectorKinematics&, ros::NodeHandle&)’: /home/k1314/ocs2_ws/src/qm_control/qm_wbc/src/WbcBase.cpp:68:84: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’ 68 | dynamic_reconfigure::Server::CallbackType cb = [this](auto&& PH1, auto&& PH2) { | ^~~~ compilation terminated due to -Wfatal-errors. make[2]: [CMakeFiles/qm_wbc.dir/build.make:76:CMakeFiles/qm_wbc.dir/src/WbcBase.cpp.o] 错误 1 make[2]: 正在等待未完成的任务.... make[1]: [CMakeFiles/Makefile2:713:CMakeFiles/qm_wbc.dir/all] 错误 2 make: [Makefile:141:all] 错误 2

skywoodsz commented 11 months ago

@nys601350111 It seems you used the older version of OCS2. You need to use the latest version.