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

dougbot01's profile - activity

2017-02-14 08:26:11 -0500 received badge  Famous Question (source)
2016-10-20 03:53:30 -0500 received badge  Notable Question (source)
2016-09-04 08:18:14 -0500 received badge  Popular Question (source)
2016-09-03 18:28:22 -0500 asked a question Clarification on ros-kinetic-robot metapackage GUI dependencies

According to REP 142 there should be no GUI dependencies on the Robot metapackage (emphasis mine):

Robot metapackage

The robot metapackage is defined to be core, stable, ROS libraries for any robot hardware. It is the "general robotics" libraries of ROS. It may not contain any GUI dependencies.

Question:

When I do apt-get install ros-kinetic-robot, there are many packages being pulled in that are GUI related, such as pyside, qt, and x11.

Is the intention that you can run all the nodes without GUI interaction, although they may require some libraries from a GUI library for some other reason? (qt includes much beyond GUI, and I could see it generating images even though they cannot be displayed).

I put the full apt-get output below for reference.

Thanks!

dougbot01

Output

ubuntu@ubuntu-standard:/etc$ sudo apt-get install ros-kinetic-robot
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  fontconfig fontconfig-config fonts-liberation graphviz gstreamer1.0-plugins-base hddtemp libassimp-dev libassimp3v5 libavahi-client3 libavahi-common-data
  libavahi-common3 libcairo2 libcdparanoia0 libcdt5 libcgraph6 libcollada-dom2.4-dp-dev libcollada-dom2.4-dp0 libcups2 libcurl4-openssl-dev libdatrie1
  libdouble-conversion1v5 libdrm-amdgpu1 libdrm-dev libdrm-exynos1 libdrm-freedreno1 libdrm-nouveau2 libdrm-omap1 libdrm-radeon1 libdrm-tegra0 libdrm2
  libegl1-mesa libegl1-mesa-dev libeigen3-dev libevdev2 libfontconfig1 libgbm1 libgd3 libgl1-mesa-dri libglapi-mesa libgles2-mesa libgles2-mesa-dev
  libgraphite2-3 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgudev-1.0-0 libgvc6 libgvpr2 libharfbuzz0b libice6 libinput-dev libinput10 libllvm3.8
  libminizip1 libmirclient-dev libmirclient9 libmircommon-dev libmircommon5 libmircookie-dev libmircookie2 libmirprotobuf3 libmtdev1 libopus0 liborc-0.4-0
  libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpathplan4 libpcre16-3 libpixman-1-0 libprotobuf-dev libprotobuf-lite9v5 libprotobuf9v5 libproxy1v5
  libpthread-stubs0-dev libpyside-py3-2.0 libpyside2-dev libpyside2.0 libqgsttools-p1 libqhull-dev libqhull7 libqt5clucene5 libqt5concurrent5 libqt5core5a
  libqt5dbus5 libqt5designer5 libqt5designercomponents5 libqt5gui5 libqt5help5 libqt5multimedia5 libqt5multimediaquick-p5 libqt5multimediawidgets5
  libqt5network5 libqt5opengl5 libqt5opengl5-dev libqt5printsupport5 libqt5qml5 libqt5quick5 libqt5quickparticles5 libqt5quicktest5 libqt5quickwidgets5
  libqt5script5 libqt5scripttools5 libqt5sql5 libqt5sql5-sqlite libqt5svg5 libqt5svg5-dev libqt5test5 libqt5webkit5 libqt5webkit5-dev libqt5widgets5
  libqt5x11extras5 libqt5x11extras5-dev libqt5xml5 libqt5xmlpatterns5 libqt5xmlpatterns5-dev libqt5xmlpatterns5-private-dev libshiboken-py3-2.0
  libshiboken2-dev libshiboken2.0 libsm6 libthai-data libthai0 libtheora0 libtxc-dxtn-s2tc0 liburdfdom-dev liburdfdom-headers-dev liburdfdom-model-state0.4
  liburdfdom-model0.4 liburdfdom-sensor0.4 liburdfdom-tools liburdfdom-world0.4 liburiparser1 libvisual-0.4-0 libvpx3 libwacom-bin libwacom-common libwacom2
  libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1-mesa libwayland-server0 libx11-dev libx11-doc libx11-xcb-dev libx11-xcb1 libxau-dev
  libxaw7 libxcb-dri2-0 libxcb-dri2-0-dev libxcb-dri3-0 libxcb-dri3-dev libxcb-glx0 libxcb-glx0-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1
  libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-render-util0 libxcb-render0 libxcb-render0-dev libxcb-shape0 libxcb-shape0-dev
  libxcb-shm0 libxcb-sync-dev libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xfixes0-dev libxcb-xkb1 libxcb1-dev libxdamage-dev libxdamage1 libxdmcp-dev
  libxext-dev libxfixes-dev libxfixes3 libxi6 libxkbcommon-dev libxkbcommon-x11-0 libxkbcommon0 libxmu6 libxpm4 libxrender1 libxshmfence-dev libxshmfence1
  libxslt1.1 libxt6 libxxf86vm-dev libxxf86vm1 pyqt5-dev python-pycurl python-pyqt5 python-pyqt5.qtsvg python-pyside2 python-pyside2.qtconcurrent
  python-pyside2.qtcore python-pyside2.qtgui python-pyside2.qthelp python-pyside2.qtnetwork python-pyside2.qtprintsupport python-pyside2.qtqml
  python-pyside2.qtquick python-pyside2.qtquickwidgets python-pyside2.qtscript python-pyside2.qtsql python-pyside2.qtsvg python-pyside2.qttest
  python-pyside2.qtuitools python-pyside2.qtwebkit python-pyside2.qtwebkitwidgets python-pyside2.qtwidgets python-pyside2.qtx11extras python-pyside2.qtxml
  python-sip python-sip-dev python-urlgrabber qt5-qmake qtbase5-dev qtbase5-dev-tools qtbase5-private-dev qtchooser qtdeclarative5-dev
  qtdeclarative5-private-dev qtmultimedia5-dev qtscript5-dev qtscript5-private-dev qttools5-dev qttools5-dev-tools qttools5-private-dev qttranslations5-l10n
  ros-kinetic-angles ros-kinetic-collada-parser ros-kinetic-collada-urdf ros-kinetic-control-msgs ros-kinetic-diagnostic-aggregator
  ros-kinetic-diagnostic-analysis ros-kinetic-diagnostic-common-diagnostics ros-kinetic-diagnostic-updater ros-kinetic-diagnostics
  ros-kinetic-eigen-conversions ros-kinetic-eigen-stl-containers ros-kinetic-executive-smach ros-kinetic-filters ros-kinetic-geometric-shapes
  ros-kinetic-geometry ros-kinetic-joint-state-publisher ros-kinetic-kdl-conversions ros-kinetic-kdl-parser ros-kinetic-octomap ros-kinetic-orocos-kdl
  ros-kinetic-python-orocos-kdl ros-kinetic-python-qt-binding ros-kinetic-random-numbers ros-kinetic-resource-retriever ros-kinetic-robot-model
  ros-kinetic-robot-state-publisher ros-kinetic-self-test ros-kinetic-smach ros-kinetic-smach-msgs ros-kinetic-smach-ros ros-kinetic-tf
  ros-kinetic-tf-conversions ros-kinetic-tf2 ros-kinetic-tf2-kdl ros-kinetic-tf2-msgs ros-kinetic-tf2-py ros-kinetic-tf2-ros ros-kinetic-urdf
  ros-kinetic-urdf-parser-plugin ros-kinetic-xacro shiboken2 sip-dev x11-common x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev
  x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev x11proto-xf86vidmode-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
2015-05-08 01:57:26 -0500 received badge  Nice Answer (source)
2015-02-28 07:58:12 -0500 received badge  Enlightened (source)
2014-09-24 05:21:12 -0500 received badge  Good Answer (source)
2014-09-01 01:38:24 -0500 received badge  Famous Question (source)
2014-01-28 17:27:03 -0500 marked best answer tf.getYaw() in python?

Well I feel very foolish to ask this question, but I am looking for the equivalent of tf::getYaw() that exists in the C++ API for Python. I've tried looking in the API docs and using the dir() and help() functions in the Python console, but so far coming up short. Does this function exist?

If not, can anyone point to a reliable implementation where I can pass a Quaternion message and get the yaw back? I can go back and rewrite my code in C++, but that would be a little silly.

I'm on Electric

Thanks!

2014-01-28 17:26:33 -0500 marked best answer Problem adding rosserial node to turtlebot bringup

Hello All,

This is my first question to the list so please advise any etiquette that I may have overlooked regards to posts. Sorry about the length, but I figure more detail is better!

I am trying to add some hardware to my Turtlebot using an Arduino. I have created and tested my rosserial nodes and Arduino code, and everything is working. I have also added these nodes to a separate launch file, and when I call roslaunch on it, it runs without any issues from my user account.

The problem occurs when I try to get the rosserial node to start with all the other Turtlebot nodes by including my launch file in minimal.launch.


Platform

Ubuntu 11.10 Oneiric ROS Electric ros-electric-rosserial, 0.3.0-s1336605681~oneiric Arduino UNO (Rev 2 board) For reference, I had installed Ubuntu first, then ROS electric, then the turtlebot stacks.


Problem / Error

This is from the error log in /home/turtlebot/.ros/log/....../ As you can see, there is a signal_shutdown coming from somewhere that kills the node, however I am not touching anything and all other nodes live on.

[rospy.client][INFO] 2012-07-13 19:53:18,918: init_node, name[/rosserial_lipo], pid[17829]
[xmlrpc][INFO] 2012-07-13 19:53:18,919: XML-RPC server binding to 0.0.0.0
[rospy.init][INFO] 2012-07-13 19:53:18,920: ROS Slave URI: [http://192.168.4.1:59687/]
[xmlrpc][INFO] 2012-07-13 19:53:18,920: Started XML-RPC server [http://192.168.4.1:59687/]
[rospy.impl.masterslave][INFO] 2012-07-13 19:53:18,921: _ready: http://192.168.4.1:59687/
[xmlrpc][INFO] 2012-07-13 19:53:18,922: xml rpc node: starting XML-RPC server
[rospy.registration][INFO] 2012-07-13 19:53:18,925: Registering with master node http://localhost:11311
[rospy.init][INFO] 2012-07-13 19:53:19,021: registered with master
[rospy.rosout][INFO] 2012-07-13 19:53:19,109: initializing /rosout core topic
[rospy.rosout][INFO] 2012-07-13 19:53:19,121: connected to core topic /rosout
[rospy.simtime][INFO] 2012-07-13 19:53:19,125: /use_sim_time is not set, will not subscribe to simulated time [/clock] topic
[rosout][INFO] 2012-07-13 19:53:19,126: ROS Serial Python Node
[rosout][INFO] 2012-07-13 19:53:19,133: Connected on /dev/ttyACM0 at 57600 baud
[rospy.core][INFO] 2012-07-13 19:53:19,136: signal_shutdown [atexit]
[rospy.impl.masterslave][INFO] 2012-07-13 19:53:19,141: atexit


minimal.launch (in /opt/ros/electric/stacks/turtlebot/turtlebot_bringup)

In turtlebot_bringup package, I've edited minimal.launch to have the following. The "laptop battery" stuff has been pulled out since I am using a mini-PC instead of a netbook (I'm using Arduino as a LiPo voltage monitor).

  <!-- Turtlebot Laptop Battery Diagnostics -->
  <include file="$(find turtlebot_lipo)/lipo.launch" />


lipo.launch

This is the complete file. The launch file, as well as turtlebot_lipo_diag.py, live under /home/doug/ros_workspace/turtlebot_lipo/.

<launch>

  <!-- Turtlebot Laptop Battery Diagnostics -->
  <node pkg="rosserial_python" type="serial_node.py" name="rosserial_lipo" output="screen">
    <param name="~port" value="/dev/ttyACM0" />
    <param name="~baud" value="57600" />
  </node>
  <node ...
(more)
2014-01-16 05:07:12 -0500 received badge  Famous Question (source)
2014-01-15 21:31:28 -0500 received badge  Notable Question (source)
2013-10-25 07:13:22 -0500 received badge  Famous Question (source)
2013-10-14 03:52:08 -0500 received badge  Nice Question (source)
2013-10-14 03:51:53 -0500 received badge  Popular Question (source)
2013-08-22 04:27:43 -0500 received badge  Notable Question (source)
2013-07-15 20:12:21 -0500 received badge  Popular Question (source)
2013-07-14 21:52:06 -0500 asked a question Problem with libhdf5 dependency

Recently I had an issue updating my Fuerte packages. When I ran

$ sudo apt-get upgrade

I received the error

"E: Unable to correct problems, you have held broken packages."

for 12 packages.

After digging into the issue, I found that ros-fuerte-perception-pcl requires libhdf5-serial-dev. However, I had installed Paraview (which has a PCL viewer plugin) and paraview requires libhdf5-openmpi-dev. It appears these two packages are mutually exclusive.

Because I haven't been using Paraview lately, I decided to uninstall it so I could update my ROS Fuerte install. However, since it was coexisting peacefully before I feel something must have changed.

During the uninstall of Paraview and update of perception-pcl, I noticed that libnetcdf6 can use either libhdf5-serial or -openmpi

$ apt-cache depends libnetcdf6 
libnetcdf6
  Depends: libc6
  Depends: libcurl3-gnutls
  Depends: libgcc1
  Depends: libgfortran3
 |Depends: libhdf5-serial-1.8.4
  Depends: <libhdf5-1.8.4>
    libhdf5-lam-1.8.4
    libhdf5-mpich-1.8.4
    libhdf5-openmpi-1.8.4
    libhdf5-serial-1.8.4
  Depends: libstdc++6
  Conflicts: libnetcdf6:i386

Could perception-pcl be modified to accept either also? This would allow Paraview installation again.

Yes, I'm also going to query the Ubuntu package maintainers about doing the same with Paraview.

2013-06-12 21:13:53 -0500 commented answer Help troubleshooting TurtleBot arm interactive markers

I tried an arm only URDF, with the top plate as the base_link (otherwise it was throwing some errors for multi-dof joints?). Even with that, still no luck... same errors as before. I would love to figure it out, but for now I will have to go back to 11.10/Electric. Thanks for the feedback @fergs !!

2013-06-12 08:19:53 -0500 commented answer Help troubleshooting TurtleBot arm interactive markers

Thank you @fergs for checking. It's on a Turtlebot, and RViz didn't report TF errors. I will set up an arm only URDF for testing. If that doesn't work, I'm assuming it would be a change to the ros-fuerte-simple-arms stack, since the arbotix and turtlebot_arm code are the same (AFAIK). Thanks!

2013-06-11 20:57:28 -0500 asked a question Help troubleshooting TurtleBot arm interactive markers

Hi All,

I can't expect anyone to hold the golden key here, but I hope people can suggest what I might do to figure out where the error is.

Previously Ubuntu 11.10 and Electric was working. Currently using Ubuntu 12.04 with Fuerte... not working yet. I can use the arm's interactive markers in the "joint mode", but the "trajectory mode" gives errors.

It appears code in ROS is outdated, so I am using the arbotix code from svn checkout http://vanadium-ros-pkg.googlecode.com/svn/trunk/ vanadium-ros-pkg-read-only and arm code from git clone -b fuerte-devel https://github.com/turtlebot/turtlebot_arm.git. Both were ok on electric.

When I try moving the gripper, here are the messages I get from the marker server...

roslaunch turtlebot_arm_interactive_markers arm_markers.launch
...
core service [/rosout] found
process[turtlebot_arm_marker_server-1]: started with pid [4157]
[ INFO] [1371014595.011226032]: [turtlebot arm marker server] Initialized.
[ INFO] [1371014771.673044255]: Finished in state [ABORTED]
[ INFO] [1371014849.828211285]: Finished in state [ABORTED]

Also, I get some weird output from the arm server (there's an error val at bottom, and appears to have no plan)...

core service [/rosout] found
process[environment_server-1]: started with pid [3306]
process[planning_scene_validity_server-2]: started with pid [3307]
process[arm_kinematics-3]: started with pid [3309]
process[simple_arm_server-4]: started with pid [3314]
process[reset_arm_server-5]: started with pid [3368]
process[relax_arm_server-6]: started with pid [3376]
[ INFO] [1371014531.525485648]: Environment server started
[ INFO] [1371014532.206517619]: Successfully connected to planning scene action server for /planning_scene_validity_server
[ INFO] [1371014532.413203478]: Successfully connected to planning scene action server for /arm_kinematics
[INFO] [WallTime: 1371014533.593215] simple_arm_server node started
[INFO] [WallTime: 1371014771.458778] Parsing move to:
header: 
  seq: 0
  stamp: 
    secs: 0
    nsecs: 0
  frame_id: arm_base_link
pose: 
  position: 
    x: 0.00575924804434
    y: -8.69042996783e-05
    z: 0.384833902121
  orientation: 
    x: -0.00553457715202
    y: -0.721403773506
    z: -0.00530987136779
    w: 0.692472215538
roll 0
solution: 
  joint_state: 
    header: 
  seq: 0
  stamp: 
    secs: 0
    nsecs: 0
  frame_id: ''
    name: []
    position: []
    velocity: []
    effort: []
  multi_dof_joint_state: 
    stamp: 
      secs: 0
      nsecs: 0
    joint_names: []
    frame_ids: []
    child_frame_ids: []
    poses: []
error_code: 
  val: -27

Here are all the nodes/commands I run

roslaunch turtlebot_bringup minimal_arm.launch
rosrun turtlebot_dashboard turtlebot_dashboard, set full mode, enable breaker
roslaunch turtlebot_arm_bringup arm.launch
roslaunch turtlebot_arm_bringup simple_arm_server.launch 
rosrun turtlebot_interactive_markers turtlebot_marker_server
roslaunch turtlebot_arm_interactive_markers arm_markers.launch
rosrun rviz rviz

THANK YOU!

2013-04-11 08:51:28 -0500 received badge  Popular Question (source)
2013-04-11 08:51:28 -0500 received badge  Notable Question (source)
2013-04-02 19:12:30 -0500 commented answer how to make rosserial work with 32 bit micro controller. please help

If that is all you need, simply use the Serial.print commands in your Arduino code. There are many examples of Python code for reading serial commands. Here's a site with some good info http://eli.thegreenplace.net/2009/07/30/setting-up-python-to-work-with-the-serial-port/

2013-04-01 18:48:09 -0500 answered a question how to make rosserial work with 32 bit micro controller. please help

Although it does not use rosserial, I would strongly recommend you take a look at the ROS Arduino Bridge (http://www.ros.org/wiki/ros_arduino_bridge). The nice thing about this package is that it communicates over the serial port without relying on rosserial_arduino. It is very easy to port from Arduino to any Arduino-compatible microcontroller.

I also found rosserial can be very slow... sending one message was taking about 1.8ms according to an oscilloscope. Because of that I could only publish about 30 Hz. Using the bridge approach, I was able to quickly improve that to about 500 Hz.

2013-04-01 18:38:16 -0500 commented answer Updates for tf::MessageFilter example in geometry_tutorials

Thanks for pointing me in the right direction! My pull request was already merged into geometry_tutorials.

2013-03-25 11:10:51 -0500 received badge  Student (source)
2013-03-24 19:52:04 -0500 asked a question Updates for tf::MessageFilter example in geometry_tutorials

Hi,

I was trying to work through the tf tutorials, and had some issues when I got to the part about message filters. The tutorial refers to "turtle_tf_sensor.launch" which is not in the package. I am using Fuerte, and it appears that the file is also missing from Groovy. Also, this issue was previously raised, but I cannot see it being fixed.

I have recreated the missing launch file, and a python node that it runs, based on code from Box Turtle.

If you want me to submit a patch somewhere else please advise.

Missing file 1: geometry_tutorials/turtle_tf/launch/turtle_tf_sensor.launch

<launch>
    <include file="$(find turtle_tf)/launch/turtle_tf_demo.launch" />
    <node name="turtle_pose_stamped_publisher" pkg="turtle_tf" type="turtle_tf_message_broadcaster.py" respawn="false" output="screen" /> 
</launch>

Missing file 2: geometry_tutorials/turtle_tf/nodes/turtle_tf_message_broadcaster.py

[Note: this was modified from Box Turtle code to use Point instead of Pose to match the tutorial code]

#!/usr/bin/env python

import roslib
roslib.load_manifest('turtle_tf')
import rospy

import tf
import turtlesim.msg, turtlesim.srv
from geometry_msgs.msg import PointStamped, Point
from std_msgs.msg import Header

class PointPublisher:
    def handle_turtle_pose(self, msg, turtlename):
        self.pub.publish(PointStamped(Header(0, rospy.rostime.get_rostime(), "/world"), Point(msg.x, msg.y, 0)))

    def __init__(self):
        self.turtlename = "turtle3" #rospy.get_param('~turtle')
        self.sub = rospy.Subscriber('/%s/pose' % self.turtlename,
                         turtlesim.msg.Pose,
                         self.handle_turtle_pose,
                         self.turtlename)
        self.pub = rospy.Publisher('turtle_point_stamped', PointStamped)



if __name__ == '__main__':
    rospy.init_node('tf_turtle_stamped_msg_publisher')
    rospy.wait_for_service('spawn')
    spawner = rospy.ServiceProxy('spawn', turtlesim.srv.Spawn)
    spawner(4, 2, 0, 'turtle3')

    pp = PointPublisher()

    pub = rospy.Publisher("turtle3/command_velocity", turtlesim.msg.Velocity)
    while not rospy.is_shutdown():
        pub.publish(turtlesim.msg.Velocity(1,1))
        rospy.sleep(rospy.Duration(0.1))

It would also be great to add to the tutorial that the following lines should be added to CMakeLists.txt (assumes the file with code is named "turtle_msgfilter.cpp").

rosbuild_add_boost_directories()
rosbuild_add_executable(turtle_msgfilter src/turtle_msgfilter.cpp)
rosbuild_link_boost(turtle_msgfilter signals)
2012-11-06 23:38:36 -0500 received badge  Famous Question (source)
2012-10-19 04:45:02 -0500 received badge  Good Answer (source)
2012-10-14 15:02:08 -0500 commented question How to model simple URDF objects?

Also, you are better off posting Gazebo questions at http://answers.gazebosim.org

2012-10-14 14:59:30 -0500 commented question How to model simple URDF objects?

First step, please post your URDF and the command you're using to try spawing it.

2012-09-29 13:49:00 -0500 answered a question How to remove the history of roscd?

Above comments are correct, but if you want a little more understanding check out this link.

http://ros.org/doc/api/rospkg/html/rospack.html#efficiency-considerations