Skip to content

Remove keyboard depend#11

Open
davetcoleman wants to merge 33 commits intoPickNikRobotics:kinetic-develfrom
mcevoyandy:remove_keyboard_depend
Open

Remove keyboard depend#11
davetcoleman wants to merge 33 commits intoPickNikRobotics:kinetic-develfrom
mcevoyandy:remove_keyboard_depend

Conversation

@davetcoleman
Copy link
Member

Questions for @mcevoyandy:

  • are there still keyboard shortcuts or is it only by mouse now?
  • .rviztf is long, why not just .tf?
  • is the "# (comment line)" because you can't have unlimited comments?
  • why have IDs in the file format? seems it would just create annoyance?
  • move the "xyz delta" and "rpy delta" boxes onto the same row to save height in the box.
  • overall the GUI is kind of tall
  • it has a ton of debug output, but its not a big deal

Copy link
Member Author

@davetcoleman davetcoleman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good looking code!

${PROJECT_NAME}_imarker_simple
${PROJECT_NAME}_gui
# ${PROJECT_NAME}_manual_tf_alignment
# ${PROJECT_NAME}_imarker_simple
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we still want the ability to use the imarker, right?


# Library
add_library(${PROJECT_NAME}_imarker_simple
src/imarker_simple.cpp
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't kill this!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here too

In `rviz` add the tf panel by: `Panel -> Add New Panel ->TFKeyboardCalGUI`



Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

needs to be better integrated into the README

frames.gv Outdated
@@ -0,0 +1,8 @@
digraph G {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this and frames.pdf should not be committed



#ifndef RVIZ_TF_PUBLISHER_H_
#define RVIZ_TF_PUBLISHER_H_
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TF_KEYBOARD_CAL_RVIZ_TF_PUBLISHER_H_

<license>BSD</license>

<url type="website">https://github.com/davetcoleman/tf_keyboard_cal</url>
<url type="butracker">https://github.com/davetcoleman/tf_keyboard_cal/issues</url>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lol... wow, this is misspelled in my package.xml template I have used for all my many ROS Packages

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed a long time ago but it makes me laugh. 'but racker'

@mcevoyandy
Copy link
Contributor

@davetcoleman

  • are there still keyboard shortcuts or is it only by mouse now?

Yes, that Keyboard package is what we were using to listen for key strokes. Not sure if there's something in Qt we could use instead.

  • .rviztf is long, why not just .tf?

Started with *.tf, but thought not to since tf is a package and might cause confusion... was going to ask your opinion but forgot about it.

  • is the "# (comment line)" because you can't have unlimited comments?

no limit, just my own file type so wanted to make sure that was noted somewhere. I guess the real answer to this and above is to switch to some other supported file type. yaml?

  • why have IDs in the file format? seems it would just create annoyance?

I guess it doesn't need to be in there. Can take that out.

  • move the "xyz delta" and "rpy delta" boxes onto the same row to save height in the box.
  • overall the GUI is kind of tall

I agree. Open to alternate layouts.

  • it has a ton of debug output, but its not a big deal

I'll clean up msgs that aren't being used any more or aren't helpful.

@mcevoyandy
Copy link
Contributor

@davetcoleman what do you think about the repo name? tf_keyboard_cal seems misleading now that you don't use the keyboard.

@davetcoleman
Copy link
Member Author

davetcoleman commented Jun 1, 2017

But you should use the keyboard.... here some example code for Rviz:
https://github.com/davetcoleman/rviz_visual_tools/blob/kinetic-devel/src/key_tool.cpp#L70

I guess the real answer to this and above is to switch to some other supported file type. yaml?

That would be sweet but not super high priority

I guess it doesn't need to be in there. Can take that out.

+1

@mcevoyandy
Copy link
Contributor

@davetcoleman I Just added keyboard functionality when on the manipulation tab. I've got my own opinions about functionality/usability, but want to hear what you think before I make any further changes. No doc, but keyboard layout is the same. Save is not functional at the moment.

@mcevoyandy
Copy link
Contributor

@davetcoleman added ability to have an imarker on top of tf... so use keyboard, gui, or just drag the marker around. Need help testing and finding cases where stuff doesn't work. Number of possible edge cases is getting hard to manage.

@mcevoyandy
Copy link
Contributor

mcevoyandy commented Jun 21, 2017

Think I've got all the functionality in there now... gui, keyboard (same buttons as before), interactive markers & menus if you want them. Could you look over and check out the functionality? I'll work on cleaning up and README when I get back to Boulder. Examples of anything you need to load will be in the config folder.

Will also work on the format of the GUI since I shouldn't be adding any more buttons.

${PROJECT_NAME}_imarker_simple
${PROJECT_NAME}_gui
# ${PROJECT_NAME}_manual_tf_alignment
# ${PROJECT_NAME}_imarker_simple
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to keep the imarker_simple functionality - I believe I am using it in other projects. Perhaps we can deprecate it if you have replacement functionality, but that would still need to be tick-tocked with the next ROS release

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can keep the python version but the old c++ version won't work at all since the keyboard package hasn't been updated.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fyi i've moved the imarker_simple functionality into rviz_visual_tools today, so this functionality is deprecated here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... i recommend you use it for your imarker needs though


# Library
add_library(${PROJECT_NAME}_imarker_simple
src/imarker_simple.cpp
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here too

CMakeLists.txt Outdated
${catkin_LIBRARIES})

# Library
# add_library(${PROJECT_NAME}_manual_tf_alignment
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you kill _manual_tf_alignment, just remove all the commented out code

@@ -1,3 +1,13 @@
# NEW BRANCH
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better documentation than this please

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course :) Was waiting to finish implementing all the functionality I wanted.

frames.gv Outdated
@@ -0,0 +1,8 @@
digraph G {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this file should not be committed


void RvizTFPublisher::publishTFs()
{
static tf::TransformBroadcaster br;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are you using a static var here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be left over from an initial attempt to get the functionality I wanted. I'll review and remove if not needed anymore.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

needs to be there, don't understand why though. comes from their example, without it the TFs don't get published.

namespace tf_keyboard_cal
{
struct tf_data{
std::size_t id_;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need for id_?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

again, might be left over from something I tried earlier on. Will review and remove if no longer needed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's used. I keep it there to generate a unique tf even if the user supplies the same names for "to" and "from"

@davetcoleman
Copy link
Member Author

@awesomebytes fyi I think we are going to replace your python-based interactive markers tool with this new approach that also includes that functionality

@davetcoleman
Copy link
Member Author

@mcevoyandy I see your point about renaming this package. It hasn't been released since ROS Jade, so for Kinetic and Lunar we could easily rename it. What are you thinking? How about tf_manual_cal? The name is available. This could be a really powerful package

@davetcoleman
Copy link
Member Author

@mcevoyandy Questions on latest GUI (just built your PR locally again):

  • The default .rviz file needs to include the interactive marker display with the correct topic
  • Somehow I ended up with two interactive markers for the same TF frame
  • Are the checkboxes necessary for the frames? Why not just have imarkers and menus for all the frames?
  • Did you add keyboard shortcuts? How do they work?

@mcevoyandy
Copy link
Contributor

@davetcoleman

  • Somehow I ended up with two interactive markers for the same TF frame

    I've not noticed anything like this before. I'll see if I can reproduce it.

  • Are the checkboxes necessary for the frames? Why not just have imarkers and menus for all the frames?

Wasn't sure how to handle this... not all your markers need menus, but each marker that has a menu will have the same menu. We could load imarkers for all frames... could always just turn the topic off in rviz if you didn't want to see them.

  • Did you add keyboard shortcuts? How do they work?

keyboard shortcuts are there, you have to be on the manipulate tab. same keys as before. Save removed and only contained in the save tab.

I think the basic functionality is there, just need input on matters like these and help looking for any bugs that show up around edge cases that I haven't thought of.

@mcevoyandy
Copy link
Contributor

what about tf_visual_tools? Also, need a way to launch from Rviz where the tf publisher also gets launched, not just the GUI interface.

@davetcoleman
Copy link
Member Author

I like tf_visual_tools! I'm trying to decide if we should rename this repo or create a new one... I think a new one would be cleanest. Its your codebase at this point so you should keep it under your name (though I'm happy to host it and maintain the release process if you want).

@mcevoyandy
Copy link
Contributor

mcevoyandy commented Jun 28, 2017 via email

@davetcoleman
Copy link
Member Author

Cool - if you don't mind I'd still like to be a maintainer / admin of your repo

@mcevoyandy
Copy link
Contributor

mcevoyandy commented Jun 29, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants