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

znbrito's profile - activity

2021-06-10 11:29:44 -0500 received badge  Good Question (source)
2020-01-22 15:50:20 -0500 received badge  Nice Answer (source)
2019-09-13 16:57:03 -0500 marked best answer Manipulator initial position altered after changing from a position_controllers/JointTrajectoryController to a effort_controllers/JointTrajectoryController

Hi, I am currently on Ubuntu 16.04 LTS and ROS Kinetic, working on the integration of a Husky and a Robotis Manipulator-H in the Gazebo simulator. Right now I have the manipulator working with MoveIt! while standing fixed on top of a Husky robot. First of all I was having a problem which was the fact that when I moved the Husky robot (for example, with the teleop keyboard), his dynamics were not correct, i. .e, the front wheels would lift up when I moved him forward and the back wheels would also lift up If I moved him backwards. I researched about the possible reasons why this was happening and via this link:

http://answers.gazebosim.org/question...

I found out that the fact that I was using a position_controllers/JointTrajectoryController to control the manipulator (via MoveIt!) was afecting my robot's dynamics. The solution was changing this controller to a effort_controllers/JointTrajectoryController, which made it possible to move my Husky robot around normally. The only problem is that now, the initial position of the manipulator is a bit odd. The following images show the normal position of the manipulator (when using a position_controllers/JointTrajectoryController) and the position of the manipulator when using a effort_controllers/JointTrajectoryController:

Normal position: image description

Altered position: image description

Besides this initial position problem, path planning has equally good (or even perfect) results when using both controller types. Has this weird initial position any side effect in my system/manipulator/simulation?

I posted this question in Github: https://github.com/znbrito/Brito-thes... And in Gazebo answers: http://answers.gazebosim.org/question...

Because I am not sure where exactly I should post my problem but from the feedback that I got till know, I think this has something to do with the PID controllers that I am using right now. What I did was simply using the PID parameters that came from the original package from Robotis's Github from other controller types:

robotis_manipulator_h:
  # Publish all joint states -----------------------------------
  joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 125  

  # Position Controllers ---------------------------------------
  joint1_position:
    type: effort_controllers/JointPositionController
    joint: joint1
    pid: {p: 9000.0, i: 0.1, d: 500.0}

  joint2_position:
    type: effort_controllers/JointPositionController
    joint: joint2
    pid: {p: 9000.0, i: 0.1, d: 500.0}

  joint3_position:
    type: effort_controllers/JointPositionController
    joint: joint3
    pid: {p: 6000.0, i: 0.1, d: 400.0}

  joint4_position:
    type: effort_controllers/JointPositionController
    joint: joint4
    pid: {p: 6000.0, i: 0.1, d: 400.0}

  joint5_position:
    type: effort_controllers/JointPositionController
    joint: joint5
    pid: {p: 6000.0, i: 0.1, d: 400.0}

  joint6_position:
    type: effort_controllers/JointPositionController
    joint: joint6
    pid: {p: 6000.0, i: 0.1, d: 400.0}

And I added the controller for MoveIt! myself with these PID parameters:

robotis_manipulator_h:
  # Publish all joint states -----------------------------------
  joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 125  

  # Controllers for MoveIt! ------------------------------------
  main_group_controller:
    type: effort_controllers/JointTrajectoryController
    joints:
      - joint1
      - joint2
      - joint3
      - joint4
      - joint5
      - joint6
    gains: 
      joint1: {p: 9000.0, i: 0.1, d: 500.0}
      joint2: {p: 9000.0, i: 0.1, d: 500.0}
      joint3: {p: 6000.0, i: 0.1, d ...
(more)
2019-09-13 16:56:42 -0500 marked best answer Problem with AllowedCollisionMatrix and octomap in MoveIt!

Hi,

I am on Ubuntu 16.04 LTS and ROS Kinetic. I am now working with the manipulator Robotis Manipulator-H standing on top of a Husky robot and I intend to do path planning with the manipulator using MoveIt! so that I can take in account the restrictions from my environment. I am just simulating my system in Gazebo. Right now I am using the laser Hokuyo UST-10LX integrated with the "occupancy_map_monitor/PointCloudOctoMapUpdater" MoveIt! plugin to map my environment and make MoveIt! aware of it in order to correctly perform path planning to my desired goals poses. In the following image you can see the octomap of the tree that I am mapping right now, after I move Husky in order to map her (the laser is the grey thing, right now I don't really care how it looks):

mappedTree.png

My goal points are already known and some of them are inside the obstacles that I identify (map) with the laser. In order to plan to those poses I am currently updating my AllowedCollisionMatrix with a small cube centered (with millimiter dimentions) in my goal position, making all collisions with that cube possible, which automatically updates my octomap and opens a small gap in it, making it possible for MoveIt! to plan to the goal position because the manipulator has now an open path to the goal pose. In this 2 following images you can see the example that I tried. I set my goal point to be inside the tree's limits (reachable for the manipulator), so naturally the manipulator can't reach it:

goalPointNotR.png

And after I update my AllowedCollisionMatrix, the octomap is automatically updated and it looks like this (the small cube can't be seen because it is really small, smaller than the axes):

goalPointReachable.png

Which means that, in fact, the octomap is being correctly updated and after that I can perform the path planned to that point without any problems, everything is fine till here. The problem is that a few seconds after the "hole" open in the octomap, I get the following error messages:

[ERROR] [1522945517.882926418, 54.358000000]: Internal error. Shape filter handle 22 not found [ERROR] [1522945518.668399924, 54.874000000]: Internal error. Shape filter handle 22 not found

I searched about them and I didn't find anything except the fact that they have something to do with the octomap generated by MoveIt!. Is this a bug that's ocorring because the octomap was "updated" because of the AllowedCollisionMatrix? If you think this is relevant, I can send you the code where I update the collision matrix. If there is a better way to do what I did, I would like you to tell me please.

I think it should also be interesting (and profitable, in my case), if I could regulate the size of the box (hole) that eliminates points from the octomap), because if the box is hole in the octomap is to big, it can eliminate objects that will actually interfere ... (more)

2019-09-13 16:52:22 -0500 marked best answer Connect MoveIt! with real robot (hardware)

Hi,

I am on Ubuntu 16.04 LTS and ROS Kinetic. I am trying to control a Robotis Manipulator-H with MoveIt! and I have been able to do it in Gazebo (using this links: https://github.com/AS4SR/general_info... and https://github.com/eYSIP-2017/eYSIP-2... ), so now I am trying to do that in the real robot. I have searched a lot on how to do this but I can't really find anything... I have tried the package "dynamixel_controllers" and the tutorial in this link:

https://github.com/eYSIP-2017/eYSIP-2...

To connect the manipulator with MoveIt! but I wasn't able to do it since this tutorials uses the package "dynamixel_controllers" and it only works with Dynamixel motors and not Dynamixel PRO motors (which are the ones used bu the Manipulator-H). I also found out that I need an action server and a client server (or something like that) but since I am a newbie, I don't know how this properly works... can you guys give me any advices on how to connect the manipulator? I think this topic is a lot under documented...

Other packages that I tried but with no success: "dynamixel_workcbench" and "open_manipulator".

Thanks!, José Brito

2019-09-13 14:50:36 -0500 received badge  Famous Question (source)
2019-07-27 04:34:00 -0500 received badge  Favorite Question (source)
2019-04-15 20:21:55 -0500 received badge  Famous Question (source)
2019-03-25 04:37:04 -0500 received badge  Notable Question (source)
2019-02-13 04:56:15 -0500 received badge  Famous Question (source)
2018-12-17 04:49:59 -0500 received badge  Famous Question (source)
2018-12-14 04:48:33 -0500 received badge  Famous Question (source)
2018-12-06 08:28:49 -0500 received badge  Popular Question (source)
2018-09-18 05:00:41 -0500 received badge  Famous Question (source)
2018-08-17 04:51:02 -0500 received badge  Famous Question (source)
2018-07-08 20:50:58 -0500 received badge  Notable Question (source)
2018-06-28 21:00:02 -0500 received badge  Famous Question (source)
2018-06-25 05:32:29 -0500 commented answer MoveIt! - How to execute trajectories backwards

Thanks a lot @gvdhoorn! I found a possible way to do it in this link: https://groups.google.com/forum/#!topic/moveit-use

2018-06-25 05:31:24 -0500 marked best answer MoveIt! - How to execute trajectories backwards

Hello guys,

I was wondering if it is possible to execute a trajectory backwards in MoveIt!. So, for example, let's say that I have a manipulator and I want to go from point 1 to point 2 and MoveIt! calculates a plan for a trajectory with 5 waypoints. When the trajectory is executed, the manipulator goes to the first waypoint, then to the second, and so on until it reaches the 5th waypoint.

If I want to go from point 2 to point 1 right after I reach point 2, I shouldn't necessarily have to calculate a new trajectory again, right? I should simply have use the trajectory calculated from point1 to point 2 and go from waypoint 5 to waypoint 4 till I reach waypoint 1, right? So, is there any way to reuse the first trajectory calculated in order to follow its path backwards?

Thanks in advance!

Best regards, José Brito

2018-06-25 05:00:23 -0500 asked a question MoveIt! - How to execute trajectories backwards

MoveIt! - How to execute trajectories backwards Hello guys, I was wondering if it is possible to execute a trajectory b

2018-06-18 05:06:18 -0500 commented question Connect MoveIt! with real robot (hardware)

https://github.com/ROBOTIS-GIT/dynamixel-workbench/issues/141#issuecomment-383752996. Best of lucks! José Brito

2018-06-18 05:06:08 -0500 commented question Connect MoveIt! with real robot (hardware)

Still I don't know how you would solve this problem, if you'd ever face it... one more thing, with this program you can

2018-06-18 05:01:11 -0500 commented question Connect MoveIt! with real robot (hardware)

I had a problem still. Open manipulator has 4 joints, while the Manipulator-H has 6. The 5th and 6th joints were being r

2018-06-18 04:58:37 -0500 commented question Connect MoveIt! with real robot (hardware)

To use, simply connect the manipulator to the PC via USB and type the following: - FIRST TERMINAL: $ sudo chmod a+rw

2018-06-18 04:57:24 -0500 commented question Connect MoveIt! with real robot (hardware)

I simply ignored them since I didn't need to used them! :)

2018-06-18 04:55:53 -0500 commented question Connect MoveIt! with real robot (hardware)

All in kinetic devel: - open_manipulator_description - open_manipulator_dynamixel_ctrl - open_manipulator_moveit - o

2018-06-18 04:55:11 -0500 commented question Connect MoveIt! with real robot (hardware)

Hello @idrobot and @Ravi_Kanth, yes I kinda solved the problem by adapting myself the packages from the implemented Robo

2018-06-14 06:50:27 -0500 received badge  Notable Question (source)
2018-06-11 10:47:29 -0500 received badge  Notable Question (source)
2018-06-07 02:29:00 -0500 received badge  Famous Question (source)
2018-06-01 01:09:34 -0500 marked best answer Creating COLLADA (.dae) files for visual tag in Gazebo/ROS

Hi,

I am on Ubuntu 16.04 LTS and ROS Kinetic right now and trying to import a model that I designed in SolidWorks (a simple tree made with sticks, its in a .sldprt file) into my Gazebo simulation. I know that URDF files only support .stl and collada (.dae) files and that I should use .stl files for the collision tag and .dae for the visual tag. I can properly export my model using the SolidWorks2URDF plugin ( http://wiki.ros.org/sw_urdf_exporter ) and I get a package with an URDF file which includes an .stl file for both visual and collision tags, because the exporter doesn't export any collada (.dae) files.

I tried to use the SimLab Soft Collada Exporter for SolidWorks to export my model into to a collada file but when I tried to use it in the simulation, the only thing that appears is a white cube (???) and I don't know why because if I open the file in FreeCad, I can see my tree with no problems, except the fact that it is colourless and I don't know why... first my model had a wood appearence but then I changed it to a brown color, just to check that the appearance had nothing to do with this, but I still see the white cube as my visual object while my collision object (orange) stays correct:

image description

I have also tried to convert my model file from .sldprt to .stp file (format 214 so that it also has colors but not appearances) and follow the steps in here http://gazebosim.org/tutorials?tut=gu... to convert my file into a collada one but everything remains the same.

Can somebody help me on how to do this? Thanks in advance!

Best regards, José Brito

2018-06-01 01:09:34 -0500 received badge  Teacher (source)
2018-06-01 01:09:34 -0500 received badge  Self-Learner (source)
2018-06-01 01:09:16 -0500 received badge  Notable Question (source)
2018-05-24 02:09:48 -0500 received badge  Famous Question (source)
2018-05-23 12:26:28 -0500 received badge  Notable Question (source)
2018-05-23 07:29:53 -0500 commented answer MoveIt! correctly planning but sometimes failing to execute trajectories

The function planning_scene_interface.addCollisionObjects() is the function that I use whenever I add the collision obje

2018-05-23 07:28:04 -0500 commented answer MoveIt! correctly planning but sometimes failing to execute trajectories

HI @adroit89, thanks for your answer. I think that the collision is enabled because whenever I try to plan to a point th

2018-05-23 07:23:24 -0500 commented question MoveIt! correctly planning but sometimes failing to execute trajectories

Hi @adroit89. Whenever the manipulator is moving, the Husky is stopped, so that's not an extra problem for me to solve :

2018-05-23 07:09:27 -0500 received badge  Popular Question (source)
2018-05-23 05:24:40 -0500 commented question MoveIt! correctly planning but sometimes failing to execute trajectories

Besides that, I am pretty sure that that is not the problem because, instead of spawning the tree as a collision object

2018-05-23 05:22:17 -0500 commented question MoveIt! correctly planning but sometimes failing to execute trajectories

To test if the tree spawned in RViz corresponds to the one being spawned in Gazebo, I simply need my program to plan and

2018-05-23 05:20:27 -0500 commented question MoveIt! correctly planning but sometimes failing to execute trajectories

To correct that, I checked the height between the wheel frame and the \base_footprint frame and started to spawn the tre

2018-05-23 05:17:00 -0500 commented question MoveIt! correctly planning but sometimes failing to execute trajectories

Hello @adroit89, thanks for your answer. Yes it is. When I first began with the tests, I noticed that the ground plane i

2018-05-21 08:15:23 -0500 asked a question MoveIt! correctly planning but sometimes failing to execute trajectories

MoveIt! correctly planning but sometimes failing to execute trajectories Hello, I am on ROS Kinetic and Ubuntu 16.04 LT

2018-05-21 07:50:11 -0500 received badge  Notable Question (source)
2018-05-10 01:54:38 -0500 received badge  Nice Question (source)