Ask Your Question

Boris's profile - activity

2019-08-23 04:06:31 -0500 received badge  Guru (source)
2019-08-23 04:06:31 -0500 received badge  Great Answer (source)
2018-12-30 05:09:04 -0500 received badge  Good Answer (source)
2018-12-17 10:48:45 -0500 received badge  Guru (source)
2018-12-17 10:48:45 -0500 received badge  Great Answer (source)
2018-12-14 04:14:11 -0500 commented answer Couldn't find executable named camaracalibrator.py

From a quick glance the command used on the link you've provided is also wrong: again there are spaces where they should

2018-12-14 04:14:00 -0500 commented answer Couldn't find executable named camaracalibrator.py

From a quick glance the command used on the link you've provided is also wrong: again there are spaces where they should

2018-12-13 10:54:47 -0500 answered a question Couldn't find executable named camaracalibrator.py

It seems the page you referring to has a typo. The node is actually called cameracalibrator.py. Also you added spaces in

2018-11-14 08:24:30 -0500 received badge  Great Answer (source)
2018-10-22 16:41:16 -0500 received badge  Good Answer (source)
2018-07-27 09:36:35 -0500 received badge  Good Answer (source)
2018-06-25 01:45:47 -0500 received badge  Nice Answer (source)
2018-05-30 18:47:21 -0500 received badge  Good Answer (source)
2018-05-25 08:36:20 -0500 received badge  Nice Answer (source)
2018-03-22 16:32:26 -0500 received badge  Good Answer (source)
2018-03-02 19:15:39 -0500 received badge  Good Answer (source)
2017-11-16 09:23:51 -0500 received badge  Good Question (source)
2017-10-02 09:08:15 -0500 received badge  Nice Answer (source)
2017-09-06 04:53:11 -0500 received badge  Guru (source)
2017-09-06 04:53:11 -0500 received badge  Great Answer (source)
2017-08-26 09:48:56 -0500 received badge  Great Answer (source)
2017-06-19 18:21:56 -0500 received badge  Nice Answer (source)
2017-05-23 02:31:20 -0500 marked best answer Binding RViz' view camera position and orientation to tf frame

Hello,

I am working on head-tracking application and utilizing RViz for visualization. I have 3 coordinate frames connected as /world -> /base -> /head.

  • /world - global frame
  • /base - head-tracker frame (fixed to /world)
  • /head - user's head frame in /base

The thing I am trying to achive is make user's head to be a 'camera' in 3D environment. Thus, I need to make /head frame to control RViz' viewport camera position and orientation. So far I managed only to bind /head frame position to the RViz camera by setting it to Target Frame. But frame orientation is ignored in this case.

Is there a way to control RViz camera orientation as well?

Thanks in advance,

Boris

UPDATE: Setting fixed frame to /world or /base does not help.

UPDATE 2:

$ rosrun tf tf_echo /world /base
At time 1342851117.156
- Translation: [0.000, 0.000, 0.500]
- Rotation: in Quaternion [0.500, 0.500, 0.500, 0.500]
            in RPY [1.570, -0.000, 1.570]
// -- duplicating messages -- //
$ rosrun tf tf_echo /base /head
At time 1342851130.635
- Translation: [-0.183, 0.029, -0.722]
- Rotation: in Quaternion [0.010, 0.269, -0.049, 0.962]
            in RPY [-0.008, 0.544, -0.104]
At time 1342851131.636
- Translation: [-0.176, 0.028, -0.732]
- Rotation: in Quaternion [0.037, 0.984, -0.176, 0.018]
            in RPY [-2.789, 0.049, 3.075]
At time 1342851132.631
- Translation: [-0.181, 0.020, -0.745]
- Rotation: in Quaternion [0.041, 0.978, -0.201, 0.025]
            in RPY [-2.739, 0.066, 3.072]
// -- and so on -- //
2017-05-23 02:31:20 -0500 received badge  Nice Answer (source)
2017-03-31 19:39:17 -0500 received badge  Nice Answer (source)
2017-03-07 01:29:03 -0500 received badge  Nice Answer (source)
2017-02-03 09:18:08 -0500 commented answer how to show laser scanner data in rviz

@Ben12345 If you read the suggested pages and still have questions, then ask them. (There is a button on the top right "Ask your question"). Also, I highly recommend to go through the ROS Tutorials and RViz User Guide.

2016-12-24 23:55:37 -0500 received badge  Nice Answer (source)
2016-12-04 11:10:14 -0500 received badge  Nice Answer (source)
2016-12-02 11:07:09 -0500 commented answer Is it a good idea to run docker images on a robot?

Yes, I think so. Unfortunately I don't have any details right now about that.

2016-11-29 02:17:43 -0500 received badge  Good Answer (source)
2016-11-28 17:53:18 -0500 received badge  Nice Answer (source)
2016-11-26 16:42:13 -0500 commented answer Can I write an rqt plugin with QML?

Right, but that refers to PyQt installation, not ros_qml. Namely, the line before shell snippet reads To install PyQt with Python 2.7 bindings configure and build it with the following parameters (actual paths may differ).

2016-11-26 07:35:08 -0500 answered a question Is it a good idea to run docker images on a robot?

Yes, we are doing this on our Pioneer 3-AT robots and it works fine. The main reason we did it was to replicate the setup across same robots (we have three Pioneers with slightly different hardware). With docker it is also easy to bring up the system automatically with something like:

docker run -d --restart=always pioneer3

If you are planning to use roslaunch, one thing to keep in mind is that the containers will be starting in parallel, meaning you have to make them wait for the container with roscore to start, otherwise roslaunch will start its own roscore in each container (though the ROS_MASTER_URI will clash I guess). This can be solved with the --wait flag for roslaunch.

What seems inconvenient to me is the development and debugging, so as you mentioned it might be necessary to write a 'supervisor' app to see the state of containers remotely etc.

2016-11-26 06:57:22 -0500 answered a question ar_track_alvar does not recognize tags

It could be an issue with the camera parameters. Make sure it is calibrated and all the settings are correct and appropriate for your environment, e.g. check gain and exposure (if your camera supports these).

I usually see this issue (confusion of marker ID) when the marker is either too far away or the image is too dark/bright.

2016-11-26 06:39:02 -0500 commented answer Can I write an rqt plugin with QML?

@ahendrix Which missing scripts are you referring to? To me everything seems in place. Anyway, the shell scripts are only used to set up correct development environment. The python init script is basically doing the same: it inserts appropriate paths to QT environment.

2016-10-29 18:28:03 -0500 received badge  Nice Answer (source)
2016-06-29 09:03:24 -0500 answered a question Multimarker tracking using ar_pose

I would recommend to use ar_track_alvar instead. It is able to track marker bundles with findMarkerBundles node. A bundle is a set of markers belonging to the same rigid body, like the cube on your photo. The library will always return a pose of the first marker in the bundle, no matter what markers from the bundle are actually visible to the camera.

(Kinetic documentation tab is broken on ROS Wiki, so choose Jade or Indigo tab)

2016-06-29 08:45:18 -0500 commented answer How can I do a GUI ?

This questions is a bit out of scope for ROS Answers. Anyway, the library will be placed to appropriate location by the installation script. Please refer to PyQt5 installation instruction.

2016-06-29 08:39:01 -0500 commented answer How can I do a GUI ?

Yes, you have to learn this new language. For the options with C++, please refer to other answers. ros_qml provides plugin for QML engine, but to make Qt Creator to recognize it you have to tell Qt Creator plugin's location. ros_qml script named qtcreator.sh does it automagically.

2016-06-28 20:01:42 -0500 commented answer How can I do a GUI ?

QML is a programming language itself. You don't need to write anything neither in Python nor in C++. However, in order to use ros_qml package you should have PyQt 5.4 library with Python 2.7 bindings on your system. Most probably you will have to compile that library by yourself.

2016-06-28 07:16:47 -0500 received badge  Nice Answer (source)
2016-06-28 07:13:39 -0500 edited question Problem with bag file

hii, I wrote a bagfile . when i do rosbag info i do get the topic list but the duration is zero sec.The start and end time are same. Here is the info listed

path:        record.bag
version:     2.0
**duration:    0.0s**
start:       Jan 01 1970 05:53:37.58 (1417.58)
end:         Jan 01 1970 05:53:37.58 (1417.58)
size:        3.8 GB
messages:    20883
compression: none [1887/1887 chunks]
types:       geometry_msgs/PoseStamped [d3812c3cbc69362b77dc0b19b345f8f5]
             sensor_msgs/PointCloud2   [1158d486dd51d683ce2f1be655c3c181]
topics:      /gps_pose                          7125 msgs    : geometry_msgs/PoseStamped
             /lidar_2d                          3028 msgs    : sensor_msgs/PointCloud2  
             /lidar_3d                          1886 msgs    : sensor_msgs/PointCloud2  
             /lidar_four_plane_scanner_layer1   2211 msgs    : sensor_msgs/PointCloud2  
             /lidar_four_plane_scanner_layer2   2211 msgs    : sensor_msgs/PointCloud2  
             /lidar_four_plane_scanner_layer3   2211 msgs    : sensor_msgs/PointCloud2  
             /lidar_four_plane_scanner_layer4   2211 msgs    : sensor_msgs/PointCloud2

I wrote the rosbag file using rosbag class . Why is this error can anyone help me out.

2016-06-28 07:11:04 -0500 commented question Rviz display in reverse

Please clarify, what is "reverse direction". Also specify in what frame the point cloud was acquired, what frame is used as Fixed frame in RViz and what is your tf tree (if any). Please edit your question to add the details.

2016-06-27 08:15:33 -0500 edited answer How can I do a GUI ?

Have a look at the ros_qml package. Right now the installation process is not very straight forward, but it is definitely easier to create a graphical interface in Qt QML, than writing a plugin for rqt.

Publishing a message from QML is as easy as this:

import QtQuick 2.2
import QtQuick.Controls 1.2
import Ros 1.0

ApplicationWindow {

  Ros {
    id: ros

    Publisher {
      id: pub1
      topic: Topic {
        name: "/my_topic"
        type: "std_msgs/Header"
      }
    }
  }

  Button {
    text: "Publish"
    onClicked: {
      var now = ros.now()
      ros.loginfo('Sample info message with user data: ' + JSON.stringify(now))

      var msg = {
        seq: 0,
        stamp: now,
        frame_id: 'test_frame',
      }

      pub1.publish(msg)
    }
  }
}

For more examples, please see examples/ folder.


EDIT:

ros_qml is an essential part for creating QML GUI "connected" to ROS. It is a QML plugin (module) that exposes ROS features, such as publishers and subscribers. So there is no choice between Qt Quick and ros_qml — you need both. Also the package sets up the proper environment for Qt Creator, such that code-completion works fine for ros_qml.

I believe QML is extremely good for simple GUIs and it is usually a matter of minutes to create an interface.

If you are confident with installing dependencies from source (as described in ros_qml/README.md), then I would recommend to use QML. Otherwise it might be too confusing.

The main hitch with installation is that PyQt 5.4 (Python module used by ros_qml) is precompiled only for Python 3, while ros_qml is written for Python 2.7. Therefore, PyQt has to be built from sources and linked with appropriate version of Python.

P.S. There seems to be not much interest in the package so far, so I didn't bother to simplify the installation process yet.


EDIT:

A common approach to change robot's parameters dynamically is dynamic_reconfigure and it is usually used in combination with rqt_reconfigure GUI. The interface is quite limited, it lacks push buttons etc., but can be an alternative to full-featured GUI.