Ask Your Question

mrjogo's profile - activity

2020-06-16 09:33:45 -0500 received badge  Nice Question (source)
2019-07-23 03:29:40 -0500 received badge  Famous Question (source)
2019-05-01 11:00:46 -0500 received badge  Nice Question (source)
2019-01-03 09:48:03 -0500 received badge  Famous Question (source)
2017-10-17 14:25:55 -0500 received badge  Famous Question (source)
2017-10-17 14:21:57 -0500 received badge  Notable Question (source)
2017-09-18 13:24:55 -0500 received badge  Famous Question (source)
2017-07-06 03:03:33 -0500 received badge  Famous Question (source)
2017-04-12 11:28:54 -0500 received badge  Notable Question (source)
2017-04-11 14:53:26 -0500 received badge  Notable Question (source)
2017-04-11 14:53:26 -0500 received badge  Popular Question (source)
2017-03-13 19:01:06 -0500 received badge  Popular Question (source)
2017-03-11 13:39:02 -0500 asked a question ros_control: example RobotHW using RobotTransmissions

Can someone point me to a good (full) example of a RobotHW subclass that uses TransmissionInterfaceLoader/RobotTransmissions to load transmission information from the URDF and read/write transformed data to/from some lower level hardware? I'm trying to reconcile these examples:

1. http://docs.ros.org/kinetic/api/trans... 2. http://docs.ros.org/kinetic/api/trans...

I'm getting hung up on what data structures store the pos/vel/effort data for read/write, and whether my class needs to set them up, or they're already present in RobotTransmissions.

Thanks!

2017-01-09 23:54:21 -0500 received badge  Notable Question (source)
2017-01-09 13:26:34 -0500 received badge  Popular Question (source)
2017-01-06 13:45:43 -0500 asked a question octomap Ubuntu dependencies

I'm doing a full source build of ROS Kinetic w/ MoveIt and one of the "system" dependencies is the ROS-packaged libfcl-0.5-dev, which depends on ros-kinetic-octomap, which depends on ros-kinetic-catkin / python-catkin-pkg. I'm not super familiar with ROS packaging, so I have two questions:

1) Why does ros-kinetic-octomap depend on ros-kinetic-catkin? Looking at the release repository, it seems that somewhere between upstream and the final .deb a package.xml gets added with a run_depend on catkin. Why would catkin be needed at runtime?

2) Why is octomap even a ROS package (ie, with package.xml)? (as opposed to some other 3rd party libraries that are simply packaged and distributed)

I'm asking partly because this is installing a second catkin alongside my built-from-source version, but also to learn.

2016-12-30 12:06:44 -0500 received badge  Notable Question (source)
2016-12-22 08:39:28 -0500 asked a question [moveit_simple_controller_manager] Longer controller action timeout

I'm running MoveIt and Gazebo using a single launch file. Because my computer's slow, sometimes Gazebo takes quite a while to start, so I had to increase the timeout on my controller_manager spawner. Unfortunately, move_group / moveit_simple_controller_manager are quite impatient and throw the error "Action client not connected: /position_trajectory_controller/follow_joint_trajectory." Looking into the code, it looks like ActionBasedControllerHandle is hardcoded to wait 15 seconds and then give up (3 tries with 5 seconds in between).

Besides splitting up the launch file, is there a way to have the moveit_simple_controller_manager wait longer (or indefinitely) for the controllers? Or maybe some way to have move_group wait for a trigger before it tries to create the controller manager? Or a way to retrigger creating FollowJointTrajectoryControllerHandle after it has failed?

2016-09-09 02:42:04 -0500 received badge  Popular Question (source)
2016-09-09 00:55:21 -0500 received badge  Teacher (source)
2016-09-09 00:55:21 -0500 received badge  Necromancer (source)
2016-09-08 14:12:04 -0500 asked a question Include node name in console log output

Is there any way to include the node name (or PID) in the console log output from running roslaunch? It's often hard to tell which messages come from which nodes.

2016-09-07 20:19:39 -0500 answered a question Gazebo_ros spawn_model reference_frame not working

(cross-answered in http://answers.gazebosim.org/question... )

From experimentation, the -reference_frame option in spawn_model must be relative to a link in a model in the world. So in your case, the following modifications should work:

world.world:

...
<!-- Extra objects -->
<model name='unit_cylinder_1'>
    <pose>0 0 2 3.141592 0 1.57</pose>
    <link name='my_link'>
        ....
   </link>
...

And in your node args -reference_frame unit_cylinder_1::my_link

2016-08-03 13:27:28 -0500 received badge  Enthusiast
2016-08-02 18:30:52 -0500 received badge  Supporter (source)
2016-07-12 03:18:46 -0500 received badge  Popular Question (source)
2016-06-07 11:45:33 -0500 commented answer ROS implementation of Behavior Trees?

Recently did my own searching, and also came across https://github.com/almc/behavior_trees as an implementation from this paper: http://www.csc.kth.se/~almc/pdf/unifi...

2016-06-06 17:01:21 -0500 asked a question rosdep equivalent of pip freeze and pip install requirements.txt

Does rosdep have a way to save requirements to a flat file (possibly with frozen versions) and then install from that file later? I'm creating my ROS environment within Docker, and having such a file is nice because it's easy to repeatably build images, and creates a full dependency list that is easily inspected and version controlled. If not, there are other ways to build the image, but I figured I'd ask first.

2013-12-11 07:42:14 -0500 marked best answer Splitting work between ROS and a custom motor controller board

I'm designing a hobby bartending robot arm around ROS, and I'm wondering what's the best way to implement motor control.

Some background: I'm using brushed DC motors with homemade encoders controlled by various Atmega microcontrollers + H-bridges. Right now, I'm planning on having them communicate via RS-485, with an Atmega32u4 usb bridge to the computer running ROS.

I looked at how the PR2 motor controller boards work, and the only onboard control they do is a 100kHz control loop around the motor current. All other control is done in a realtime Linux loop and communicated using EtherCAT (more details). I'm tempted to copy what they've done, but I'm worried that my lower-cost approach means more onboard control (ie, position/velocity) will work better.

I'm relatively new to this, so any advice on how to implement it, or even recommendations on a better way to do the multi-drop communications would be greatly appreciated. Thanks!

2013-12-11 07:41:50 -0500 received badge  Good Question (source)
2012-09-16 17:25:02 -0500 received badge  Famous Question (source)
2012-09-16 17:25:02 -0500 received badge  Notable Question (source)
2012-05-02 10:59:58 -0500 received badge  Popular Question (source)
2012-01-16 10:23:39 -0500 marked best answer Splitting work between ROS and a custom motor controller board

The main motivation behind running all of the PID control loops for the PR2 on the main computer is to reduce the number of languages and environments that a user has to know in order to write software for the PR2.

If you're building your own motor control boards and writing the software for them yourself, putting the postion control on the motor board is probably a better idea. You'll have less data on your bus, because you won't need real-time feedback from all of your encoders, and you won't need to run a realtime kernel on your main computer (the real-time kernel on the PR2 is one of its weak points).

If you're looking for a low-cost system as a model, take a look at the Arbotix board and drivers. It uses an atmel microcontroller as a bridge between the main computer and an AX servo bus, and the AX servos have a built-in microcontroller that does all of the motor and position control.