Ask Your Question

arebgun's profile - activity

2019-06-27 11:21:26 -0500 received badge  Good Answer (source)
2017-12-08 10:56:10 -0500 received badge  Good Answer (source)
2014-07-16 12:32:37 -0500 received badge  Nice Question (source)
2014-04-12 21:50:12 -0500 received badge  Good Answer (source)
2014-02-27 08:56:00 -0500 commented question Fatal - pan_tilt_port: No motors found

You should post your launch and parameter files.

2014-02-27 08:53:03 -0500 answered a question Change dynamixel MX PID parameters?

Hi,

The short version is that it's not really possible right now with the current implementation. I started the driver before there were any MX motors and added those models later. But Robotis decided to use the same register addresses for PID gains as for compliance margin and slope in previous series motors (RX, AX, DX, and whatever else they had before MX). See below:

DXL_CW_COMPLIANCE_MARGIN = 26
DXL_CCW_COMPLIANCE_MARGIN = 27
DXL_CW_COMPLIANCE_SLOPE = 28
DXL_CCW_COMPLIANCE_SLOPE = 29
DXL_D_GAIN = 26
DXL_I_GAIN = 27
DXL_P_GAIN = 28

So, theoretically your setting Compliance Slope to 0 should have set the P_GAIN to 0 and overwrite whatever was in register 29 (since service exposed modifies both CW and CCW simultaneously). Have you tried modifying the P_GAIN register through software provided by Robotis to make sure it does what you expect it to?

2014-02-10 11:13:31 -0500 commented answer dynamixel_controller update rate

Right, the motors are polled at startup and then that list is not changed until the node is shut down. I think it would be possible to modify this list of motors at runtime and only query the motors associated with started joints. Could you open a feature enhancement ticket on github?

2014-02-07 16:15:31 -0500 commented answer dynamixel_controller update rate

I am not sure, it depends on how many motors are connected, if you have 10 and you disable 1, it is unlikely you will see a significant difference.

2014-02-05 07:11:35 -0500 answered a question dynamixel_controller update rate

No, it's not possible to set different polling rates for different sets of servos connected to the same serial bus. It would increase traffic on the serial bus and decrease the maximum polling rate possible. Right now we are just asking to get the updated info on all motors in one go. You could split the leg servos and connect them separately which would also increase the maximum feedback rate as you have less motors on the line to collect info from.

2014-01-28 17:23:09 -0500 marked best answer gmapping and inverted (upside-down) laser

Hello folks, I am having trouble using gmapping with my robot which has an upside-down laser. Last time I was building a map was probably in cturtle and it worked just fine. But in electric it seems that gmapping doesn't detect that the laser is inverted.

Looking at gmapping node source I can see that it uses "angle_increment" value of the LaserScan message to determine if the laser is inverted, e.g. if it is negative then the laser is upside-down. I did echo the messages coming from the laser and angle_increment is indeed positive, and the map is mirrored.

In hokuyo node source code angle_increment parameter is populated from the raw scan message coming from the laser driver, which wouldn't know anything about how the laser is mounted.

Am I missing something or did something change/break from previous release in either gmapping or hokuyo_node?

2014-01-28 17:22:14 -0500 marked best answer environment_server refuses to send planning request to ompl

I am having problems with the motion_planning stack in Diamondback, I just finished converting all my C-Turtle code and configuration files and it looks like everything starts up fine, all the lower level pieces work OK by themselves (e.g. IK, FK, joint_trajectory_action, ompl, etc.). But when I try to use the move_arm stack it refuses to plan a path. It looks like environment_server refuses to send a planning request to ompl planner because "Robot pose not updated in the last 0.000000 seconds" (see console output below):

[ INFO] [1308180532.215709962]: Received new goal
[ INFO] [1308180533.529347867]: Displaying move arm joint goal.
[ INFO] [1308180533.874078636]: Constraint violated:: Joint name:shoulder_pitch_joint, value: 0.214906, Constraint: -1.650000, tolerance_above: 0.100000, tolerance_below: 0.100000
[ WARN] [1308180533.874653870]: State violates goal constraints.

[ WARN] [1308180534.182050992]: Environment is not safe for motion: Robot pose not updated in the last 0.000000 seconds
[ WARN] [1308180534.182261629]: Environment is not safe. Will not issue request for planning

How would I go about fixing this? I don't really understand the problem, it just says the robot pose was not updated for 0.000000 seconds, which sounds like a very small amount of time.

2014-01-28 17:21:46 -0500 marked best answer Trajectory filters and joint limits over PI

Hello folks,

I ran into trouble with some of the assumptions that trajectory filters make. I have a servo motor that can do 250 degrees of travel, e.g. it's not a continuous servo. I would like to position it in such a way that the joint limits are, for example, -40 to 210 degrees. The problem is that if some trajectory wants to put this joint at anything over 180 degrees it will want to wrap around, but servo won't be able reach that position for obvious reasons. Is there a way around that?

2013-08-02 16:26:40 -0500 commented question dynamixel_motor launch file timing problems

This is weird, I have never had problems with launch order. The error message doesn't look like launch order problem though.

2013-08-02 16:12:42 -0500 commented question Unable to start controller tilt_controller

Please post you config files and launch files. It looks like one of your controllers is looking for motor with id 6 which is not present, that would be error in config files.

2013-07-21 04:39:26 -0500 answered a question Trying to install dynamixel_controllers in Fuerte getting error

I see that you are using Ubuntu 12.04, there should be packages available for dynamixel_motor stack on Fuerte. Any reason you are trying to compile from source?

2013-06-27 06:16:28 -0500 received badge  Taxonomist
2013-04-22 07:08:23 -0500 received badge  Famous Question (source)
2013-03-22 04:00:26 -0500 received badge  Nice Answer (source)
2013-03-13 00:16:24 -0500 received badge  Nice Answer (source)
2013-02-05 12:10:30 -0500 commented answer How to specify library flags for a catkin package

Yes, I wanted to release the package and have the ability for other catkin packages to depend on it. Will wait for the REP to be published. Thanks!

2013-02-05 12:01:37 -0500 commented answer How to specify library flags for a catkin package

I have a CMake equivalent to the old Makefile but I have trouble combining my current CMakelists contents with catkin stuff. Package in question is here: https://github.com/arebgun/dynamixel_motor_experimental/tree/master/gearbox.

2013-02-05 11:59:17 -0500 commented answer How to specify library flags for a catkin package

@WilliamWoodall: basically, I am trying to write a wrapper package that downloads 3rd party code and builds it, like we used to be able to from plain Makefiles with the help of download/unpack/patch/build scripts. Not sure if it possible or recommended with catkin.

2013-02-05 11:56:34 -0500 received badge  Notable Question (source)
2013-01-26 14:09:22 -0500 received badge  Popular Question (source)
2013-01-25 23:27:46 -0500 received badge  Good Question (source)
2013-01-25 22:53:59 -0500 received badge  Nice Question (source)
2013-01-25 17:40:32 -0500 asked a question How to specify library flags for a catkin package

I am trying to migrate one of my rosbuild packages to catkin. I am trying to specify the CFLags and LFlags that used to be hardcoded in the manifest.xml, but have to be specified in catkin_package cmake macro.

As far as I understand it, the default Lflags are set to {PROJECT_NAME}/lib, how would I go about changing this to, say, {PROJECT_NAME}/lib64?

I know I can specify an include directory which works fine and I can specify which libraries to link against, but how do I specify where to look for those libraries, i.e. the path after the -L flag?

2013-01-19 15:54:24 -0500 asked a question Unable to build old style message only package

Hello folks,

I am trying to test and port my packages to Groovy, but having trouble building even the simplest message-definition-only package (old style rosbuild package). Here's what's happening:

I am trying to build a dynamixel_msgs package from dynamixel_motor stack. This package only contains message definitions with no dependencies besides std_msgs for standard message types. The first time I tried to build anything containing message definition, gentools.py crapped out with the following error:

File "/opt/ros/groovy/lib/python2.7/dist-packages/roslib/gentools.py", line 75, in _add_msgs_depends
valid_packages = valid_packages + rospack.get_depends(package_context, implicit=True)
TypeError: can only concatenate list (not "set") to list

Ok, I thought, that's weird but easy to fix: cast the output of get_depends to list before concatenating with valid_packages.

The next error I got was the following:

File "/opt/ros/groovy/share/rospy/rosbuild/scripts/genutil.py", line 89, in generate_messages
search_path['std_msgs'] = [os.path.join(rospack.get_path('std_msgs'), 'msg')]
File "/usr/local/lib/python2.7/dist-packages/rospkg/rospack.py", line 149, in get_path
raise ResourceNotFound(name, ros_paths=self._ros_paths)
ResourceNotFound: std_msgs
ROS path [0]=/opt/ros/groovy/share/ros
ROS path [1]=/home/anton/ros-g/release
ROS path [2]=/home/anton/ros-g/stacks/ros_release
ROS path [3]=/home/anton/ros-g/jsk-ros-pkg/jsk_common
ROS path [4]=/home/anton/ros-g/jsk-ros-pkg/openrave_planning
ROS path [5]=/home/anton/ros-g/stacks/camera_drivers_experimental
ROS path [6]=/home/anton/ros-g/foote-ros-pkg/phidgets/phidgetspp_c_api
ROS path [7]=/home/anton/ros-g/stacks/dynamixel_motor
ROS path [8]=/home/anton/ros-g/stacks/erratic_robot
ROS path [9]=/home/anton/ros-g/ua-ros-pkg
ROS path [10]=/opt/ros/groovy/stacks
ROS path [11]=/opt/ros/groovy/share

It definitely is there under path [11] in /opt/ros/groovy/share/std_msgs. I tried following the logic of how rospack construct its cache but did not quite the whole picture. It seems like it traverses all the paths on ROS_PACKAGE_PATH looking for manifest.xml and adds those packages along with paths that contain it. It turns out std_msgs along with all other packages in groovy/share directory don't have manifest.xml but have a package.xml instead so they don't get added to this cache, and that is where the error is coming from.

Does anybody have an idea of what is going on here?

PS. Ubuntu 12.04, fresh installation of Groovy as of 01/19/2013, fresh installation of rosinstall:

rosinstall 0.6.17
vcstools:  0.1.18
SVN:       svn, version 1.6.17 (r1128011); 
Mercurial: Mercurial Distributed SCM (version 2.0.2); 
Git:       1.7.9.5; 'reset --keep': True, submodules: True
Tar:       tarfile version: $Revision: 85213 $; 
Bzr:       Bazaar (bzr) 2.5.1;
2012-12-15 04:31:06 -0500 received badge  Notable Question (source)
2012-12-15 04:31:06 -0500 received badge  Famous Question (source)
2012-12-15 04:31:06 -0500 received badge  Popular Question (source)
2012-11-12 08:36:55 -0500 received badge  Nice Answer (source)
2012-11-05 13:29:21 -0500 commented question help with erratic_robot

The proper command is: "sudo apt-get install ros-fuerte-erratic-robot", notice the dashes (-) instead of underscores(_).

2012-10-29 14:38:50 -0500 answered a question Dynamixel motors not found

I have updated the tutorial to work with Electric and Fuerte version of the dynamixel_motor stack.

2012-10-29 13:53:42 -0500 commented question Dynamixel motors not found

What version of ROS are you using?

2012-10-15 04:38:32 -0500 received badge  Nice Answer (source)