Ask Your Question

BvOBart's profile - activity

2019-08-27 03:14:38 -0500 received badge  Nice Question (source)
2019-08-27 03:14:30 -0500 received badge  Favorite Question (source)
2018-12-12 07:36:06 -0500 received badge  Good Answer (source)
2018-12-12 07:36:06 -0500 received badge  Enlightened (source)
2018-07-23 05:21:01 -0500 received badge  Nice Answer (source)
2018-01-12 09:01:03 -0500 received badge  Student (source)
2018-01-10 20:52:44 -0500 received badge  Famous Question (source)
2018-01-10 10:47:29 -0500 received badge  Self-Learner (source)
2018-01-10 10:47:29 -0500 received badge  Teacher (source)
2018-01-10 10:46:15 -0500 commented answer MoveIt: how to actuate individual joints that do not form a chain?

Yeah, I figured that, hahaha :) I've updated my answer and marked it as correct. Thanks again!

2018-01-10 10:30:28 -0500 marked best answer MoveIt: how to actuate individual joints that do not form a chain?

Hi,

I'm working on a project at my university in which we are designing and simulating an industrial robot system. We have created a URDF file that contains the robot system, as well as the platform it sits on. There are also two movable caterpillar tracks on this platform, which we need to be able to control programmatically. We've created a MoveIt configuration for the robotic arm that the robot system consists of, which works properly.

To give you a bit of an image (literally) of how the system and the tracks look like: overview

Question:

My problem arises when I want to control the two movable tracks, which each consist of just a single joint. The relevant parts of the robot's URDF are included below; for brevity, I left out the rest. I want to be able to control the individual joints track2_joint and track3_joint from Python, but I have not yet been able to find out how...

My attempts

I've tried to make a planning group with just track2_joint in it without selecting a kinematics solver, hoping that I would be able to use group.set_joint_value_target in order to get easy control over the track. The MoveIt Setup Assistant allowed me to do so, so I tried it out in some code, here's the relevant snippet:

robot = moveit_commander.RobotCommander()
joint = robot.get_joint('track2_joint')
moveGroup = moveit_commander.MoveGroupCommander('Track2')
currentJointValues = moveGroup.get_current_joint_values()
print("Min bound: " + str(joint.min_bound()))
print("Value: " + str(currentJointValues))
print("Max bound: " + str(joint.max_bound()))

currentJointValues[0] += pi * 1/3
moveGroup.set_joint_value_target(currentJointValues)
moveGroup.plan()

This seemed to work fine. The print statements printed the correct values and plan caused the correct rotation to be shown in RViz. But when I replaced plan() with go(), I got the following message in the console in which I launched the test:

[ INFO] [1515523071.981027951]: ABORTED: Solution found but controller failed during execution

The following appeared in the console in which I launched the planning execution launch file:

[ INFO] [1515523071.563018404]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline.
[ INFO] [1515523071.563289980]: Planning attempt 1 of at most 1
Debug:   Starting goal sampling thread
Debug:   Waiting for space information to be set up before the sampling thread can begin computation...
[ INFO] [1515523071.564900737]: Planner configuration 'Track2' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
Debug:   RRTConnect: Planner range detected to be 1.256640
Info:    RRTConnect: Starting planning with 1 states already in datastructure
Debug:   RRTConnect: Waiting for goal region samples ...
Debug:   Beginning sampling thread computation
Debug:   Stopped goal sampling thread after 10 sampling attempts
Debug:   RRTConnect: Waited 0.010084 seconds for the first goal sample.
Info:    RRTConnect: Created 5 states (2 start + 3 goal)
Info:    Solution found in 0.012115 seconds
Info:    SimpleSetup: Path simplification took 0.001880 seconds and changed from 4 to 17 states
[ERROR] [1515523071.662697635]: Joint trajectory action failing on invalid joints
[ WARN] [1515523071.663024659]: Controller  failed ...
(more)
2018-01-10 10:30:28 -0500 received badge  Scholar (source)
2018-01-10 10:30:19 -0500 edited answer MoveIt: how to actuate individual joints that do not form a chain?

With the help of @gvdhoorn I have been able to fix the problem. Here's how.. First of all, I noticed that the joint_tra

2018-01-10 09:56:51 -0500 commented answer MoveIt: how to actuate individual joints that do not form a chain?

I was literally just reading about the source_list parameter for joint_state_publisher, but your example made its usage

2018-01-10 08:58:50 -0500 answered a question MoveIt: how to actuate individual joints that do not form a chain?

Right, so I have partially been able to fix the problem. I noticed that the joint_trajectory_action was launched by the

2018-01-10 07:55:22 -0500 received badge  Notable Question (source)
2018-01-10 06:50:05 -0500 received badge  Popular Question (source)
2018-01-10 06:19:41 -0500 commented question MoveIt: how to actuate individual joints that do not form a chain?

I had set up the rest of my MoveIt configuration based on the ROS-I tutorial. They did not use a name in the controller

2018-01-10 06:13:16 -0500 commented question MoveIt: how to actuate individual joints that do not form a chain?

Alright, I'll add the controllers. However, when I give them a name, e.g. arm1, then MoveIt will look for /arm1/joint_tr

2018-01-09 16:45:47 -0500 commented question MoveIt: how to actuate individual joints that do not form a chain?

As for the mass, it is indeed one heck of a large construction. The platform that base_link represents is the top part o

2018-01-09 16:36:41 -0500 commented question MoveIt: how to actuate individual joints that do not form a chain?

As you can see, it currently contains only one controller. However, if I give it a name, then the robotic arm no longer

2018-01-09 16:31:26 -0500 commented question MoveIt: how to actuate individual joints that do not form a chain?

@gvdhoorn Thank you for your comment and for the karma, I've attached the image directly to my question and I've also in

2018-01-09 16:27:45 -0500 edited question MoveIt: how to actuate individual joints that do not form a chain?

MoveIt: how to actuate individual joints that do not form a chain? Hi, I'm working on a project at my university in whi

2018-01-09 16:27:45 -0500 received badge  Editor (source)
2018-01-09 13:53:06 -0500 edited question MoveIt: how to actuate individual joints that do not form a chain?

MoveIt: how to actuate individual joints that do not form a chain? Hi, I'm working on a project at my university in whi

2018-01-09 13:46:26 -0500 asked a question MoveIt: how to actuate individual joints that do not form a chain?

MoveIt: how to actuate individual joints that do not form a chain? Hi, I'm working on a project at my university in whi