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

virgil93's profile - activity

2014-11-02 15:38:28 -0500 received badge  Favorite Question (source)
2013-07-09 10:57:46 -0500 received badge  Famous Question (source)
2013-06-27 22:13:25 -0500 received badge  Famous Question (source)
2013-04-29 17:19:25 -0500 received badge  Notable Question (source)
2013-04-04 09:32:57 -0500 received badge  Famous Question (source)
2013-03-30 07:04:31 -0500 received badge  Popular Question (source)
2013-03-27 09:59:10 -0500 commented answer How do I set the goalID in actionlib?

Does that mean no, I can't set it?

2013-03-27 04:34:01 -0500 received badge  Famous Question (source)
2013-03-27 04:23:16 -0500 asked a question How do I set the goalID in actionlib?

I have been using a simple_action_client to send goals to move_base.

According to the Detailed description of the actionlib (http://www.ros.org/wiki/actionlib/DetailedDescription#The_Messages (Actionlib Messages)):

When sending a goal, the action client generally generates both a unique Goal ID and a timestamp. However, it is possible that naive (aka dumb) clients might leave either of these empty. If so, the action server will populate them.

Empty stamp: Upon receipt by action server, stamp is set to now()

Empty id: Upon receipt by action server, id is auto-generated. Note that this ID is not very useful since, the action client doesn't have any way to know the ID that the server generated for its goal.

This implies to me that there is a way to create your own goal ID and send it with the goal. The only method call to send a goal to the actionlib server is http://ros.org/doc/groovy/api/actionlib/html/classactionlib_1_1SimpleActionClient.html#ae6a2e6904495e7c20c59e96af0d86801 (actionlib::SimpleActionClient< ActionSpec >::sendGoal):

void sendGoal (const Goal &goal, SimpleDoneCallback done_cb=SimpleDoneCallback(), SimpleActiveCallback active_cb=SimpleActiveCallback(), SimpleFeedbackCallback feedback_cb=SimpleFeedbackCallback())

The only Goal type I can find associated with move_base is MoveBaseGoal.msg which only includes a geometery_msgs/PoseStamped.msg.

I traced the sendGoal call from the http://ros.org/doc/groovy/api/actionlib/html/simple__action__client_8h_source.html#l00313 (simple_action_client.h) to the sendGoal call in http://ros.org/doc/groovy/api/actionlib/html/action__client_8h_source.html#l00115 (action_client.h) to the initGoal call in http://ros.org/doc/groovy/api/actionlib/html/goal__manager__imp_8h_source.html#l00056 (goal_manager_imp.h) which is the first place I can find that the goal id is set.

So, my question is If I can, how do I set the goal id of the goal message to move_base?

My goal is to be able to send a goal to move_base and then verify that it received the correct goal by checking the goal_id from the /move_base/status topic. I know that I could edit the actionlib code but that isn't a workable solution for me right now.

2013-03-27 03:39:11 -0500 commented answer Does moveit work with a skid steer robot?

Thanks for the answer

2013-03-20 23:47:11 -0500 received badge  Notable Question (source)
2013-03-18 08:19:17 -0500 received badge  Popular Question (source)
2013-03-18 07:58:21 -0500 received badge  Notable Question (source)
2013-02-25 03:16:03 -0500 commented question Does moveit work with a skid steer robot?

Is that an answer to both questions?

2013-02-21 10:39:11 -0500 asked a question Does moveit work with a skid steer robot?

It looks like moveit is primarily for manipulator control. Will it work to autonomously move a skid steer robot?

Does moveit replace move_base?

2013-02-20 02:50:40 -0500 received badge  Supporter (source)
2013-02-20 02:50:35 -0500 commented answer Will moveit accept a list of goals?

No, it doesn't have to plan all the waypoints at once. Just the current one in the list. Thanks for your answer though.

2013-02-19 18:22:15 -0500 received badge  Popular Question (source)
2013-02-19 07:00:33 -0500 received badge  Scholar (source)
2013-02-19 04:29:44 -0500 asked a question Will moveit accept a list of goals?

I am currently using a custom node to accept a list of waypoints and send them one at a time to move_base when the current waypoint is successfully reached. So I can send it a path that the robot will travel.

Does moveit already have this functionality?

I saw the MotionGroup Action message that has the MotionPlanRequest member which in turn has the Constraints[] member. So I know it can accept a list of constraints but nothing I can find specifies the behaviour of that list.

EDIT

To clarify, I want to be able to send an ordered list of waypoints in some frame to moveit. It will compute the necessary trajectory for the first waypoint. Once it reaches that waypoint moveit will compute the trajectory for the next and so on.

Example (I am assuming a local frame and units in meters):

(frame: "base_link", [(1,1), (3, -3), (0, 0)])

The robot will travel to 1 meter forward and 1 meter right, then continue on to 3 meters forward and 3 meters left (from the original location). I am not concerned about frames right now just the iteration through a list of waypoints.

2012-09-23 04:28:27 -0500 received badge  Notable Question (source)
2012-09-23 04:28:27 -0500 received badge  Popular Question (source)
2012-06-28 09:30:32 -0500 received badge  Editor (source)
2012-06-28 09:30:32 -0500 edited question android_core widgets take a large portion of tablet CPU

I am using a Samsung Galaxy Tab 8.9 to develop on. I am using the following android_core components:

  • CameraControlLayer
  • LaserScanLayer
  • PosePublisherLayer
  • RobotLayer
  • RosImageView
  • VirtualJoystickView

Even when not connected to the robot and therefore not receiving LiDAR and video I get almost a 40% CPU utilization (as seen by top in adb shell) when moving the Joystick around. This by itself isn't a problem but when connected this causes the app to jump above 100% and become incredibly laggy. I tried removing all other layers and Views, just leaving the Joystick and I still got the same utilization. I ran traceview and the majority of the calls seem to be originating in the measure/OnMeasure method calls of the VirtualJoystickView ( and sub components). I tried the following:

  1. overriding onMeasure in VirtualJoystickView but either had no change to the CPU or the view wouldn't show up at all. I'm sure I was doing something wrong but due to time constraints I had to abandon it. I think part of the problem is that the VirtualJoystickView which inherits from RelativeLayout only has one child (a relativeLayout) where I would expect it to have all of the different components of VirtualJoystickView (the thumb divets, etc). Especially, given this line in VirtualJoystickView.initVirtualJoystick,

        LayoutInflater.from(context).inflate(R.layout.virtual_joystick, this, true);
    
    that I think means take the root RelativeLayout in the xml file and this object becomes the root in it's place.

  2. I tried removing the different components of the Layout to see if less components resulted in less CPU utilization. This didn't show any drop until there was no moving component. In other words, just the grey ring.

I was wondering if there was any profiling done on the android_core layers and views to measure the CPU utilization?

Also, what device(s) were these components tested on?