ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

matthewmarkey's profile - activity

2022-02-25 06:00:21 -0500 received badge  Famous Question (source)
2022-02-18 08:07:44 -0500 received badge  Famous Question (source)
2021-11-16 17:52:49 -0500 received badge  Famous Question (source)
2021-11-16 17:52:49 -0500 received badge  Notable Question (source)
2021-04-01 12:59:40 -0500 received badge  Notable Question (source)
2021-03-18 12:14:35 -0500 received badge  Student (source)
2021-02-18 03:43:39 -0500 received badge  Notable Question (source)
2021-01-18 10:14:14 -0500 received badge  Famous Question (source)
2020-11-30 08:25:13 -0500 received badge  Famous Question (source)
2020-11-30 08:09:39 -0500 received badge  Famous Question (source)
2020-11-30 08:09:39 -0500 received badge  Notable Question (source)
2020-11-15 13:12:46 -0500 received badge  Notable Question (source)
2020-11-15 13:12:46 -0500 received badge  Popular Question (source)
2020-10-06 08:26:41 -0500 received badge  Popular Question (source)
2020-10-06 08:26:41 -0500 received badge  Notable Question (source)
2020-07-15 11:50:55 -0500 received badge  Famous Question (source)
2020-07-10 20:15:29 -0500 received badge  Notable Question (source)
2020-07-09 02:45:20 -0500 received badge  Popular Question (source)
2020-06-04 15:41:41 -0500 marked best answer Sending Rviz motion planning to Gazebo

Kinetic Ubuntu 16.04

I have used the MSA to get all the appropriate files for Rviz motion planning simulation. It works perfectly with my custom 4DOF arm as well as will my custom move group python interface.

I now would like to take the next step and send these plans to gazebo. My first question is: is the demo_gazebo.launch that the MSA has written for me the correct launch file to preform motion planning in Gazebo? I have been attempting to figure out how the controllers work for several days now with no success.

After reading the material I have read, I am thoroughly confused on what controller <.yaml> file am supposed to utilize. My second question is, how am I supposed to use the appropriate launch files and .yaml files to get my model moving in gazebo? There are tutorials that use this type of file :

moveit_sim_hw_interface:
  joint_model_group: arm
  joint_model_group_pose: Home
# Settings for ros_control_boilerplate control loop
generic_hw_control_loop:
  loop_hz: 300
  cycle_time_error_threshold: 0.01
# Settings for ros_control hardware interface
hardware_interface:
  joints:
    - plat_joint
    - shoulder_joint
    - forearm_joint
    - wrist_joint
  sim_control_mode: 1  # 0: position, 1: velocity
# Publish all joint states
# Creates the /joint_states topic necessary in ROS
joint_state_controller:
  type: joint_state_controller/JointStateController
  publish_rate: 50
controller_list:
  []
arm:
  type: effort_controllers/JointPositionController
  joints:
    - plat_joint
    - shoulder_joint
    - forearm_joint
    - wrist_joint
  gains:
    plat_joint:
      p: 100
      d: 1
      i: 1
      i_clamp: 1
    shoulder_joint:
      p: 100
      d: 1
      i: 1
      i_clamp: 1
    forearm_joint:
      p: 100
      d: 1
      i: 1
      i_clamp: 1
    wrist_joint:
      p: 100
      d: 1
      i: 1
      i_clamp: 1

I have seen these files in this form:

controller_list:
  - name: arm
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - plat_joint
      - shoulder_joint
      - forearm_joint
      - wrist_joint

as well as this way:

arm:
  # Publish all joint states -----------------------------------
    joint_state_controller:
      type: joint_state_controller/JointStateController
      publish_rate: 50
    # Position Controllers ---------------------------------------
    joint1_position_controller:
      type: effort_controllers/JointPositionController
      joint: plat_joint
      pid: {p: 0, i: 0.0, d: 0}
    joint2_position_controller:
      type: effort_controllers/JointPositionController
      joint: shoulder_joint
      pid: {p: 0, i: 0.0, d: 0}
    joint3_position_controller:
      type: effort_controllers/JointPositionController
      joint: forearm_joint
      pid: {p: 0, i: 0.0, d: 0}
    joint4_position_controller:
      type: effort_controllers/JointPositionController
      joint: wrist_joint
      pid: {p: 0, i: 0.0, d: 0}

When I run roslaunch arm_moveit_config demo_gazebo.launch:

-rviz simulation and motion planning spawns and works correctly

-gazebo spawn my robot model *not in the same position as the rviz model, the gazebo model looks collapsed as if affected by gravity with no controllers enabled and the model is slowly moving away from the origin.

-when I try to plan and execute the motion plan in rviz, the following following error appears in the window that roslaunch arm_moveit_config demo_gazebo.launch was run in:

[ INFO] [1589045034.162329986, 56.619000000]: SimpleSetup: Path simplification took 0.005122 seconds and changed from 3 to 2 states
[ INFO] [1589045034.165551729, 56.621000000]: Returned 0 controllers in list
[ERROR] [1589045034.165727411, 56.622000000]: Unable to identify any set of controllers that can actuate the specified joints: [ forearm_joint plat_joint shoulder_joint wrist_joint ]
[ERROR] [1589045034.166596511, 56.622000000]: Known controllers and their joints:

[ERROR] [1589045034.167526138, 56.622000000]: Apparently trajectory initialization failed
[ INFO] [1589045034.176038782, 56.632000000 ...
(more)
2020-06-04 15:41:19 -0500 marked best answer [ERROR] []: Action client not connected, Moveit to Gazebo

Hello again friends,

This is almost an exact replica as question 319411, but as there is no answer there, I have included more information in an attempt to solve the issue.

The error is received when attempting to run the file t800_planning_execution.launch as seen below:

 <launch>

  <rosparam command ="load" file="$(find t800_moveit_config)/config/joint_names.yaml"/>

  <include file="$(find t800_moveit_config)/launch/planning_context.launch">
    <arg name="load_robot_description" value="true"/>
  </include>

  <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
    <param name="use_gui" value="false"/>
    <rosparam param="source_list">[/joint_states]</rosparam>
  </node>
<!-- Launch moveit -->
    <include file="$(find t800_moveit_config)/launch/move_group.launch">
        <arg name="publish_monitored_planning_scene" default="true"/>
    </include>

    <!-- Run Rviz and load the default config to see the state of the move_group node -->
    <include file="$(find t800_moveit_config)/launch/moveit_rviz.launch">
      <arg name="config" value="true"/>
    </include>

</launch>

When t800_planning_execution.launch is run, and before the system is settled, the rostopic list results can be seen below:

/attached_collision_object
/collision_object
/head_mount_kinect/depth_registered/points
/joint_states
/move_group/cancel
/move_group/display_contacts
/move_group/display_planned_path
/move_group/feedback
/move_group/filtered_cloud
/move_group/goal
/move_group/monitored_planning_scene
/move_group/ompl/parameter_descriptions
/move_group/ompl/parameter_updates
/move_group/planning_scene_monitor/parameter_descriptions
/move_group/planning_scene_monitor/parameter_updates
/move_group/result
/move_group/status
/planning_scene
/planning_scene_world
/recognized_object_array
/rosout
/rosout_agg
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update_full
/rviz_ubuntu_19788_1914554999/motionplanning_planning_scene_monitor/parameter_descriptions
/rviz_ubuntu_19788_1914554999/motionplanning_planning_scene_monitor/parameter_updates
/t800_controller/follow_joint_trajectory/cancel
/t800_controller/follow_joint_trajectory/feedback
/t800_controller/follow_joint_trajectory/goal
/t800_controller/follow_joint_trajectory/result
/t800_controller/follow_joint_trajectory/status
/tf
/tf_static
/trajectory_execution_event

And after:

/attached_collision_object
/collision_object
/execute_trajectory/cancel
/execute_trajectory/feedback
/execute_trajectory/goal
/execute_trajectory/result
/execute_trajectory/status
/head_mount_kinect/depth_registered/points
/joint_states
/move_group/cancel
/move_group/display_contacts
/move_group/display_planned_path
/move_group/feedback
/move_group/filtered_cloud
/move_group/goal
/move_group/monitored_planning_scene
/move_group/ompl/parameter_descriptions
/move_group/ompl/parameter_updates
/move_group/plan_execution/parameter_descriptions
/move_group/plan_execution/parameter_updates
/move_group/planning_scene_monitor/parameter_descriptions
/move_group/planning_scene_monitor/parameter_updates
/move_group/result
/move_group/sense_for_plan/parameter_descriptions
/move_group/sense_for_plan/parameter_updates
/move_group/status
/move_group/trajectory_execution/parameter_descriptions
/move_group/trajectory_execution/parameter_updates
/pickup/cancel
/pickup/feedback
/pickup/goal
/pickup/result
/pickup/status
/place/cancel
/place/feedback
/place/goal
/place/result
/place/status
/planning_scene
/planning_scene_world
/recognized_object_array
/rosout
/rosout_agg
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update
/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update_full
/rviz_ubuntu_19788_1914554999/motionplanning_planning_scene_monitor/parameter_descriptions
/rviz_ubuntu_19788_1914554999/motionplanning_planning_scene_monitor/parameter_updates
/tf
/tf_static
/trajectory_execution_event

Unfortunately I am still a pleb, so I cannot take a picture of my rqt_graph, but it is only a /joint_state_publisher node sending /joint_states to a /move_group node, and to itself.

2020-06-04 15:40:52 -0500 received badge  Popular Question (source)
2020-06-04 15:40:50 -0500 received badge  Popular Question (source)
2020-05-31 13:25:43 -0500 commented answer DIY robot arm general questions

Thanks! I sent you an email to both!

2020-05-31 09:48:21 -0500 commented answer Arduino code for custom robot arm

Hello @Evgenia, is there anyway you can show how you have put these values into an array? I am struggling to reproduce w

2020-05-31 08:52:25 -0500 commented answer DIY robot arm general questions

Hello @makemelive, when you say "Then I made a simple node that subscribes to joint_states"... Which part of your GitH

2020-05-29 06:32:20 -0500 commented answer rosserial RosServoControl arduino with two servos

This link is dead...

2020-05-29 05:24:03 -0500 edited question Connecting Action server, Moveit, and a 5 DOF robot arm

Connecting Action server, Moveit, and a 5 DOF robot arm I have modified, modeled, and physically built a 5DOF arm with t

2020-05-29 05:23:34 -0500 edited question Connecting Action server, Moveit, and a 5 DOF robot arm

Connecting Action server, Moveit, and a 5 DOF robot arm I have modified, modeled, and physically built a 5DOF arm with t

2020-05-29 05:22:03 -0500 asked a question Connecting Action server, Moveit, and a 5 DOF robot arm

Connecting Action server, Moveit, and a 5 DOF robot arm I have modified, modeled, and physically built a 5DOF arm with t

2020-05-24 05:35:50 -0500 commented answer What is the correct way to implement robot_state_publisher and joint_state_publisher?

Yes all of my joints are shown for rostopic echo -n1 /joint_states: homefolder@ubuntu:~$ rostopic echo -n1 /joint_state

2020-05-24 05:20:46 -0500 commented answer What is the correct way to implement robot_state_publisher and joint_state_publisher?

Yes all of my joints are shown for rostopic echo -n1 /joint_states: homefolder@ubuntu:~$ rostopic echo -n1 /joint_state

2020-05-24 05:18:01 -0500 commented answer What is the correct way to implement robot_state_publisher and joint_state_publisher?

Yes all of my joints are shown for rostopic echo -n1 /joint_states: homefolder@ubuntu:~$ rostopic echo -n1 /joint_state

2020-05-24 04:58:13 -0500 commented answer What is the correct way to implement robot_state_publisher and joint_state_publisher?

Ok, so I am trying to do my due diligence here, and look up your criteria individually. But I am not making the connect

2020-05-24 04:57:53 -0500 commented answer What is the correct way to implement robot_state_publisher and joint_state_publisher?

Ok, so I am trying to do my due diligence here, and look up your criteria individually. How would I make sure Gazebo is

2020-05-24 04:23:47 -0500 commented question switching between joint_state_publisher and custom made joint_val_publisher

Ok thank you for that prompt explanation. I understand what you are saying about using the JSP to control the robot.

2020-05-24 04:02:04 -0500 commented question switching between joint_state_publisher and custom made joint_val_publisher

Hello @anirban, I have the EXACT same issue. Did you ever come to solve this? I am currently reading up on the proper

2020-05-24 03:32:49 -0500 received badge  Notable Question (source)
2020-05-22 05:50:21 -0500 commented question What is the correct way to implement robot_state_publisher and joint_state_publisher?

I currently am just interested in simulating the model in gazebo (with hopes for the real hardware later). I am confuse

2020-05-22 05:49:51 -0500 received badge  Popular Question (source)
2020-05-22 05:47:14 -0500 commented question What is the correct way to implement robot_state_publisher and joint_state_publisher?

I currently am just interested in simulating the model in gazebo (with hopes for the real hardware later). I am confuse

2020-05-22 05:46:50 -0500 commented question What is the correct way to implement robot_state_publisher and joint_state_publisher?

I currently am just interested in simulating the model in gazebo (with hopes the the real hardware later). I am confuse

2020-05-22 05:46:34 -0500 commented question What is the correct way to implement robot_state_publisher and joint_state_publisher?

I currently am just interested in simulated the model in gazebo (with hopes the the real hardware later). I am confused

2020-05-22 05:13:14 -0500 commented question What is the correct way to implement robot_state_publisher and joint_state_publisher?

Just to clarify, are you saying that my rostopic info joint_states above can be considered typical of the system I am de

2020-05-22 04:53:00 -0500 commented question What is the correct way to implement robot_state_publisher and joint_state_publisher?

Ok, sure sorry about that. I have edited the original post, do you have any idea why this may be occurring @gvdhoorn?

2020-05-22 04:52:46 -0500 edited question What is the correct way to implement robot_state_publisher and joint_state_publisher?

What is the correct way to implement robot_state_publisher and joint_state_publisher? I have used both the joint_state_p

2020-05-21 14:19:29 -0500 commented answer joint state publisher and robot state publisher

Ok, I have done this. Do you have a minute to give some advice? @jayess 352941

2020-05-21 14:19:06 -0500 commented answer joint state publisher and robot state publisher

Ok, I have done this. Do you have a minute to give some advice? @jayess

2020-05-21 14:17:55 -0500 asked a question What is the correct way to implement robot_state_publisher and joint_state_publisher?

What is the correct way to implement robot_state_publisher and joint_state_publisher? I have used both the joint_state_p

2020-05-21 14:10:41 -0500 marked best answer Connecting working Rviz/Moveit setup with Sim custom arm

Hey friends,

I have a custom 4DOF arm I have whipped up and have been slogging through the tutorials but I feel like I am getting turned around easily now.

I am running Kinetic on Ubuntu 16.04 and have my Rviz and Moveit! setup working nicely. It can take plans and execute them as well as work quite nicely with my move group python interface. I have used the MSA to setup my Moveit files, and now would like to simulate my movements in gazebo and eventually tie in the custom arm.

My issue pops up when trying to run the files that were created by the MSA. Running demo_gazebo.launch from /arm_moveit_config yields this error:

[ERROR] [1588933219.280616367]: Failed to build tree: child link [base_link] of joint [dummy_joint] not found
[ERROR] [1588933219.518289973]: Failed to build tree: child link [base_link] of joint [dummy_joint] not found
[ERROR] [1588933219.520045115]: Unable to parse URDF from parameter '/robot_description'
[robot_state_publisher-7] process has died [pid 17994, exit code 255, cmd /opt/ros/kinetic/lib/robot_state_publisher/robot_state_publisher __name:=robot_state_publisher __log:=/home/homefolder/.ros/log/83c0a11e-9115-11ea-ad2a-001c429fcd02/robot_state_publisher-7.log].
log file: /home/homefolder/.ros/log/83c0a11e-9115-11ea-ad2a-001c429fcd02/robot_state_publisher-7*.log
[robot_state_publisher-7] restarting process
process[robot_state_publisher-7]: started with pid [18108]

Which continues to repeat until the program is killed. The Rviz and Gazebo windows pop up, but the model does not appear and they both show signs of error. After killing the program, there is also a warning that pops up before it dies:

Which I am unsure is a contributing factor to the first errors, or a product of them.

I have included my arm.xacro file below as well the launch file I am attempting to call.

Any suggestions or help is greatly appreciated.

m

arm.xacro

<?xml version="1.0"?>

<robot name="arm" xmlns:xacro="http://www.ros.org/wiki/xacro">

   <xacro:include filename="$(find version1_desc)/urdf/links_joints.xacro" />
   <xacro:include filename="$(find version1_desc)/urdf/arm.gazebo" />
   <create/>
   <gazebo>
     <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
       <robotNamespace>/arm</robotNamespace>
     </plugin>
   </gazebo>

<!--Dummy Link-->
    <link name="dummy_link"/>

<!-- Dummy End Effector -->
    <joint name="dummy_joint" type="fixed">
        <parent link="dummy_link"/>
        <child link="base_link"/>
      </joint>

<!--Base Link-->

    <m_link_mesh_c name = "base_link"
                     origin_rpy = "0 0 0" origin_xyz = "0 0 0" mass = "1.0"
                     meshfile = "package://version1_desc/meshes/base_link.dae"
                     meshscale  = "1 1 1"
                     ixx = "0.00153508333333" ixy = "0" ixz = "0" iyz = "0"
                     iyy = "0.00153508333333"
                     izz = "0.00245"
                     radius = "0.07" length= "0.061"/>

<!--Plat Joint-->

    <joint name="plat_joint" type="revolute">
        <parent link="base_link"/>
        <child link="plat_link"/>
        <origin rpy="0 0 0" xyz="0 0 0.0305"/>
        <limit lower="-1.5" upper="1.5" effort="1000" velocity="0.5"/>
        <axis xyz="0 0 1"/>
    </joint>

    <transmission name = "trans_plat">
        <type> transmission_interface/SimpleTransmission</type>
        <joint name= "plat_joint">
            <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
        </joint>
        <actuator name = "motor_plat">
            <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
            <mechanicalReduction>1</mechanicalReduction>
        </actuator>
    </transmission>

< ...
(more)
2020-05-21 04:59:12 -0500 commented answer joint state publisher and robot state publisher

I have used both the joint_state_publisher and robot_state_publisher in my demo_gazebo.launch file shown here... I am p